Separate php.ini-Datei für jeden virtuellen Apache-Host?


11

Ist es möglich, eine separate php.ini-Datei zu haben, die die Standard-php.ini-Datei für jeden virtuellen Host überschreibt? Ich verwende Apache / 2.2.14, PHP 5.3.2-1.

Zum Beispiel habe ich mehrere vhosts, die auf Domains in meinem /var/www/Verzeichnis verweisen :

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

Ich möchte in jedem Verzeichnis eine benutzerdefinierte php.ini-Datei ablegen können, die die Standardwerte nur für diesen vhost überschreibt, aber die ursprünglichen Standardeinstellungen beibehält, wenn der Wert nicht angegeben wird:

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

Bearbeiten
Für Interessenten habe ich weitere Informationen zum Thema unter Wie richte ich php.ini-Dateien pro Site auf einem LAMP-Server mit NameVirtualHosts ein? .

Antworten:


6

Wenn Sie mod_php verwenden, können Sie die gewünschten Werte in httpd.conf überschreiben. Es gibt folgende Modulanweisungen:

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

Wenn nicht, ist Ihr bester Schuss PHP FPM (google it).


2
Ja, ich könnte auch einen .htaccess in jeder vhost-Wurzel verwenden, um die Werte zu ändern, und nach dem, was ich gelesen habe, ist dies eine gute Möglichkeit, dies zu tun. Aber ich weiß, dass ich einige Webhosts mit gemeinsamem Hosting gesehen habe, mit denen Sie ihre php.ini mit ihren eigenen überschreiben können. Es muss also einen anderen Weg geben, dies richtig zu machen.

1

Wenn Sie cgi (oder fastcgi oder fpm, was auch fastcgi ist) verwenden, können Sie die .user.iniDateien verwenden .

Platzieren Sie einfach eine .user.iniDatei in Ihrem Webroot-Verzeichnis mit Ihren PHP-Optionen wie folgt:

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

Und php wird die Hauptdatei php.ini mit diesen Optionen erweitern.


-3

Fügen Sie das PHPINIDir in das VirtualHost-Tag ein und verweisen Sie es auf das Verzeichnis, das Ihre php.ini-Datei von vhost verwenden wird.

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

von 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: ** Nevermind, dies hat die "Loaded Configuration File" für alle vhosts geändert. ** **.


PHPINIDir lädt diese php.ini für ALLE virtuellen Hosts und nicht nur für den, in den Sie sie
eingefügt haben
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.