Was ist der Unterschied zwischen lokalem Wert und Hauptwert?

77

Wenn ich anzeige, phpinfo();sehe ich zwei Spalten: local valueund master value. Wann wählt der Webserver local valueund wann wählt er master value?

Liauchuk Ivan
quelle

Antworten:

72

masterist entweder der in PHP kompilierte Wert oder wird über eine Hauptanweisung festgelegt php.ini. zB Der Wert, der beim Starten von PHP wirksam ist, bevor ein Code ausgeführt wird.

localist der Wert, der derzeit zum Zeitpunkt Ihres Anrufs gültig ist phpinfo(). Dieser lokale Wert ist das END-Ergebnis aller Überschreibungen, die über ini_set()Aufrufe, php_valueAnweisungen in httpd.conf / .htaccess usw. stattgefunden haben.

z.B

php.ini:     foo=bar
httpd.conf:  php_value foo baz
.htaccess:   php_value foo qux
ini_set:     ini_set('foo', 'kittens');

Vorausgesetzt, der masterWert ist quxund der localWert ist kittens.

Marc B.
quelle
5
Wäre der Master-Wert nach dem, was Sie geschrieben haben, nicht 'bar', da er in der Datei php.ini festgelegt ist?
Aine
1
@Aine Ja, der "Master-Wert" (wie von gemeldet phpinfo()) wäre in diesem Beispiel tatsächlich "bar". Dies ist wie im ersten Absatz der Antwort angegeben (nicht sicher, warum die offensichtliche Änderung der Argumentation im Beispiel?). Festlegen einen PHP - Konfigurationswert httpd.conf, .htaccessoder .user.iniusw. ändert nicht den gemeldeten „Leitwert“, nur der „lokale Wert“ geändert wird .
MrWhite
2
In der Antwort ist nicht klar, dass eine .user.ini-Datei auch den lokalen Wert ändern kann. Ich empfehle, die Antwort zu bearbeiten, um dies zu verdeutlichen.
Jeff Baker
2
@MarcB: Ich denke, gemäß dem ersten Absatz der Antwort sollte die letzte Zeile der Antwort lauten: "Vorausgesetzt, der Hauptwert ist bar und der lokale Wert ist baz (wenn in httpd.conf festgelegt), qux (falls festgelegt) in .htaccess), Kätzchen (wenn mit ini_set festgelegt) ". Wenn ich das Konzept richtig verstanden habe und die letzte von mir vorgeschlagene Aussage ebenfalls korrekt ist, ändern Sie bitte die letzte Aussage der Antwort in die von mir vorgeschlagene, um die Verwirrung zu beseitigen.
PHPLover
2
@MarcB: Bitte aktualisieren Sie Ihre Antwort, um die entstandene Verwirrung über diemaster value qux
PHPFan
14

"Master Value" (aus php.ini) kann mit "Local Value" in httpd.conf , .htaccess oder einer anderen Apache-Konfiguration mit der Anweisung php_value überschrieben werden .

Der erste ist der lokale Wert, der zweite ist der globale Wert. Der lokale Wert überschreibt den globalen Wert und wird in PHP, HTACCESS usw. festgelegt, während der globale Wert in php.ini festgelegt wird. Zur Beantwortung Ihrer Frage wird der erste Wert verwendet.

Legionär
quelle
6
Wenn zum Beispiel der lokale Wert = 0 ist, der Master-Wert = 1440, verwendet der Webserver jedoch immer 0, oder?
Liauchuk Ivan
7
Der erste ist der lokale Wert, der zweite ist der globale Wert. Der lokale Wert überschreibt den globalen Wert und wird in PHP, HTACCESS usw. festgelegt, während der globale Wert in php.ini festgelegt wird. Zur Beantwortung Ihrer Frage wird der erste Wert verwendet. lokaler Wert = 0
Legionär
4

Die gehostete Website überprüft die lokalen Werte in. htaccessoder .user.inizuerst (Diese Dateien befinden sich in Ihrem lokalen Website-Ordner und können auch Konfigurationsdateien auf lokaler Ebene enthalten).

Lokale Werte überschreiben Master-Werte, sodass PHP zuerst die lokalen Werte überprüft.

Der in php.ini(Haupt-PHP-Konfigurationsdatei) eingestellte Master-Wert führt die folgenden Befehle im Terminal aus, um den richtigen Pfad zu finden

php -i | grep 'Configuration File'

oder

php -i | grep php.ini

Selbst wenn wir Master-Werte festlegen php.ini, müssen wir auch lokale Werte .htaccessoder überprüfen.user.ini

Nittn Warshne
quelle