Nginx和php由不同的用户运行。 这是一个坏主意吗?

我刚刚发现我的nginx用户与(“php-user”)返回的是不一样的。 这两个用户都不是root用户。 不过,我想知道这个configuration是否会导致未来的问题呢?

我正在使用Ubuntu 12.04。

这是一个非常好的主意,并提高了服务器的安全性。

这意味着PHP无法写入nginx(或任何其他用户)拥有的数据,没有世界写入权限(你永远不会chmod 777什么)。

在我的生产Web服务器中,nginx作为用户nginx运行,而PHP作为用户www-data或类似的东西运行。

通常,您希望您的FTP用户,SSH用户,Web服务器用户和PHP用户保持一致,以避免权限问题。 读这个,

http://www.sonassi.com/knowledge-base/stop-magento-permissions-errors-permanently/

如果不仅仅是为了您自己的理智,在网站上工作。 否则,你可能会不断发现自己chmod'ing或chown'ing。

原则上,有两个用户比一个用户更安全。 但是,安全只会和使用它的人一样好。 而且可能的结果是有人为了试图解决一个权限问题而recursion地chmod一个dir,然后忘记了这个权限并且把它放开了。 另外,如果启用selinux,将会有潜在的树遍历问题。

我们也以不同的用户身份运行Nginx,但通常是与PHP进程相同的组的一部分,但作为唯一用于静态内容的部分,它只是真的需要读取访问权限。