我设置了一个虚拟主机,使用mod_suexec
以不同于www-data
的用户身份运行PHP脚本。
<VirtualHost *:80>
ServerName my.server.com
DocumentRoot /srv/my-site
SuexecUserGroup webconfig webconfig
</VirtualHost>
但是,当我创建目录或文件(mkdir
,file_put_contents
)时,这些文件/目录将www-data
作为所有者。我也无法读取只有webconfig
可读的文件。
我也注意到了这种奇怪的行为:这个php文件:
echo get_current_user()."\n";
echo `whoami`."\n";
echo exec('whoami')."\n";
产生以下输出:
webconfig
www-data
www-data
答案 0 :(得分:0)
mod_php5
实际上与mod_suexec
不兼容。如上所述in this article,您必须使用mod_suphp
和php-cgi
。缺点是这会降低性能。
适用于Ubuntu的简单解决方案是
apt-get install -y suphp-common, libapache2-mod-suphp
a2dismod php5
a2enmod suphp
链接文章介绍了如何将mod_php5
用于某些虚拟主机,将mod_suphp
用于其他虚拟主机。