安装好nginx后,配置文件没有问题,可以正常访问html,访问php文件时,报错502。
查看nginx的报错日志:
2020/07/15 11:39:13 [error] 28705#0: *2 connect() failed (111: Connection refused) while connecting to upstream, client: 10.10.4.135, server: www.xinxinzhang.com, request: "GET /fuck.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.0.20"
首先,我们需要知道,nginx和php的交互是通过php-fpm交互的,交互方式遵循FastCGI协议,根据这个报错日志判断原因是,nginx无法与php-fpm正常交互。
1、查询php-fpm是否安装
通过find / -name php-fpm
查询服务器中是否有php-fpm,如果没有,先安装php-fpm
2、启动php-fpm
我的php-fpm安装路径是/usr/sbin/php-fpm
,可以通过/usr/sbin/php-fpm start
命令启动。需要注意的是,php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)
等命令,需要通过systemctl start php-fpm
来启用php-fpm
使用命令ps -ef |grep php-fpm
查看状态:
可以看到php-fpm已经启动成功
php的FastCGI端口号默认是9000,使用命令
netstat -ant |grep 9000
,查看9000端口是否监控,发现正在监听3、重启Nginx
systemctl restart nginx
重启后问题解决
为了防止每次使用php-fpm都需要手动启用,可以将php-fpm设置为开机自启动