今日閑來無事裝了幾個虛擬機做負載均衡的測試,LNMP環境搭建完成,在nginx的根目錄新建了一個index.php文件,但是在 訪問php文件的時候一直報錯 502,查看相關的server配置,感覺沒有什么問題,經過測試發現 除了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 ,,成功了。

