使用 php5-fpm 设置 nginx(从源代码构建)

使用 php5-fpm 设置 nginx(从源代码构建)

所以我是 nginx 的新手。在 Ubuntu 上,我使用“sudo apt-get install nginx”安装了 nginx,然后安装了 php5-fpm sudo apt get install php5-fpm。我按照以下步骤操作: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-12-04并让 nginx 正常工作php5-fpm

这是我的 nginx 配置文件中用于启用 fastCGI 代理的相关部分。

location ~ \.php$ {

    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

这完美地运行并且 php 文件按照它们应该的方式运行。

然后我下载了 nginx-1.7.3.tar.gz 并从源代码构建它:

--configure --prefix=/usr/local/nginx-1.7.3 make sudo make install

所以现在我有两个 nginx 安装。第一个使用apt-get install nginx,这个是从源代码构建的。我可以分别运行sudo service nginx start这两个 nginx apt-get install versionsudo /usr/local/nginx-1.7.3/sbin/nginx运行从源代码构建的版本。

为了在“从源代码构建”版本上启用 fastCGI 代理,我认为它与 nginx 的第一次安装相同,因此 nginx.conf 文件的快速 cgi 代理位置块与第一个相同。

从源代码构建的版本似乎无法通信,php5-fpm因此我收到错误:

发生错误

抱歉,您查找的页面目前不可用。请稍后重试。

nginx 的错误日志显示:2014/08/03 01:31:24 [crit] 8566#0: *1 connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost"

由于我缺乏知识,我怀疑自己做了一些非常愚蠢的事情,但我似乎无法弄清楚。为什么“从源代码构建”版本在尝试连接到以 .php 结尾的文件时会出现该错误?

答案1

正如 zhenech 指出的那样,您的套接字文件 (/var/run/php5-fpm.sock) 的所有者/权限很可能存在问题。

在您的 fpm-config(例如 /etc/php5/fpm/pool.d/www.conf)中,尝试以下操作:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

答案2

问题解决了:

/etc/nginx/nginx.conf的下载的 nginx 配置为 ,sudo apt-get install nginx用户设置为 ,因此user www-data;它能够与 进行通信,php5-fpm而从位于 的源构建的 nginx-1.7.3/usr/local/nginx-1.7.3/conf/nginx.conf则将用户设置为user nobody;

通过更改user nobody;user www-data;它开始与 php-fpm 通信。

相关内容