本人系统环境:Fedora31 内核版本5.6.8
因为我本人安装的时候走了很多弯路,所以下面的方法如果有问题请在评论区指正,谢谢!
一.安装nginx1.16和php7.3
直接使用dnf指令安装(CentOS只需换成yum即可)
简单、生猛、直接就干
sudo dnf install nginx*
sudo dnf install php*
这样安装的nginx和php的好处就是不用自行设置一些参数和依赖包,可以直接使用systemctl来控制服务,如果默认的软件源里没有你想要的模块,那就需要使用源码安装来安装拓展模块了,具体可以看我写的php7.3和nginx1.18的编译安装
二.设置php-fpm
1.配置php.ini
防止遭受恶意脚本注入的攻击
需要把php.ini文件中的配置项 cgi.fix_pathinfo 设置为 0
vim /etc/php.ini
输入:?cgi.fix
即可在vim中检索,然后设置cgi.fix_pathinfo 设置为 0即可
打开php的访问权限
也是在php.ini里面,输入:?open_basedir
即可找到open_basedir=
在等号后面加上$document_root:/tmp/:/proc/:/你的文档
其中你的文档是你让php访问的文档的位置,比如说我的网页在根目录下的html文件夹里,那就是:/html
,如果你想要多个文档的话,就直接输入在中间用分号隔开就好
2.配置php-fpm的www.conf
然后修改php-fpm的配置文件,确保 php-fpm 模块使用 nginx 用户和 nginx 用户组的身份运行
vim /etc/php-fpm.d/www.conf
输入:?user
即可在vim中检索,然后设置listen.acl_users 设置为 nginx即可,默认的user可以不用去动它
三.nginx的设置
因为nginx默认是不支持php的,所以要用php-fpm转发,那么这时就要配置nginx,保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块
vim /etc/nginx/nginx.conf
然后在里面添加
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
}
注意,这里前面的空格是十分必要的,如果不复制空格就会报错,所以这里要严格的按照我的格式来