Ich habe Änderungen an meiner php.ini-Datei vorgenommen, sodass ich die php.ini-Datei nicht jedes Mal aktualisiere, wenn ich das PHP-Paket aktualisiere. Ich möchte meine Änderungen in eine andere Datei „aufspalten“, sodass ich die eigentliche php.ini-Datei aktualisieren kann, ohne meine Änderungen zu verlieren.
Mir ist bewusst, dass mit PHP 5.3 verzeichnisspezifische INI-Dateien eingeführt wurden, mein Server verfügt jedoch über mehrere virtuelle Hosts und damit über mehrere Dokumentstämme. Daher gibt es bei Verwendung des verzeichnisspezifischen Ansatzes keinen Ort, an dem ich eine überschreibende php.ini-Datei ablegen kann.
Gibt es eine Möglichkeit, PHP dazu zu bringen, nach einer „zu ändernden“ php.ini-Datei zu suchen?
Antwort1
PHP lädt zusätzliche INI-Dateien aus einem bestimmten Verzeichnis. Auf einer Debian 8-Box ist dieses Verzeichnis: /etc/php5/apache2/conf.d
.
Dateien in diesem Verzeichnis werden in alphabetischer Reihenfolge geladen. Wenn Sie also 00-overrides.ini
beispielsweise eine Datei benennen, wird diese zuerst geladen. In dieser Datei festgelegte Einstellungen überschreiben die in der Standard-php.ini festgelegten Einstellungen.
Antwort2
Wenn Sie PHP als Apache-Modul ausführen, gibt es eine Anweisung zum Festlegen des Verzeichnispfads, in dem PHP nach php.ini sucht:
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/php"
Das Beispiel ist für Windows, funktioniert aber genauso für Linux-Systeme.
Beachten Sie, dass die php.ini im angegebenen Verzeichnisersetzendie php.ini am Standardspeicherort, es wird sie in keiner Weise überschreiben oder erweitern.
Auf diese Weise wird beim Aktualisieren von PHP die php.ini am Standardspeicherort überschrieben, nicht jedoch Ihre benutzerdefinierte php.ini
Referenz:http://php.net/manual/en/install.windows.apache2.php#install.windows.apache2.module