Nginx 用户/组配置

Nginx 用户/组配置

我是 nginx 的新手,但在过去的几天里,我一直在学习它的功能和它提供的所有功能。我在 Centos 6.3 中运行 nginx。

我已经安装了带有 php-fpm 的 nginx,但对用户和组有一些疑问。

  1. 当我安装 nginx 时,它会将用户/组设置为 nginx。我已将我的盒子设置为在 /accounts/example.com/public_html 中拥有所有服务器块帐户 (vhosts)。现在所有文件夹都归 root/root 所有,我需要将任何文件夹更改为 nginx/nginx 吗?

  2. 设置 php-fpm 池帐户。我在 /etc/php-fpm.d 文件夹中有一个名为 www.conf 的 php-fpm conf 文件。该文件中的用户和组是 www/www。如果我没有运行池,我假设这是默认的 conf 文件。如果我没有运行池,用户/组是否应该更改为 nginx/nginx?

  3. 如果我要运行 php-fpm 池,/etc/php-fpm.d/domainname.conf 中的用户是否应该反映我在问题 1 中设置的相同用户/组。

  4. nginx.conf 中列出的用户/组是否应该与 php-fpm 配置相同?

我对 vhosts 的用户和组设置感到非常困惑(我知道这是一个 Apache 术语)我只是想弄清楚我必须添加哪些用户/组,我必须更改哪些文件夹权限......等等。

如果有人能给我提供一些信息,告诉我在我正在运行的设置中哪些文件夹需要具有哪些权限,这将对我有很大帮助。网络上的所有教程似乎都忽略了用户/组/文件夹权限,除非是日志文件/文件夹。

任何帮助都将不胜感激!谢谢!

答案1

您的 4 个问题实际上是一个问题。因此,我将作为一个问题来回答。

首先,您不能不考虑权限就考虑所有权。考虑权限 777,这意味着系统中的任何人都可以读取、写入和执行。因此,如果权限是 777,那么谁拥有它并不重要,您的 nginx 可以获取它,您的它可以被执行,等等。因此,即使您有 root:root,这实际上也没关系。但从安全性和清洁度方面来看,这不是最理想的。

想想 nginx 需要做什么。nginx 做什么?它确实……

  1. 读取静态文件。
  2. 传递 php-fpm 等 php 处理器。

所以,只要权限大于4(即可读),nginx就不会出现任何问题。

接下来,php-fpm 需要做什么?它确实……

  1. 读取已传递的文件。
  2. 如果文件写入磁盘,则需要写入权限。

需要注意的是,php-fpm 是可执行文件,而不是您的 PHP 脚本。因此,该脚本不需要可执行权限。PHP-FPM 根据 PHP 给出的指令执行。(除非您的意图是制作可执行的 PHP 文件)


因此,以此为基础,让我们尝试提出问题。

  1. nginx 是否应该成为所有者?如果您愿意的话。
  2. php-fpm 是否应为所有者?如果您希望如此。
  3. 其他池是否应该有不同的所有者?如果您愿意的话。
  4. nginx 和 php-fpm 应该使用同一个用户吗?如果您愿意的话。

嗯,这没什么帮助,不是吗?:P

但是!如果您在思考谁应该被授予更大的权限,谁应该被授予最少的权限(用户≥组≥其他)才能工作,那么答案应该就在您心中。如果权限是 775,谁需要 7?谁仍然可以获得 5?还有谁需要 7?也就是说,还有谁需要加入该“组”?

尽管我避免给你鱼,但我觉得这应该是你自己钓鱼所需知道的全部内容。欢迎来到旧金山。

相关内容