nginx设置为一个用户,但whoami报告不同的用户

我有一个nginx设置在一台testing机器上,托pipeWordpress。 我试图找出一些权限问题,并遇到了一些我无法弄清楚的东西。

即使在我知道的所有地方,我都说它是用户的'nginx', whoami报告'apache'。

  • 在nginx.conf文件中,我有用户nginx设置。
  • 如果我运行ps aux | grep [n]ginx ps aux | grep [n]ginx ,主进程以root身份运行,worker以nginx身份运行。
  • 我的网站configuration文件没有提到它的Apache
  • 我有<?php echo(exec("whoami")); ?> <?php echo(exec("whoami")); ?>在一个PHP页面上,它响应为“Apache”
  • 权限绑定到这个Apache帐户。 如在,我有权限问题,如果public_html文件夹设置为Nginx,但工作正常,如果Apache。

我似乎无法find其他地方看到这个Apache帐户。 我甚至想删除它,但userdel说,当我尝试这个用户login。

在Nginx设置中,您可能使用PHP-FPM来解释PHP脚本。 PHP-FPM有自己的configuration,它定义了池。 每个池可以作为自己的用户运行。 实质上:Nginx需要能够直接读取(静态)直接从其中获得的文件(以及遍历(即x)目录的权限),PHP-FPM(相关的池)需要具有对这些文件的读取权限,写入文件夹(或任何您想要修改的文件)的访问权限(以及遍历权限)。

PHP-FPMconfiguration通常位于/etc/php-fpm.conf和/etc/php-fpm.d/*.conf

PHP-FPMconfiguration的相关部分可能如下所示:

 [pool_name] listen = 127.0.0.1:9000 user = apache group = apache 

检查PHP-FPM正在运行的用户: ps -ef | grep php-fpm ps -ef | grep php-fpm (如果你有多个池,你可能有多个php-fpm实例,可能有多个用户)。

(顺便说一句,如果你查看你的Nginxconfiguration,你可能会发现FastCGI处理程序的引用,例如: fastcgi_pass 127.0.0.1:9000;这里指定的地址和端口需要匹配池的地址和端口您正在修改的用户/组)。

此外,仅用于诊断目的,而不是查看nginx正在运行的用户,您可能已经能够search用户apache(即ps -ef | grep apache )运行的程序。

这取决于你的php脚本如何运行,它们要么在apache服务器上运行,要么nginx将php请求redirect到它,或者它们正在以apache运行的php-fpm / FastCGI进程运行。 你需要检查这个,如果这是你需要的,使它们作为nginx运行。
如果正在使用php-fpm,则需要在/etc/php-fpm.d/下find相应的configuration,例如/etc/php-fpm.d/somesite.conf,并确保接下来的行如下所示:

 user = nginx group = nginx 

然后通过发出以下命令重新启动你的php-fpm安装

 service php-fpm restart 

要么

 /etc/init.d/php-fpm restart