我剛剛發現在 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>
我們可以驗證 phpinfo() 是否遵循「open_basedir」設定。
但是,安裝 suPHP 和 suExec 後:
apt-get install libapache2-mod-suphp apache2-suexec
a2enmod suexec
phpinfo() 顯示這些值仍然是「/etc/php5/cgi/php.ini」中設定的值。這不僅適用於 open_basedir,也適用於我嘗試使用 或 覆蓋的任何php_admin_value
設定php_value
。
有什麼辦法可以使上述設定起作用嗎?
答案1
文件位於http://www.suphp.org/FAQ.html說 suPHP 不支援 php_admin_value 指令。您也許可以使用自訂 php.ini 檔案和suPHP_ConfigPath
指令來完成類似的事情(請參閱http://www.suphp.org/DocumentationView.html?file=apache/CONFIG)。