一、前言
首先你需要先安装Nginx和PHP,如果你不会安装Nginx和PHP可以在网上找,或者在我的文章里面找。安装完成之后,开启Nginx的端口号,还必须验证是否成功,如果成功之后,你就可以继续后面的步骤,在Nginx中配置PHP。
二、配置
1. 修改php-fpm配置文件(前提是你安装了php-fpm扩展,在我的文章安装PHP中有说明)
vim /etc/php/5.6/fpm/pool.d/www.conf
2.找到以下行并取消注释(删除前面的分号):
listen = /run/php/php5.6-fpm.sock
确保其值为对应用户和组:
3. 保存并退出配置文件。然后重新启动 PHP-FPM 服务:
重启
systemctl restart php5.6-fpm
4. 如果你不知道Nginx的安装目录,通过如下命令找到安装Nginx的目录
whereis nginx
5. 切换到nginx的安装目录
cd /usr/local/nginx/
6. 找到nginx的配置文件,一般在conf文件夹
7. 切换到nginx配置文件夹中
cd conf/
8. 找到nginx.conf文件
9. 打开这个配置文件
vim nginx.conf/
10. 修改配置如下
注:修改nginx的配置的时候,应该先停止nginx
#修改
server {
#监听的端口号
listen 8081;
# 这里改动了,也可以写你的域名
server_name localhost;
# 设置访问的目录
root /var/www/html;
# 这里改动了 定义首页索引文件的名称
index index.php index.html index.htm;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
# 这里新加的
# PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.
# Fastcgi服务器和程序(PHP,Python)沟通的协议.
location ~ \.php$ {
fastcgi_pass unix:/run/php/php5.6-fpm.sock; # 根据 PHP-FPM 的配置进行调整
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include fastcgi.conf;
}
}
}
说明:fastcgi_pass unix:/run/php/php5.6-fpm.sock;为什么我的配置是这样的,而有些博客配置是这样的fastcgi_pass 127.0.0.1:9000;这是由于需要你自己根据php-fpm的配置来决定的,在最前面(第2步,我放开了listen = /run/php/php5.6-fpm.sock)我配置PHP-FPM,因此这里的fastcgi_pass 就配置listen的路径(需要根据你自己的来配置,unix:/run/php/php5.6-fpm.sock;,需要加unix),反之如果listen是端口号就配置127.0.0.1:9000。
11. 查看修改后的Nginx配置文件是否有误
/usr/local/nginx/sbin/nginx -t
如果出现了ok和successful,就代表修改的配置文件没有问题。
12.重新启动Nginx
/usr/local/nginx/sbin/nginx
重新加载Nginx服务
/usr/local/nginx/sbin/nginx -s reload
13. 新建一个PHP文件
vim /var/www/html/test.php
输入内容如下,保存并退出
<?php
phpinfo();
?>
14. 测试,浏览器输入ip+端口号/test.php,出现了这个问题:
三、遇到的问题
其实刚开始我安装号PHP和Nginx,并按照网上的方式配置php,但是并不能出现PHP的详情页面。而是如下页面。
这个时候你就需要去检查nginx的错误日志了,一般是在nginx的安装目录下有个logs文件夹,在里面就可以找到error.log日志查看报错信息。如下所示:
我当时的错误如下:
2023/08/06 07:12:05 [crit] 500591#0: *99 connect() to unix:/run/php/php5.6-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 110.185.79.8, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php5.6-fpm.sock:", host: "122.226.136.13:8081"
解决方法:修改 php-fpm.conf 修改成如下所示:
vim /etc/php/5.6/fpm/pool.d/www.conf
修改之后,需要重启php-fpm服务
systemctl restart php5.6-fpm
再次在浏览器访问之前ip+端口号/test.php,就成功了。