Fichier php.ini distinct pour chaque hôte virtuel Apache?

11

Est-il possible d'avoir un fichier php.ini distinct qui remplace le fichier php.ini par défaut pour chaque hôte virtuel? J'utilise Apache / 2.2.14, PHP 5.3.2-1.

Par exemple, j'ai plusieurs vhosts pointant vers des domaines dans mon /var/www/annuaire:

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

Ce que j'aimerais, c'est pouvoir placer un fichier php.ini personnalisé dans chaque répertoire qui remplacerait les valeurs par défaut uniquement pour ce vhost, mais garder les valeurs par défaut d'origine si la valeur n'est pas spécifiée:

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

Modifier
Pour les personnes intéressées, j'ai trouvé plus d'informations sur le sujet à la rubrique Comment configurer des fichiers php.ini par site sur un serveur LAMP à l'aide de NameVirtualHosts? .

Calvin
la source

Réponses:

6

Si vous utilisez mod_php, vous pouvez remplacer les valeurs souhaitées dans httpd.conf. Il y a ces directives de module:

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

Sinon, votre meilleur coup est PHP FPM (google it).

Artefacto
la source
2
Ouais, je pourrais aussi utiliser un .htaccess dans chaque racine vhost pour changer les valeurs aussi, et d'après ce que j'ai lu, c'est une bonne façon de le faire. Mais je sais que j'ai vu des hébergeurs d'hébergement mutualisé qui vous permettent de remplacer leur php.ini par le leur, donc il doit y avoir une autre façon de le faire, non?
2

Si vous utilisez cgi (ou fastcgi, ou fpm, qui est également fastcgi), vous pouvez utiliser les .user.inifichiers .

Placez simplement un .user.inifichier dans votre répertoire webroot avec vos options php, comme suit:

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

Et php étendra le fichier php.ini principal avec ces options.

elboletaire
la source
-3

Ajoutez le PHPINIDir dans la balise VirtualHost et pointez-le vers le répertoire de votre fichier php.ini que vhost utilisera.

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

récupéré sur http://www.howtoforge.com/how-to-specify-a-custom-php.ini-for-a-website-apache2-with-mod_php

Edit 14/04/2010 12:30 pm EST: ** Peu importe, cela a changé le "fichier de configuration chargé" pour tous les vhosts. **

mat
la source
PHPINIDir charge ce php.ini pour TOUS les hôtes virtuels, et pas seulement celui dans
lequel