Ich habe EasyPHP WAMP nur für die lokale Entwicklung installiert (ich hosste keine Websites).
Gibt es eine Möglichkeit, benutzerdefinierte PHP-Einstellungen für separate virtuelle Hosts festzulegen?
Derzeit und sofort wird die php.ini
-Datei geladen von: C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\binaries\php\php_runningversion\php.ini
Es wäre schön, wenn ich zum Beispiel eine benutzerdefinierte php.ini
-Datei in das virtuelle Host-Verzeichnis einfügen könnte, um sie zu überschreiben Einstellungen in der ursprünglichen php.ini
Auf diese Weise könnte ich besser die Umgebung eines Produktionsservers pro Standort emulieren.
Ich habe gesehen, dass dies mit Online-Hosting-Accounts funktioniert. Aber ich kann mir nicht vorstellen, wie das auf meinem Rechner funktioniert.
Die Verwendung von php.ini
files ist ziemlich einfach für CGI / FastCGI-basierte PHP-Installationen, aber es ist nicht praktikabel, wenn PHP als Apache-Modul (mod_php) ausgeführt wird, da der ganze Server eine einzige Instanz des PHP-Interpreters ausführt >
Mein Rat:
Stellen Sie in PHP selbst so viele Einstellungen wie möglich ein:
%Vor%Mit anderen Worten, Anweisungen, die zur Laufzeit geändert werden können.
Legen Sie den Rest der Dateien aus Apache-Einstellungsdateien pro Verzeichnis fest (aka .htaccess
):
, d. h. Einstellungen, die vor dem Start des Skripts definiert werden müssen
Weitere Einzelheiten finden Sie in der Laufzeitkonfiguration .
Manchmal benötigen Sie tatsächlich andere -Einstellungen in Entwicklung und Produktion. Es gibt endlose Möglichkeiten, das mit PHP-Code zu lösen (von der Erzeugung einer booleschen Konstanten von der $_SERVER['HTTP_HOST']
-Variablen bis zu einer config.php
-Datei mit unterschiedlichen Werten), aber es ist mit .htaccess
schwieriger. Normalerweise verwende ich die <IfDefine>
-Direktive :
... wobei DEV-BOX
eine Zeichenfolge ist, die ich an die lokale Apache-Befehlszeile übergebe:
Wenn Sie Apache als Dienst ausführen, kann das -D DEV-BOX
-Bit in der Windows-Registrierung hinzugefügt werden, z. B .:
Ähnliches: Finden Sie heraus, wie PHP auf dem Server läuft (CGI ODER fastCGI ODER mod_php)
Einfache Verwendung der benutzerdefinierten php.ini-Datei für vhost unter Verwendung von Fast CGI ist das Kopieren der php.ini in einen Ordner im Host wie "customini".
Danach zu Ihrer vhost-Anweisung und fügen Sie diese einfache Zeile hinzu:
%Vor% SEI HABEN /
auf deinem Pfad no \
, (funktioniert nicht mit \
)
Starten Sie Apache neu.
Das ist alles!
Volles Beispiel (auf Windows Server hier):
%Vor%Mehrere Kommentatoren erwähnen Vagrant , was eine ausgezeichnete Lösung ist.
Wenn Sie nicht daran interessiert sind, Vagrant zu verwenden, können Sie FastCGI als Schnittstelle zu Apache untersuchen und den vorgeschlagenen SetEnv PHPRC...
Vorschlag verwenden. Blog :
Apache & amp; PHP: Mehrere PHP.ini-Konfigurationsdateien (Sonntag, 8. Februar 2009)
Quelle: Ссылка
Das zweite Problem besteht darin, die Umgebungsvariable PHPRC zu verwenden konfigurierbar in Apache mit der SetEnv-Direktive. Diese Richtlinie Mit dieser Option können Sie eine Umgebungsvariable festlegen, die an alle übergeben wird CGI-Skript und / oder Server Side Include (SSI) in einem statischen (x) HTML Seite (oder einen anderen Dokumenttyp). In diesem Fall würden Sie es jedem erzählen PHP-CGI-Instanz, wo die Konfigurationseinstellungen zu finden sind. Das Beispiel wäre (fällt mit dem vorherigen zusammen):
%Vor%
Die PHP-Dokumentation ändert jedoch die Laufzeit Konfiguration schlägt vor, dass Sie bestimmte Werte wie
php_value
ausprobieren können loaalong mit, möglicherweise dieSetEnv
Direktive.
Er schlägt eine andere Option vor, die FastCGI nicht verwendet, sondern stattdessen die Konfigurationsoptionen php_value
, php_flag
usw. verwendet.
Andere scheinen etwas Erfolg beim Ausführen von Skripts durch FastCGI zu haben, siehe jedoch: Trennen Sie php.ini für verschiedene virtuelle Hosts
Andere Vorschläge beinhalten die PHPINI
-Direktive, die für Ihre Bedürfnisse relevant sein kann, siehe: