2010-10-06 13 views
15

Ich habe das gefunden2 php.ini Dateien

Die Loaded Konfigurationsdatei ist @/etc/php5/cli/php.ini

Aber von phpinfo(), sehe ich:

Die geladene ini-Datei @ /etc/php5/apache2/php.ini

Welches davon ist jetzt zu arbeiten? Wie ist es möglich, zwei php.ini Dateien zu haben?

+0

Pfad auf Server möglicherweise anders als Pfad im Browser angezeigt – Grumpy

Antwort

28

Hängt davon ab, wo Sie PHP ausführen. Wenn Sie es über die Befehlszeile ausführen, verwendet es die cli/php.ini und apache2/php.ini beim Ausführen durch Apache.

Sie führen phpinfo() über den Browser aus, daher erhalten Sie /etc/php5/apache2/php.ini als die Antwort. Wenn Sie php -r "phpinfo();" | grep "Loaded Configuration" vom Terminal ausführen, sollte CLI ini ausgegeben werden. Gleiche Funktion, Kontextänderungen.

Der Vorteil dieses Systems besteht offensichtlich darin, je nach Kontext unterschiedliche Konfigurationen zuzulassen. Für ein vereinfachtes Beispiel möchten Sie möglicherweise safe_mode in Apache aktiviert haben, dies ist jedoch im CLI-Modus nicht erforderlich.

Ihre .ini Pfade sind eigentlich ziemlich ungewöhnlich. Normalerweise ist die Standard-INI nur php.ini und CLI.ini heißt php-cli.ini und sie befinden sich im selben Ordner.

Ich bin kein Experte auf dem Thema, aber das sollte die Grundidee sein. Wenn jemand Korrekturen hat, würde ich mich freuen, sie zu hören.

+1

Yup. Du hast es richtig. Die Grundidee hinter verschiedenen INI-Dateien für CLI und Apache ist, dass mehrere virtuelle Server auf einem einzigen System ausgeführt werden können. Danke für deine Antwort. –

+1

@HrishikeshChoudhari "Die Grundidee hinter verschiedenen INI-Dateien für CLI und Apache ist, dass mehrere virtuelle Server auf einem einzigen System ausgeführt werden können." 100% ist nicht der Fall. Die PHP-CLI-Version von 'php.ini' ist für die Befehlszeile PHP-Zeug. Das Apache Modul 'php.ini' ist für das Apache PHP Modul. Zwei verschiedene & verschiedene Dinge. – JakeGould