php忽略了mod_suexec

时间:2013-10-22 10:58:23

标签: php apache apache2 suexec

我设置了一个虚拟主机,使用mod_suexec以不同于www-data的用户身份运行PHP脚本。

<VirtualHost *:80>
    ServerName my.server.com
    DocumentRoot /srv/my-site
    SuexecUserGroup webconfig webconfig
</VirtualHost>

但是,当我创建目录或文件(mkdirfile_put_contents)时,这些文件/目录将www-data作为所有者。我也无法读取只有webconfig可读的文件。

我也注意到了这种奇怪的行为:这个php文件:

echo get_current_user()."\n";
echo `whoami`."\n";
echo exec('whoami')."\n";

产生以下输出:

webconfig
www-data
www-data

1 个答案:

答案 0 :(得分:0)

mod_php5实际上与mod_suexec不兼容。如上所述in this article,您必须使用mod_suphpphp-cgi。缺点是这会降低性能。

适用于Ubuntu的简单解决方案是

apt-get install -y suphp-common, libapache2-mod-suphp
a2dismod php5
a2enmod suphp

链接文章介绍了如何将mod_php5用于某些虚拟主机,将mod_suphp用于其他虚拟主机。