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

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

我刚刚发现我的 nginx 用户与 ("php-user") 返回的用户不同。这两个用户都不是 root。但是,我想知道这种配置是否会导致将来出现问题?

我正在使用 Ubuntu 12.04。

答案1

这是一个非常好的想法,可以提高服务器的安全性。

这意味着如果没有全局写入权限,PHP 就无法写入 nginx(或任何其他用户)拥有的数据(并且您永远都无法执行chmod 777任何操作)。

在我的生产 Web 服务器中,nginx 以用户身份运行,nginx而 PHP 以用户身份www-data或类似身份运行。

答案2

通常,您希望 FTP 用户、SSH 用户、Web 服务器用户和 PHP 用户始终保持一致,以避免权限问题。请阅读此内容,

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

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

原则上,有两个用户比只有一个用户更安全。但是,安全性永远取决于使用它的人。可能的结果是有人递归地修改目录以尝试解决权限问题 - 然后忘记它并让它完全开放。此外,如果启用了 selinux,可能会出现树遍历问题。

我们还以不同的用户身份运行 Nginx,但通常与 PHP 进程属于同一组,但由于它仅用于静态内容,因此它实际上只需要读取权限。

相关内容