Separare il file php.ini per ciascun host virtuale Apache?


11

È possibile avere un file php.ini separato che sovrascrive il file php.ini predefinito per ciascun host virtuale? Sto eseguendo Apache / 2.2.14, PHP 5.3.2-1.

Ad esempio, ho diversi vhost che puntano a domini nella mia /var/www/directory:

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

Quello che mi piacerebbe è poter posizionare un file php.ini personalizzato in ogni directory che sovrascriverà i valori predefiniti solo per quel vhost, ma manterrà i valori predefiniti originali se il valore non è specificato:

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

Modifica
Per chi fosse interessato, ho trovato maggiori informazioni sull'argomento in Come posso impostare i file php.ini per sito su un server LAMP usando NameVirtualHosts? .

Risposte:


6

Se si utilizza mod_php, è possibile sovrascrivere i valori desiderati in httpd.conf. Esistono queste direttive sui moduli:

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

In caso contrario, il tuo colpo migliore è PHP FPM (google it).


2
Sì, potrei anche usare un .htaccess in ogni root del vhost per cambiare anche i valori, e da quello che ho letto questo è un buon modo per farlo. Ma so di aver visto alcuni webhost di hosting condiviso che ti consentono di sovrascrivere il loro php.ini con il loro, quindi ci deve essere un altro modo per farlo bene?

2

Se stai usando cgi (o fastcgi, o fpm, che è anche fastcgi), puoi usare i .user.inifile .

Posiziona semplicemente un .user.inifile nella tua directory webroot con le tue opzioni php, come segue:

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

E php estenderà il file php.ini principale con quelle opzioni.


-3

Aggiungi il PHPINIDir all'interno del tag VirtualHost e punta alla directory che il tuo file php.ini utilizzerà vhost.

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

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

Modifica 14/04/2010 12:30 pm EST: ** Non importa, questo ha cambiato il "File di configurazione caricato" per tutti i vhosts. **


PHPINIDir carica quel php.ini per TUTTI gli host virtuali, e non solo quello in cui lo hai inserito. Mi sono sorpreso a supporre lo stesso :(
alandarev,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.