根据以前的问题,如使用mod_fcgid而不是mod_php和PHP作为CGI或Apache模块? (和切向的一些其他 问题 )我了解到,运行PHP为CGI或FastCGI将使我的.php文件作为所有者而不是Apache用户(运行Apache的用户)运行。
phpinfo(); 函数声明Server API = CGI/FastCGI
但是,当我testing运行的用户,它仍然是Apache即。 <?php echo exec('whoami'); ?> <?php echo exec('whoami'); ?>返回apache 。
我也试过了Jeremy Bouse在我提到的问题中提出的build议 ,但PHP whoami仍然返回apache 。
如果phpinfo的“服务器API”等于“CGI / FastCGI”这个事实足以让普通用户运行php文件作为所有者?
(它甚至表明PHP没有运行mod_php?)
还是有一些pipe理任务还有待完成,或者可能是configuration错误?
恕我直言,运行PHP FastCGI的(最近的和最好的)方法是使用PHP-FPM ,其中许多选项也允许不同的用户使用不同的网站。
从官方网站 :
能够使用不同的uid / gid / chroot / environment和不同的php.ini来启动worker(replacesafe_mode)
但是使用FastCGI本身并不足以使用文件的所有者(并且没有“自动使用文件所有者”这样的事情:您必须通过虚拟主机(或者您希望的)来实际configuration虚拟主机。
Suexec可以以apache用户以外的用户身份运行cgi。 如果你想像这样运行PHP,你可能也会对suPHP感兴趣。