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的地址