Apache-2.2
如何在執行 Apache 的共享主機上配置多個 PHP.INI 文件?
我想為託管在共享伺服器上的每個站點使用不同的 PHP.INI 文件。
我已經修改了每個站點的 Apache vhosts 文件,添加了以下行…
PHPINIDir /srv/www/my-domain.com/
所以 vhosts 文件
/etc/apache2/sites-enabled/my-domain.com
現在是這樣讀取的……<VirtualHost 123.54.67.89:80> ServerAdmin me@my-domain.com ServerName my-domain.com ServerAlias www.my-domain.com DocumentRoot /srv/www/my-domain.com/www/ ErrorLog /srv/www/my-domain.com/logs/error.log CustomLog /srv/www/my-domain.com/logs/access.log combined PHPINIDir /srv/www/my-domain.com/ </VirtualHost>
重新載入 Apache 時出現以下錯誤。
Syntax error on line 8 of /etc/apache2/sites-enabled/my-domain.com: Only first PHPINIDir directive honored per configuration tree - subsequent ones ignored ...fail!
僅在其中一個 vhosts 文件中設置
PHPINIDir
指令有效,但隨後每個站點都會選擇該 PHP.INI 文件。我們在 Ubuntu 10.04 上執行 PHP5.3.2。
關於如何實現這一目標的任何建議?
PS 這樣做的目的是讓每個站點生成自己的 PHP 錯誤日誌。
解決方案是在 vhost 配置文件中添加一行來設置我需要的特定 PHP 值。因此,我沒有在每個站點的自定義 PHP.INI 文件中設置路徑,而是
php_error.log
根據需要修改了每個站點的 vhosts 配置文件。所以我的虛擬主機配置文件現在是這樣的……
<VirtualHost 123.54.67.89:80> ServerAdmin me@my-domain.com ServerName my-domain.com ServerAlias www.my-domain.com DocumentRoot /srv/www/my-domain.com/www/ ErrorLog /srv/www/my-domain.com/logs/error.log CustomLog /srv/www/my-domain.com/logs/access.log combined php_value error_log /srv/www/my-domain.com/logs/php_error.log </VirtualHost>
我在 ServerFault 的其他地方找到了解決方案。
你已經用 apache 的 mod_fastcgi 檢查了 php-fpm 了嗎?它允許您通過池準確定義所需的配置,甚至可以對使用者進行 chroot!;)