问题背景
昨晚帮配置nginx+php服务的时候,发生了一个奇怪的事情
netstat -anp|grep 9000查看9000端口,一直没有监听,于是nginx无法通过fastcgi来代理php请求。一直都是502
原因分析
因为php7升级了配置,默认不再监听9000端口了,监听的是/run/php/php7.0-fpm.sock
解决方案
找到/etc/php/7.0/fpm/pool.d/www.conf,用;注释掉sock监听的方式,增加9000端口监听
;listen = /run/php/php7.0-fpm.sock
listen = 9000
1
2
重启php7,可以service php7.0-fpm restart或者/etc/init.d/php7.0-fpm restart的方式重启。
检查nginx配置,看下是正确
server{
listen 80;
server_name localhost;
root "/www/xxxx/";
location / {
index index.php index.html index.htm;
autoindex off;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
---------------------
作者:Moshow郑锴
来源:CSDN
原文:https://blog.csdn.net/moshowgame/article/details/84135977
版权声明:本文为博主原创文章,转载请附上博文链接!