![Apache fast-cgi 和 php-fpm - 以所有者身份运行 PHP 文件](https://linux22.com/image/641026/Apache%20fast-cgi%20%E5%92%8C%20php-fpm%20-%20%E4%BB%A5%E6%89%80%E6%9C%89%E8%80%85%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%20PHP%20%E6%96%87%E4%BB%B6.png)
我正在尝试设置 FastCGI 和 PHP-FPM,以便可以以文件所有者的身份执行 php 文件。我正在尝试用 FastCGI 和 fpm 替换 SuPHP。以前,我的文件夹有不同的所有者和组。每个组也有 www-data 作为成员。当使用浏览器运行任何 php 文件时,它都是以文件所有者的身份运行的。因此,如果文件归用户 A 所有(组 A - www-data 和 A 作为成员),则它以用户 A 的身份执行
shell_exec('whoami') => return A
现在,我安装了 fastcgi 并将其配置为运行 PHP 文件。
这是我的 php5-fpm.conf 文件
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</IfModule>
我的问题是,现在当我运行 A 拥有的同一个文件时,
shell_exec('whoami') => return www-data
是否可以使用 FastCGI 和 fpm (如使用 suPHP) 以所有者身份运行 php 文件?如果可以,我该怎么做?
答案1
是的,这是完全可能的。可以在 FPM 池配置中设置用户和组(指令user
和group
)。
查看
http://php.net/manual/en/install.fpm.configuration.php
了解更多信息。