前言
最近更换了自己手里的开发机器。原因有二。
一来,拿着Dell的G7,虽然说一切开发都不成问题,甚至还能跑跑CUDA,无论是跑CPU还是GPU都不成问题,但是终归是游戏本,走到哪都当个习武之人属实不妥,而且开机后的双风扇无时无刻不在向周围的人宣布自己是一台游戏本的事实。
再者,因为G7里面待了太多的游戏,加上最近终于下定决心把1T的HDD换成了Samsung的2T的SSD,虽然心很疼,但是奇怪的游戏增加了,于是我很难保证自己在工作中不会摸鱼,甚至写这篇Record的时候都摸了不知道多久……总之,目前的主要开发机器就成了NUC10i3FNK,通过以物换物,用Raspberry Pi 4B+ Ver.8Gb RAM从朋友手里捡来的高档垃圾。
Arch Linux安装(遵循Installation Guide)
虽然这一段是老生常谈的内容了,但是每次都需要提一下,毕竟也不知道什么时候换了个机子一切情况就都不一样了,比如说拿我的Surface Go装Arch Linux的经历,有空我还是写一下吧,从触摸屏手写比一直到无线网卡,到处都是惊喜。
安装媒介的准备
这点应该不用说了,从Arch Linux Wiki中进入Download页面,选一个中国的镜像站,下载ISO文件就是了。说来也怪,最近我连Tuna的速度明显不如NJU。
之后就是准备安装媒介,一般来说Windows下都会使用Rufus写入就是了,GNU/Linux下就更简单了,一条指令的事情。当然,现在你也有更多的选择,我现在特别中意Ventoy这个工具了,一块U盘放上好几个镜像还能正常文件存储,谁用了不爱呢?
Intel的BIOS,不用说,也是启用了Security Boot了,我们需要按F2进入BIOS取消掉安全启动来进入安装媒介,是否更改Boot Priority就自己酌情了。
系统的安装
网络连接
由于Arch Linux安装是需要通过互联网连接来获取必要软件组的,我们首先还是需要建立互联网连接(Off-line Installation在Google和Arch Linux Wiki中是有过介绍的,不过方法好像已经过时了,我在在用Surface Go安装的时候曾尝试过,不过一直死在了启动引导,按理说应该是已经装好了,有空我还是写一下吧)。
NUC配有WLAN和LAN,我们可以任选其一。如果接入网线,且你的路由开启了dhcp的话,那么直接启动dhcp获取ip分配即可。
$ dhcpcd
而如果想用Wi-Fi连接,我们需要使用iwctl来连接无线网络。
$ iwctl ###进入无线连接设置
(iwd) device list ###用以查询wlan设备,其实可以跳过了,因为就一个网卡wlan0
(iwd) station wlan0 scan ###扫描网络
(iwd) station wlan0 get-networks ###列出扫描到的SSID及其信号强度
(iwd) station wlan0 connect SSID ###连接到网络,这里你就看到了SSID不要随便起乱七八糟名字的重要性,免得自己输不进去。还好我除了一个мой дом的私人网络外还有个全家用的Mundanity……
(iwd) quit/exit ###退出连接设置,二选其一
$ dhcpcd ###获取IP分配
对于连接网络的测试,我们可以通过ping baidu.com来验证。
对于在线软件包的获取来说,时间的同步是关键的一步,与标准时间偏差过大会导致软件包无法获取,所以我们需要设置ntp。
$ timedatectl set-ntp true
可以使用 timedatectl status 检查服务状态。
硬盘的分区和挂载
使用fdisk -l来查询自己需要使用的硬盘。由于NUC也就一块nvme的SSD,所以自然也就是对/dev/nvme0n1下手了。
$ fdisk /dev/nvme0n1 ###对选中的硬盘进行分区操作
###首先我们需要创建一个分区表
:g
###之后我们需要新建一个efi分区
:n ###新建分区
:ENTER ###卷标默认
:ENTER ###初始扇区默认
:+260M ###EFI分区至少需要260MiB
:p ###查看目前的分区表,发现efi分区目前的文件系统还是Linux Filesystem,我们将其改为efi
:l ###查看各个分区类型代表的序号,我这里是1
:t ###更改分区类型,由于只有一个分区,所以默认选中了分区1
:1 ###1号表示为EFI分区
###之后就将硬盘剩余空间用作根目录
:n ###新建分区
:ENTER ###卷标默认
:ENTER ###初始扇区默认
:ENTER ###终止扇区默认
:p ###查看目前的分区表,确保分区没有出错
:w ###保存更改
现在,不出意外,你的/dev/nvme0n1p1将会是efi文件系统,而/dev/nvme0n1p2将会是linux文件系统,接下来我们需要做的就是格式化两个分区。
$ mkfs.vfat -F32 /dev/nvme0n1p1 ###将efi分区格式化为fat32格式
$ mkfs.ext4 /dev/nvme0n1p2 ###将根目录分区格式化为ext4格式
格式化结束后,我们需要将两个分区进行挂载来为之后的安装提供目标路径。
$ mount /dev/nvme0n1p2 /mnt ###根目录挂载到安装环境下的/mnt目录中
$ mkdir /mnt/boot ###在新系统的根目录下创建boot文件夹
$ mount /dev/nvme0n1p1 /mnt/boot ###efi分区挂载到新系统根目录的/boot中
至此,硬盘的分区和挂载工作已经完成,可以开始正式的安装工作了。
安装新系统
首先我们需要修改/etc/pacman.d/mirrorlist中的镜像源来获取较高的安装速度
$ nano /etc/pacman.d/mirrorlist ###我习惯使用nano来写
###在所有Server上面添加
Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch ###南大的源
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch ###清华的源
之后,我们通过pacstrap脚本来安装系统内核和一些软件包和固件
$ pacstrap /mnt base linux linux-firmware nano
待脚本结束后,新系统的安装已经结束了,之后我们要进行系统的配置了
配置新系统
首先我们需要生成一个fstab文件
$ genfstab -L /mnt >> /mnt/etc/fstab ###-U表示用UUID来世别,-L表示用label來识别
$ cat /mnt/etc/fstab ###检查fstab是否有被正确的创建
之后我们使用arch-chroot /mnt来进入新的系统。
首先需要设置新系统的时区,通过创建链接来实现
$ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
其中,大洲和城市根据自己的实际情况来定。当然国内不用动就是了。
之后我们使用hwclock来将硬件时间来配置时间设置,确保自己的硬件时间为UTC时间。
$ hwclock --systohc
接下来需要做的就是系统语言的本地化,根据我个人的需要,我需要启用en_GB.UTF-8来表示英文log、24小时制和公制单位,美国的英制单位实在是头大,还需要来为之后的桌面中文化做准备。因此,我们修改/etc/locale.gen,搜索上面两个语言编码,去掉注释并保存退出。
然后生成locale信息
$ locale-gen
紧接着我们需要创建 locale.conf 文件,其目录为/etc/locale.conf,其中的内容为
LANG=en_US.UTF-8
语言设置结束后,我们需要对ip进行设置,首先需要修改机器的别名,通过创建/etc/hostname文件,其中的内容就是你的机器名称,例如我的内容为:
mundanity-nuc
之后我们需要修改host文件,来绑定本地回环地址,host文件的路径为/etc/hosts
127.0.0.1 localhost
::1 localhost
Wiki的安装教程中在这步之后提到了Initramfs,其内容就是生成/boot下的initramfs-linux.img等文件,我们通过pacstrap脚本安装的系统则已经完成了一步,所以忽视。(然后Surface Go……)
再然后我们需要修改root用户的密码
$ passwd
引导安装
由于NUC是UEFI系统,所以首先需要grub和efibootmgr两个软件包
$ pacman -S grub efibootmgr
然后开始安装Grub
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
安装收尾
由于我们还没有安网络工具,在进入新系统后网络连接会出现问题,所以我们在重启前需要先安装网络管理工具
$ pacman -S iproute2 dhcpcd networkmanager
安装结束后,我们准备重启
$ exit ###退出chroot
$ umount /mnt/boot
$ umount /mnt
$ reboot
取出引导媒介,进入新系统,连接至网络。
新系统的个性化
首先,在之后的桌面环境我们没法使用root账户登入,所以我们需要一个普通用户。
$ useradd -m newuser ###新建了一个用户,-m参数为在/home下创建一个家目录,可以使用-d来指定
$ passwd newuser ###修改密码
既然有了普通用户,接下来我们就需要sudo来给普通用户使用root命令的权限
$ pacman -S sudo ###安装sudo
###由于sudo的机制,无法通过一般的修改命令来修改其配置,只有通过visudo来进行修改。
###由于visudo默认编辑器是vi,而我使用nano,所以通过修改环境变量来更改编辑器
$ export EDITOR="nano" ###修改默认编辑器为nano
$ visudo ###记住,visudo只有root用户有使用的权限,这里每个命令前我都是用$,但这其实是普通用户的指示,root用户是#(全国计算机等级考试 三级教程 Linux应用与开发技术 第93页 练习题 第二大题填空题 第1问,你看看,是不是考到了)
###之后在配置文件的最后加入如下一行
newuser ALL=(ALL) ALL
###其意思为 谁可以使用sudo 允许使用的主机=(以谁的身份) 可以执行的命令
结束sudo的配置后,我们对于用户权限的配置告一段落,接下来是专注于图新画得配置了,首先我们需要安装显卡,由于NUC是intel家的玩意儿,所以我们需要安装intel的显卡驱动
$ pacman -S xf86-video-intel
之后我们安装xorg作为窗口管理器
$ pacman -S xorg
然后是桌面环境,从这里开始就任君喜好,我选择xfce4
$ pacman -S xfce4 xfce4-goodies
桌面环境有了,还需要一个显示管理器来进入桌面,这里我才用lightdm
$ pacman -S lightdm
注意,lightdm可不像sddm一样光一个软件包就解决问题了,它还需要一个greeter,也就是输入密码的GUI界面,当然如果你配置了自动登入,那就不需要。默认的lightdm配置采用了lightdm-gtk-greeter这个包,如果你也选择了这个包,你还可以安装lightdm-gtk-greeter-settings包来在图形化界面进行设置,只不过这里我不愿用gtk-greeter,我采用一个使用webkit2的greeter。
$ pacman -S lightdm-webkit2-greeter
由于我们没有采用默认的lightdm-gtk-greeter,所以我们需要修改light的配置来定义我们的greeter
$ nano /etc/lightdm/lightdm.conf
###在[Seat:*]区块下
...
greeter-session=lightdm-webkit2-greeter
至此我们已经安装完了显示管理器,使用systemctl命令进行调试
$ systemctl enable lightdm ###配置开机启动
$ systemctl start lightdm ###回车后你将会进入登入界面,表明安装配置成功了,回到tty2继续接下来的配置
之后我们需要安装alsa-utils软件包,并尝试按照此文进行设置。
同时,还需要pavucontrol包来进行图形界面下的声音配置,以及network-manager-applet作为图形界面下的网络配置。
最后,既然已经用上了Arch Linux,那么大名鼎鼎的aur源必须要配置。通过修改/etc/pacman.conf来添加源
###在末尾添加
[archlinuxcn]
SigLevel = Optional TrustAll
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
保存后使用pacman -Syu来更新archlinuxcn的源。之后使用pacman -S pikaur安装pikaur来进行aur仓库的安装操作。
最后剩下的,也是最关键的就是中文输入和中文桌面的配置了,对于中文输入,使用fcitx即可
$ pacman -S ttf-dejavu wqy-zenhei wqy-microhei fcitx fcitx-googlepinyin fcitx-cloudpinyin
由于我们使用了lightdm,所以我们需要在普通用户的家目录里创建.xprofile文件,其内容如下
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
###配置中文界面
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fctix"
###配置输入法
美化方案
对于xfce4+lightdm的美化方案不需要细讲,网络上有成套的方案。这里仅给出自己的一个方案:
- Icon:Paper
- Theme:Paper
- Lightdm:lightdm-theme-sapphire
调试环境配置
这段note想写很久了。因为工作需要,所以服务器会经常更换,而自己不太喜欢直接获取软件包来安装,尽管所需的自定义路径只需要通过修改配置文件等操作就可以实现,但是对于多版本切换等功能还是自己手动来的快一些。当然,docker也是一种不错的选择,但是我有些许搞不定docker,而且,对于服务器来说,特地准备一个docker环境似乎也不是那么的重要(当然是在安全性可靠的情况下)。那么对于个人开发环境,我依然打算使用同远程服务器一样的编译安装来完成整个Nginx+PHP+MySQL环境的安装。 注意,以下内容会与其他发行版有所出入,其他发行版的安装请搜索相应发行版的教程
路径准备
首先我们要准备好整个一套环境的工作路径
su
cd / && mkdir server
cd /server && mkdir src nginx php mysql log
cd log && mkdir nginx php mysql web
cd ..&& mkdir www
cd .. && chmod -R 777 /server
Nginx的安装及配置
从官网下载nginx最新包并解压
$ cd /server/src
$ (proxychains) wget http://nginx.org/download/nginx-1.18.0.tar.gz
$ tar -xzf nginx-1.18.0.tar.gz
$ cd ./nginx-1.18.0
$ ./configure \
--prefix=/server/nginx \ #路径
--sbin-path=/server/nginx/sbin/nginx \
--conf-path=/server/nginx/conf/nginx.conf \
--error-log-path=/server/log/nginx/error.log \ #log路径
--http-log-path=/server/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \ #pid路径
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=www-data \ #用户和组
--group=www-data \
--with-pcre \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-http_v2_module \
--with-threads \
--with-stream \
--with-stream_ssl_module
$ make && make install
编译安装结束后,我们需要对nginx进行配置,首先配置nginx的服务$ nano /usr/lib/systemd/system/nginx.service
写入如下配置,注意与编译时配置的路径保持一致
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/server/nginx/sbin/nginx -c /server/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
ExecStartPost=/bin/sleep 0.1
[Install]
WantedBy=multi-user.target
之后需要修改nginx的配置文件
groupadd www-data
useradd -g www-data www-data
nano /server/nginx/conf/nginx.conf
在其中添加运行的用户和运行的pid文件路径
user www-data;
pid /var/run/nginx.pid;
#写在http内,并添加相应的虚拟服务器
include ./vhost/*.conf;
通过systemctl来启动nginx服务
$ systemctl start nginx #启动nginx
$ systemctl enable nginx #设置开机自启,可选
在浏览器中访问localhost查看效果
详细的配置文件,可从这篇博客查询
PHP的安装及配置
从官网下载php源码包
$ cd /server/src
$ (proxychains) wget https://www.php.net/distributions/php-8.0.1.tar.gz
$ tar -xzf php-8.0.1.tar.gz
$ cd ./php-8.0.1
#编译时用到的组件
$ pacman -S oniguruma
#注意PHP8和7之间configure的一些区别
$ ./configure --prefix=/server/php \ #路径
--with-config-file-path=/server/php/etc \
--with-config-file-scan-dir=/server/php/etc/php.d \
--with-mhash \
--disable-debug \
--disable-rpath \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--enable-pdo \
--with-fpm-user=www-data \ #用户和用户组
--with-fpm-group=www-data \
--with-gd \
--enable-gd-jis-conv \
--with-iconv \
--with-zlib \
--enable-bcmath \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-cli \
--with-openssl \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-pear \
--with-zlib \
--with-curl
$ make && make install
之后需要把PHP的路径添加到环境变量中
$ nano /etc/profile
#在末尾添加下两行代码,注意比对路径
PATH=$PATH:/server/php/bin/:/server/php/sbin/
export PATH
#使修改生效
source /etc/profile
#测试修改
$ php -v
然后是对php的配置
$ cp php.ini-development /server/php/etc/php.ini #复制源码路径下的配置文件
$ cd /server/php/etc/
$ nano ./php.ini
#添加log至文件末尾详见https://www.php.net/manual/zh/errorfunc.configuration.php#ini.error-log
error_log = /server/log/php/php_errors.log
$ cp php-fpm.conf.default php-fpm.conf
$ cd ./php-fpm.d
$ cp www.conf.default www.conf #启用默认的www.conf
$ cp /server/src/php-8.0.1/sapi/fpm/php-fpm.service /usr/lib/systemd/system/ #复制服务配置文件
$ systemctl start php-fpm #启动php
$ systemctl enable #设置开机自启,可选
MySQL的安装及配置
首先编译安装需要用到的组件rpcgen
$ (proxychains) wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4.2/rpcsvc-proto-1.4.2.tar.xz
$ xz -d rpcsvc-proto-1.4.2.tar.xz
$ tar -xvf rpcsvc-proto-1.4.2.tar
$ cd rpcsvc-proto-1.4.2
$ ./configure
$ make && make install
从官网上下载最新的源码包
$ cd /server/src
$ (proxychains) wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.32.tar.gz
$ tar -xzf mysql-boost-5.7.32.tar.gz
$ cd ./mysql-5.7.32/
#添加用户组
$ groupadd mysql
$ useradd -g mysql mysql
#创建文件夹并修改权限,不然安装后启动会报错
$ mkdir /server/mysql/data
$ chown -R mysql:mysql /server/mysql
$ mkdir -p /var/lib/mysql
$ chown -R mysql:mysql /var/lib/mysql
$ mkdir -p /var/run/mysqld
$ chown -R mysql:mysql /var/run/mysqld
$ cmake \
-DCMAKE_INSTALL_PREFIX=/server/mysql \ #路径
-DMYSQL_DATADIR=/server/mysql/data \ #数据路径
-DSYSCONFDIR=/etc \ #配置路径
-DMYSQL_USER=mysql \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_unicode_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SYSTEMD=1 \
-DWITH_BOOST=boost \
-DWITH_ZLIB:STRING=bundled
$ make && make install
安装完成后,我们需要把mysql的安装路径添加到环境变量中
$ nano /etc/profile
#将下面两行添加至profile文件末尾,注意比对路径
PATH=$PATH:/server/mysql/bin/
export PATH
$ source /etc/profile#使修改生效
然后我们需要修改mysql的配置文件,其位置应在编译安装的DSYSCONFDIR路径中
$ nano /etc/my.cnf
#将下列配置输入进my.cnf中
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
init-connect = 'SET NAMES utf8'
character-set-server = utf8
basedir=/server/mysql
datadir=/server/mysql/data
socket=/var/lib/mysql/mysql.sock
user = mysql
explicit_defaults_for_timestamp=true
bind-address = 0.0.0.0
server-id = 1
log_error=/server/log/mysql/mysql.log
pid-file=/var/run/mysqld/mysqld.pid #注意此处路径更改不一定生效,还需查看mysqld.service内的设置
symbolic-links=0
[mysqld_safe]
log-error=/server/log/mysql/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
之后我们对数据库进行初始化
$ mysqld --defaults-file=/etc/my.cnf --initialize-insecure --basedir=/server/mysql --datadir=/server/mysql/data --user=mysql
#注意比对配置路径、程序路径、数据路径、操作用户
$ mysql_ssl_rsa_setup#安装rsa密钥
设置完后,我们将mysqld服务复制进system文件夹使用systemctl来进行管理
$ cp /server/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
$ systemctl start mysqld #启动服务
由于在初始化过程中使用了不安全的初始化指令,即--initialize-insecure,目前mysql的root账户使用了一个空密码,我们需要自行输入一个密码
$ mysql_secure_installation
#登录mysql进行检验
$ mysql -uroot -p
最后我们需要将php的配置文件与mysql的进程关联起来,否则php将无法获取到mysql
$ nano /server/php/etc/php.ini
#使用Ctrl+W搜索pdo_mysql.default_socket的位置,并将其后面修改为设置的socket路径
pdo_mysql.default_socket = /var/lib/mysql/mysql.sock
#重启php-fpm服务以生效
$ systemctl restart php-fpm
至此,基本的Nginx+PHP+MySQL的环境已经配置完成,之后的虚拟主机设置等方案则需要自信酌情设置。
Xdebug的安装
对于Windows来说,Xdebug的安装十分便捷,选择好对应php版本的拓展库复制到ext文件夹并在php.ini启用即可,而Linux下则需要使用phpize来编译安装。对于其他的PHP拓展组件,安装方式相同。 这时候可能会有人跳出来说,已经是composer的时代了,就别自己装轮子了。确实如此,但是,我认为在使用管理器之前,对于概念的理解是很重要的。而最快的方式,其实就是从最基本的方法过一遍,不下几次,对于这一套流程熟悉了,其概念自然也就了然于心。
首先,从官网下载好xdebug的拓展包
$ cd /server/src
$ (proxychains) wget https://xdebug.org/files/xdebug-3.0.2.tgz
$ tar -xzf xdebug-3.0.2.tgz
$ cd ./xdebug-3.0.2/
$ /server/php/bin/phpize #指定路径安装,在多php环境下使用,单php环境在路径已经添加至path的情况下可以直接使用phpize命令
$ ./configure --enable-xdebug
$ make && make install
#修改php.ini以启用xdebug拓展
$ nano /server/php/etc/php.ini
#在文末添加以下内容
zend_extension=/server/php/lib/php/extensions/no-debug-non-zts-20200930/xdebug.so
#重启php服务
$ systemctl restart php-fpm
为了使Nginx连接到php服务,我们需要对虚拟主机的配置文件添加以下内容
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
之后用systemctl restart nginx重启Nginx服务,并在站点根目录添加一个调用phpinfo()函数的index.php文件。
用浏览器访问虚拟站点主页,查看php的信息,并搜索xdebug,查询是否启用了拓展。