如何在运行Apache的共享主机上configuration多个PHP.INI文件?

我想为共享服务器上托pipe的每个站点使用不同的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 [email protected] 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! 

只在其中一个虚拟主机文件中设置PHPINIDir指令,但每个站点都会select该PHP.INI文件。

我们在Ubuntu 10.04上运行PHP5.3.2。

有关如何实现这一目标的任何build议?

PS这一点是要让每个网站生成自己的PHP错误日志。

你已经检查出php-fpm与Apache的mod_fastcgi? 它允许您通过池准确地定义您需要的configuration,甚至可以chroot用户! ;)

解决的办法是在vhostconfiguration文件中添加一行来设置我需要的特定PHP值。 因此,不是在每个站点的自定义PHP.INI文件中设置php_error.logpath, php_error.log根据需要修改每个站点的vhostsconfiguration文件。

所以我的虚拟主机configuration文件现在读取因此…

 <VirtualHost 123.54.67.89:80> ServerAdmin [email protected] 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的其他地方find了解决scheme。