有没有一种方法可以configurationnginx / php,以便用特定的用户创build文件。
例如,当一个drupal / wordpress站点上传一个文件时,用户被分配为:john:www-data
nginx.conf确实有一个用户,但据我所知,这只会改变用户在系统上使用nginx。
正如Tero所build议的那样,您需要更改负责托pipe您想要影响的站点的php-fpmstream程的用户。
PHP-FPM有“池”,我想大多数pipe理员通常每个站点都有一个池。 因此,如果您托pipeexample.com和another-example.com,则可以拥有两个各自运行其各自站点的php-fpm池。 不同池的好处是您可以分别定义每个configuration的configuration(从而将stream程作为不同的用户/组运行)。
你没有指定你的分配/configuration,所以我只能告诉你,你的池configuration文件可能位于/etc/php-fpm.d/*.conf 。 所以,你可以使用/etc/php-fpm.d/example.com.conf :
[example.com] user = john group = www-data ...
然后另一个池/etc/php-fpm.d/another-example.com.conf与:
[another-example.com] user = sally group = www-data ...
php-fpm的configuration是INI格式,我发布的只是相关的用户/组指令。 有一个适当的池定义所需的更多configuration选项。 请参阅此页面上的“池指令列表”一节以获取更多信息。
您将需要重新启动您的php-fpm服务,以使池更改生效。 在大多数系统上,使用php-fpm -t重新启动(以避免可能的停机时间)之前,您可以testing您的configuration。 我认为一些发行版使用php5-fpm -t 。
最后,是的,正如你所说的,nginx.conf用户/组指令只影响Nginx。 PHP-FPM作为一个独立的进程运行,或多或less独立于Nginx。
没有办法做到这一点。 PHP由PHP-FPM进程运行,以特定用户身份运行。 创build的文件由该用户拥有。
只有超级用户可以更改文件的所有者,并且以超级用户权限运行PHP-FPM进程是不安全的。
您唯一的select是更改进程上载的文件的所有权状态,即将您运行PHP-FPM的用户更改为。