¿Archivo php.ini separado para cada host virtual Apache?

11

¿Es posible tener un archivo php.ini separado que anule el archivo php.ini predeterminado para cada host virtual? Estoy ejecutando Apache / 2.2.14, PHP 5.3.2-1.

Por ejemplo, tengo varios vhosts apuntando a dominios en mi /var/www/directorio:

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

Lo que me gustaría es poder colocar un archivo php.ini personalizado en cada directorio que anule los valores predeterminados solo para ese vhost, pero mantenga los valores predeterminados originales si no se especifica el valor:

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

Editar
Para aquellos interesados, encontré más información sobre el tema en ¿Cómo configuro archivos php.ini por sitio en un servidor LAMP usando NameVirtualHosts? .

Calvin
fuente

Respuestas:

6

Si está utilizando mod_php, puede anular los valores que desee en httpd.conf. Existen estas directivas 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)

Si no, su mejor opción es PHP FPM (google it).

Artefacto
fuente
2
Sí, también podría usar un .htaccess en cada raíz vhost para cambiar los valores también, y por lo que he leído, esta es una buena manera de hacerlo. Pero sé que he visto algunos webhosts de alojamiento compartido que le permiten anular sus php.ini con los suyos, por lo que tiene que haber otra forma de hacerlo bien.
2

Si está usando cgi (o fastcgi, o fpm, que también es fastcgi), puede usar los .user.iniarchivos .

Simplemente coloque un .user.iniarchivo en su directorio webroot con sus opciones de php, de la siguiente manera:

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

Y php extenderá el archivo php.ini principal con esas opciones.

elboletaire
fuente
-3

Agregue PHPINIDir dentro de la etiqueta VirtualHost y apúntelo al directorio de su archivo php.ini que usará vhost.

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

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

Editar 14/04/2010 12:30 pm EST: ** No importa, esto cambió el "Archivo de configuración cargado" para todos los vhosts. ** **

mate
fuente
PHPINIDir carga ese php.ini para TODOS los hosts virtuales, y no solo en el que lo
instaló