因为工作需要,要在ubuntu中安装LNMP环境,在这里,php是最新版本php7.1。一切都进展得很顺利,安装完成后,在浏览器中输入http://127.0.0.1/info.php,出现了502 Bad Gateway的错误提示。
打开/var/log/nginx 下的error.log,发现提示为:2017/07/15 14:46:47 [error] 1228#0: *8 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000",
host: "127.0.0.1"。
进入/etc/php/7.1/fpm/pool.d下,打开www.conf文件,找到listen这一行,发现listen = /run/php/php7.1-fpm.sock。(我的php7.1-fpm.sock 在/var/run/php/php7.1-fpm.sock下,于是改成了/var/run/php/php7.1-fpm.sock)
进入/etc/nginx/sites-available目录下,打开default文件,里面的location配置为:
location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
# include fastcgi_params;
# fastcgi_index index.php;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
}
很明显,default文件中的l监听方式和www.conf文件中的不一样,因此我改为:
location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_index index.php;
include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
}
最终default文件如下:
保存这个配置后,重启Nginx ;service nginx restart,然后刷新浏览器,最后的结果展示如下:
问题得到了解决!