lnmp php5-fpm监听失败导致502错误

文章目录

在使用debian6中lnmp一键安装脚本完善版安装lnmp环境时遇到了一个问题,安装好之后一直显示“502 bad gatway”,后来经过查看日志,发现是fpm监听失败的问题。

定位错误原因

1、分析系统日志

查看nginx错误日志:

1
2
cd /var/log/nginx
tail -fn100  error.log

查看日志,发现如下错误:

[error] 15980#0: *1 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″

可以知道是可知是php-fpm的问题。

2、分析nginx配置文件

查看nginx虚拟主机配置文件,如下所示

1
2
3
4
5
6
location ~ \.php$ {
	fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;	
	}

原来是监听的9000端口,查看9000端口是否被监听

1
netstat -lnp|grep 9000

结果没有任何内容,显然9000端口并没有被监听。

首先查看fastcgi的监听方式

1
vi /etc/php5/fpm/pool.d/www.conf

找到这一行

1
2
3
4
5
6
7
8
9
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = /var/run/php5-fpm.sock

可以看到默认的监听方式为sock方式,所以端口监听方式就不行了。而sock监听方式也相对效率高一些。

解决办法

将配置文件改为如下内容:

1
2
3
4
5
6
7
	location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
	}

重启nginx服务器,问题解决!

本文出自 TENNFY博客,转载时请注明出处及相应链接。

本文永久链接: https://www.tennfy.com/2415.html

下一篇文章:

上一篇文章:

2人参与了讨论

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

1 + 3 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部