php-fpm和nginx正常启动,页面502解决办法
php-fpm和nginx正常启动,页面502解决
背景:新安装的系统,手动安装php、nginx、php-fpm各个模块后,本地部署一个php项目,在运行时发现只有nginx版本页面,显示502
排查过程如下,简单记录一下:
- 查看php-fpm和nginx的启动情况:
# 查看php-fpm和nginx是否启动
ps -ef|grep php-fpm
ps -ef|grep nginx
得到结果是:两个全部正常启动状态
- 查看请求时的nginx日志信息:
# 先查看了下nginx的运行日志存放位置:
find / -name nginx.conf # 找到nginx的配置文件,查看到error.log的存放位置
# 查看error.log信息如下:
*58 connect() failed (111: Connection refused) while connecting to upstream
- 排查结果:
php-fpm和nginx全部正常启动,所以不是php-fpm未启动的原因,继续查,发现是:
nginx和php有两种链接方式:
1、fastcgi_pass 127.0.0.1:9000;
2、fastcgi_pass unix:/run/php/php7.0-fpm.sock;
这个具体怎么用要去php fpm里面去看他的配置文件
/etc/php/7.0/fpm/pool.d/www.conf里面的Listen
如果Listen是端口就写127.0.0.1:9000;
如果是路径,nginx的配置文件也要学路径,unix:/run/php/php7.0-fpm.sock;
- 完美解决:查看www.conf配置文件,里边的listen后是路径,所以修改项目的nginx配置文件即可:
### # fastcgi_pass 127.0.0.1:9000; # 这种端口的注释掉,改为以下这种路径格式的
fastcgi_pass unix:/run/php/php7.3-fpm.sock; # fastcgi_pass 改为本机的phm.sock的地址
本文来自博客园,作者:alisleepy,转载请注明原文链接:https://www.cnblogs.com/alisleepy/p/15487862.html