我刚刚发现在 vhost 配置中覆盖 php.ini 设置在使用 suPHP 的 Apache 上不起作用。
该系统是 Ubuntu Server Edition 14.04 LTS,我安装了 Apache + PHP,如下所示:
apt-get install apache2 apache2-mpm-prefork apache2-utils php5
在不更改任何设置的情况下,以下虚拟主机可以开箱即用:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/public
php_admin_value open_basedir /var/www/html
</VirtualHost>
可以验证“open_basedir”设置是否符合 phpinfo()。
但是,安装 suPHP 和 suExec 后:
apt-get install libapache2-mod-suphp apache2-suexec
a2enmod suexec
phpinfo() 显示这些值仍然是“/etc/php5/cgi/php.ini”中设置的值。这不仅适用于 open_basedir,而且适用于我尝试使用php_admin_value
or覆盖的任何设置php_value
。
有没有办法使上述设置工作?
http://www.suphp.org/FAQ.html上的文档说 suPHP 不支持 php_admin_value 指令。不过,您也许可以使用自定义 php.ini 文件和
suPHP_ConfigPath
指令来完成类似的操作(请参阅http://www.suphp.org/DocumentationView.html?file=apache/CONFIG)。