我是 NGINX 和服务器管理的初学者。
我使用本教程来安装 NGINX / PHP / mySQL / WordPress:
在本教程中,使用 fastcgi 配置后端 php-cgi 设置。本教程中安装了 php5-fpm:
apt-get install nginx-full php5-fpm php5 php5-mysql php5-apc php5-mysql php5-xsl php5-xmlrpc php5-sqlite php5-snmp php5-curl
在阅读了 WordPress 编解码器上的 NGINX 配置比大多数教程更安全之后,我决定使用 codex 配置:
Codex 配置使用 php-fpm 作为后端 php-cgi。打开浏览器时,我收到 502 Bad Gateway 错误。错误日志为:
“2012/06/10 21:18:27 [crit] 14009#0: *4 connect() to unix:/tmp/php-fpm.sock 失败(2:没有此文件或目录)连接到上游时,客户端:12.3.456.789,服务器:mywebsite.com,请求:“GET / HTTP/1.1”,上游:“fastcgi://unix:/tmp/php-fpm.sock:”,主机:“mywebsite.com””
在 codex 提供的主要 NGINX 配置文件中,我注意到上游 php 块中以“server unix:”开头的行指向空目录:
# Upstream to abstract backend connection(s) for PHP.
upstream php {
server unix:/tmp/php-fpm.sock;
# server 127.0.0.1:9000;
}
我检查了 /tmp 文件夹,它是空的。
似乎我错过了配置 php-fpm 来使用 NGINX。
有人能给我指明正确的方向吗?
非常感激!
答案1
听起来您还没有设置 php-fpm 来监听 Unix 套接字。我猜您使用的是某种 Debian,因为您遵循的说明适用于 Debian。
在我的 Debian/nginx/php 配置中我有这个文件:/etc/php5/fpm/pool.d/www.conf
您需要编辑它以允许 php-fpm 监听 Unix 套接字而不是 127.0.0.1:9000 地址。
/etc/php5/fpm/pool.d/www.conf
找到其中的行listen = 127.0.0.1:9000
并将其更改为/tmp/php-fpm.sock
(或将其注释掉并listen = /tmp/php-fpm.sock
在其下方添加)。或者您可能希望将 php-fpm.sock 文件存储在 tmp 以外的某个地方。Google 可能可以帮助您。