Oddzielny plik php.ini dla każdego wirtualnego hosta Apache?

11

Czy można mieć osobny plik php.ini, który zastępuje domyślny plik php.ini dla każdego wirtualnego hosta? Używam Apache / 2.2.14, PHP 5.3.2-1.

Na przykład mam kilka vhostów wskazujących domeny w moim /var/www/katalogu:

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

Chciałbym móc umieścić niestandardowy plik php.ini w każdym katalogu, który zastąpiłby wartości domyślne tylko dla tego vhosta, ale zachował oryginalne ustawienia domyślne, jeśli wartość nie zostanie określona:

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

Edytuj
Dla zainteresowanych znalazłem więcej informacji na ten temat na stronie Jak skonfigurować pliki php.ini dla poszczególnych witryn na serwerze LAMP przy użyciu NameVirtualHosts? .

Calvin
źródło

Odpowiedzi:

6

Jeśli używasz mod_php, możesz zastąpić wartości, które chcesz w httpd.conf. Istnieją następujące dyrektywy modułowe:

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

Jeśli nie, najlepszym rozwiązaniem jest PHP FPM (google it).

Artefakt
źródło
2
Tak, mógłbym również użyć .htaccess w każdym katalogu głównym vhosta, aby zmienić wartości, a z tego, co przeczytałem, jest to dobry sposób, aby to zrobić. Ale wiem, że widziałem niektóre hostowane hosty współdzielone, które pozwalają ci zastąpić ich php.ini własnymi, więc musi być inny sposób, aby zrobić to dobrze?
2

Jeśli używasz cgi (lub fastcgi lub fpm, czyli również fastcgi), możesz użyć .user.iniplików .

Po prostu umieść .user.iniplik w katalogu webroot z opcjami php, w następujący sposób:

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

I php rozszerzy główny plik php.ini o te opcje.

elboletaire
źródło
-3

Dodaj PHPINIDir do znacznika VirtualHost i wskaż go do katalogu, w którym będzie używany plik php.ini, którego będzie używał vhost.

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

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

Edytuj 14.04.2010 12:30 EST: ** Nieważne, zmieniło to „Załadowany plik konfiguracyjny” dla wszystkich vhostów. **

matowy
źródło
PHPINIDir ładuje php.ini dla WSZYSTKICH wirtualnych hostów, a nie tylko tego, w którym je umieściłeś. Zostałem złapany, zakładając, że to samo :(
alandarev