LEMP Stack 和 WordPress 上的 PHP-FPM 问题

LEMP Stack 和 WordPress 上的 PHP-FPM 问题

我是 NGINX 和服务器管理的初学者。

我使用本教程来安装 NGINX / PHP / mySQL / WordPress:

C3M 数字教程

在本教程中,使用 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 中的 WordPress NGINX 配置

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 可能可以帮助您。

相关内容