Como configuro vários arquivos PHP.INI no host compartilhado executando o Apache?

2

Eu gostaria de usar um arquivo PHP.INI diferente para cada site hospedado em um servidor compartilhado.

Eu modifiquei o arquivo vhosts do Apache para cada um dos sites, adicionando a linha…

PHPINIDir /srv/www/my-domain.com/

Portanto, o arquivo vhosts /etc/apache2/sites-enabled/my-domain.com agora é assim…

<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>

Ao recarregar o Apache, recebo o seguinte erro.

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!

A definição da diretiva PHPINIDir em apenas um dos arquivos vhosts funciona, mas cada site pega o arquivo PHP.INI.

Estamos executando o PHP5.3.2 no Ubuntu 10.04.

Alguma sugestão sobre como conseguir isso?

P.S. O objetivo disso é fazer com que cada site gere seu próprio log de erros do PHP.

    
por duncmc 07.02.2011 / 11:22

2 respostas

-2

A solução foi adicionar uma linha ao arquivo de configuração do vhost, que definiu o valor específico do PHP que eu precisava. Portanto, em vez de configurar o caminho para php_error.log em um arquivo PHP.INI personalizado para cada site, modifiquei o arquivo de configuração vhosts para cada site, conforme necessário.

Então, meu arquivo de configuração vhost agora é assim…

<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>

Encontrei a solução em outro lugar no ServerFault .

    
por 07.02.2011 / 14:36
0

Já verificou o php-fpm com o mod_fastcgi do apache? Ele permite que você defina exatamente a configuração que você precisa através de pools, e você pode até chroot os usuários! ;)

    
por 27.06.2012 / 11:22