Arquivo php.ini separado para cada host virtual Apache?

11

É possível ter um arquivo php.ini separado que substitua o arquivo php.ini padrão para cada host virtual? Estou executando o Apache / 2.2.14, PHP 5.3.2-1.

Por exemplo, tenho vários vhosts apontando para domínios no meu /var/www/diretório:

/var/www/website1.com  
/var/www/website2.com

O que eu gostaria é de poder colocar um arquivo php.ini personalizado em cada diretório que substituísse os valores padrão apenas para esse vhost, mas mantenha os padrões originais se o valor não for especificado:

/var/www/website1.com/htdocs/
/var/www/website1.com/php.ini

Editar
Para os interessados, encontrei mais informações sobre o tópico em Como configurar arquivos php.ini por site em um servidor LAMP usando NameVirtualHosts? .

Calvin
fonte

Respostas:

6

Se você estiver usando o mod_php, poderá substituir os valores que deseja no httpd.conf. Existem estas diretivas de módulo:

php_value - PHP Value Modifier
php_flag - PHP Flag Modifier
php_admin_value - PHP Value Modifier (Admin)
php_admin_flag - PHP Flag Modifier (Admin)

Caso contrário, sua melhor opção é PHP FPM (google it).

Artefacto
fonte
2
Sim, eu também poderia usar um .htaccess em cada raiz do vhost para alterar os valores também, e pelo que li isso é uma boa maneira de fazer isso. Mas eu sei que já vi alguns webhosts de hospedagem compartilhada que permitem que você substitua o php.ini pelo deles, então é preciso haver outra maneira de fazer isso certo?
2

Se você estiver usando cgi (ou fastcgi, ou fpm, que também é fastcgi), poderá usar os .user.iniarquivos .

Basta colocar um .user.iniarquivo no diretório webroot com as opções de php, da seguinte maneira:

memory_limit=256M
upload_max_filesize=200M
post_max_size=200M

E o php estenderá o principal arquivo php.ini com essas opções.

elboletaire
fonte
-3

Adicione o PHPINIDir na tag VirtualHost e aponte-o para o diretório que o arquivo php.ini que o vhost usará.

<VirtualHost *:80>
[....]
PHPINIDir /var/www/web1
[....]
</VirtualHost>

agarrado em http://www.howtoforge.com/how-to-specify-a-custom-php.ini-for-a-website-apache2-with-mod_php

Editar 14/04/2010 12:30 EST: ** Deixa para lá, isso alterou o "Arquivo de configuração carregado" para todos os vhosts. **

mate
fonte
O PHPINIDir carrega o php.ini para TODOS os hosts virtuais, e não apenas aquele em que você o colocou. Fui pego assumindo o mesmo :(
alandarev