仍然被权限 – linux,nginx,php-fpm混淆

我已阅读规范的答案在我的网站文件/文件夹应该在Linuxnetworking服务器上有什么权限

不过,我仍然坚持。 我的设置是:

  • 拥有构成网站的目录和文件的开发者用户“ade”
  • 服务器是nginx与php-fpm通过套接字: fastcgi_pass unix:/tmp/php5-fpm.sock;
  • 网站包含一个上传目录,在此configuration下运行时,必须由PHP写入
  • 显然,我不想将权限设置为777

我创build了一个webadmin,并添加了'ade'和nginx:

 $ groups ade ade : ade webadmin $ groups nginx nginx : nginx webadmin 

我已经把站点中的所有者设置为我和webadmin组: chown ade:webadmin *

…如你看到的:

 drwxrwxr-x 2 ade webadmin 4096 Jul 3 13:58 logs drwxrwxr-x 5 ade webadmin 4096 Jul 4 08:35 public drwxrwxr-x 4 ade webadmin 4096 Jul 3 16:18 system drwxrwsr-x 2 ade webadmin 4096 Jul 9 16:13 uploads 

然而,尽pipe上传的权限是775(用户和组都是rwx),但nginx和php无法写入文件夹。 只有当我把它设置为777,它才能将图像上传到它。

我在上面的规范答案中看到了关于使用chmod u+w的build议,但不明白为什么这是必要的。

解决了:

当然,php-fpm并不像nginx那样运行。 它可以在文件/etc/php-fpm.d/www.confconfiguration(在CentOS中)。 我通过添加第45行来编辑它的configuration:

 44 ;group = nobody 45 group = webadmin 

然后重新启动它:

 sudo /etc/init.d/php-fpm restart