问题描述:
在nginx的根目录新建了一个index.php文件,但是在访问php文件的时候一直报错 502。经过测试发现除了php文件其余都能够直接访问 。
解决思路:
首先判断php-fpm是否已经安装,没有安装的情况就需要先安装php-fpm。
确定好已经安装了php-fpm之后,查看是否已经启动或者直接重启
[root@localhost ~]# /usr/local/php/sbin/php-fpm start
启动完成后,重启nginx:
[root@localhost ~]# service nginx restart
但是以上操作并没有解决问题。
查找nginx错误日志,我的日志在:/var/log/nginx/error.log中,打开清一色类似错误:
2019/11/28 06:06:13 [error] 1640#0: *579 connect() failed (111: connection refused) while connecting to upstream, client: 192.168.56.1, server: _, request: "get /index.php http/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.56.101"
大概意思是连接不上9000端口。
现在需要查看一下是否有监听9000端口:
[root@localhost ~]# netstat -ant | grep 9000 发现并没有监听(php-fpm已经启动)
具体解决方法:
打开
vi /usr/local/php/etc/php-fpm.conf #不知道安装在哪里的话 可以 find / -name php-fpm.conf 搜索一下
找到listen
我们将[www]下的 listen = /tmp/php-cgi.sock 复制一下,粘贴到 nginx 配置文件
注意观察以往 fastcgi_pass 我都会写成 127.0.0.1:9000,现在我们需要改成 unix:/tmp/php-cgi.sock。
最后重启一下nginx即可。