php/nginx 权限错误,不使用 www-data

0 fastcgi permissions nginx

- 编辑 - 更奇怪的是我是否chmod 777 /var/run/php-fastcgi/php-fastcgi.socket有效。如果它不是 www-data, php-www ( 也不是 root ) 那么用户试图访问套接字:|

-edit2- 我添加chown www-data:$FASTCGI_GROUP $SOCKET到下面脚本的末尾(就在 之后spawn-fcgi)并解决了问题,但我很困惑,www-data 在 php-www 组中。为什么必须是所有者。我没有将 FASTCGI_USER 改回 www-data bc 它会破坏目的(它会允许 PHP 文件以 www-data 的形式访问我的所有文件,这是我不想要的)

基本上我想做的是让 PHP 进程不是 www-data,所以如果它受到损害,它的损害仅限于我拥有的极少数 PHP 站点。我所做的是创建用户 php-www 并将其组添加到 www-data。当我以 www-data 身份登录时,我可以访问 php-www 中的所有内容,但是 php-www 只能访问我的 PHP 站点。完美的。

我运行了 php+nginx。但是如何改变它给了我一个问题。我在 init.d 脚本中看到了 www-data 提及,该脚本更改了文件夹的所有权。很好,我把它改成了php-www。那不是问题。

问题是生成脚本。

#!/bin/bash

FASTCGI_USER=php-www
FASTCGI_GROUP=php-www
SOCKET=/var/run/php-fastcgi/php-fastcgi.socket
PIDFILE=/var/run/php-fastcgi/php-fastcgi.pid
CHILDREN=6
PHP5=/usr/bin/php5-cgi

/usr/bin/spawn-fcgi -s $SOCKET -P $PIDFILE -C $CHILDREN -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5
Run Code Online (Sandbox Code Playgroud)

用户/组行用于说 www-data 但现在我将它们更改为 php-www。

我开始使用 php-fastcgi 和 nginx。当我访问我的网站时,我收到 502 错误网关错误。当我查看 nginx 日志时,我看到了这一行

connect() to unix:/var/run/php-fastcgi/php-fastcgi.socket failed (13: Permission denied) while connecting to upstream
Run Code Online (Sandbox Code Playgroud)

没有权限!?!为什么!?!www-data 确实有组 php-www,stat该文件夹和套接字显示所有者和组 php-www。我可以使用 bot php-www 和 www-data 访问 PHP 文件。为什么会出现权限错误?我做错了什么?

如果你想看看我的过程

# ps aux | egrep "php|www"
Run Code Online (Sandbox Code Playgroud)

显示

www-data   548  0.0  0.1   1908   492 ?        Ss   18:08   0:00 /usr/sbin/fcgiwrap
www-data   586  0.0  0.1   1908   488 ?        Ss   18:08   0:00 /usr/sbin/fcgiwrap
php-www   1611  0.0  1.9  19312  5020 ?        Ss   18:20   0:00 /usr/bin/php5-cgi
php-www   1612  0.0  0.7  19312  1856 ?        S    18:20   0:00 /usr/bin/php5-cgi
php-www   1613  0.0  0.7  19312  1856 ?        S    18:20   0:00 /usr/bin/php5-cgi
php-www   1614  0.0  0.7  19312  1856 ?        S    18:20   0:00 /usr/bin/php5-cgi
php-www   1615  0.0  0.7  19312  1856 ?        S    18:20   0:00 /usr/bin/php5-cgi
php-www   1616  0.0  0.7  19312  1856 ?        S    18:20   0:00 /usr/bin/php5-cgi
php-www   1617  0.0  0.7  19312  1856 ?        S    18:20   0:00 /usr/bin/php5-cgi
www-data  1776  0.0  0.6   5428  1684 ?        S    18:27   0:00 nginx: worker process
php-www   1967  0.0  1.9  19312  5020 ?        Ss   18:40   0:00 /usr/bin/php5-cgi
php-www   1968  0.0  0.7  19312  1856 ?        S    18:40   0:00 /usr/bin/php5-cgi
php-www   1969  0.0  0.7  19312  1856 ?        S    18:40   0:00 /usr/bin/php5-cgi
php-www   1970  0.0  0.7  19312  1856 ?        S    18:40   0:00 /usr/bin/php5-cgi
php-www   1971  0.0  0.7  19312  1856 ?        S    18:40   0:00 /usr/bin/php5-cgi
php-www   1972  0.0  0.7  19312  1856 ?        S    18:40   0:00 /usr/bin/php5-cgi
php-www   1973  0.0  0.7  19312  1856 ?        S    18:40   0:00 /usr/bin/php5-cgi
root      2110  0.0  0.2   3300   736 pts/1    S+   18:55   0:00 egrep php|www
Run Code Online (Sandbox Code Playgroud)

mgo*_*ven 6

套接字可能不是组可读和可写的。