Die Konfigurationsdatei
Die Konfigurationsdatei (php.ini) wird beim Start von PHP eingelesen. Für die Servermodul-Versionen von PHP geschieht dies nur einmal beim Start des Webservers. Für die CGI- und CLI-Versionen geschieht dies bei jedem Aufruf.
Nach der php.ini wird an folgenden Orten in der angegebenen Reihenfolge gesucht:
- Spezielle Orte für SAPI-Module (PHPIniDir-Direktive im Apache2, -c Kommandozeilenparameter in CGI und CLI, php_ini-Parameter in NSAPI, PHP_INI_PATH-Umgebungsvariable im THTTPD)
- Die PHPRC-Umgebungsvariable. Vor PHP 5.2.0 wurde diese nach dem unten angegebenen Registrierungsschlüssel geprüft.
- Seit PHP 5.2.0 kann die Position der php.ini-Datei für verschiedene Versionen von PHP gesetzt werden. Die Wurzel der Registrierungsschlüssel hängt davon ab, ob es sich um ein 32- oder 64-bit System handelt, und ebenfalls von der PHP-Version. Für 32-bit PHP auf einem 32-bit System, oder für 64-bit PHP auf einem 64-bit System ist [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] zu verwenden; für 32-bit PHP auf einem 64-bit System ist statt dessen [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]] zu verwenden. Für Installation mit derselben Bitanzahl werden die folgende Registrierungsschlüssel in der angegebenen Reihenfolge durchsucht: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] und [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], wobei x, y und z die Major-, Minor- und Release-Versionen von PHP darstellen. Für 32-bit PHP-Versionen auf einem 64-bit System werden die folgenden Registrierungsschlüssel in der angegebenen Reihenfolge durchsucht: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] und [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x], wobei x, y und z die Major-, Minor- und Release-Versionen von PHP darstellen. Falls ein Wert für IniFilePath in einem dieser Schlüssel existiert, so wird der zuerst gefundene als Position der php.ini verwendet (nur unter Windows).
- [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] bzw. [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], Wert von IniFilePath (nur unter Windows).
- Aktuelles Arbeitsverzeichnis (außer CLI).
- Das Webserververzeichnis (für SAPI-Module) oder das PHP-Verzeichnis (andernfalls in Windows).
- Windows-Verzeichnis (C:\windows oder C:\winnt) (unter Windows) oder die --with-config-file-path-Kompilierungsoption.
Falls die Datei php-SAPI.ini existiert (wobei SAPI die verwendete SAPI ist, was als Dateinamen z.B. php-cli.ini oder php-apache.ini ergibt), wird diese anstelle der php.ini verwendet. Der Name der SAPI kann durch php_sapi_name() ermittelt werden.
Hinweis:
Der Apache-Webserver wechselt beim Start das Arbeitsverzeichnis in das Wurzelverzeichnis, weshalb PHP versucht, die php.ini aus dem Wurzelverzeichnis zu lesen, wenn diese existiert.
Wie untenstehend gezeigt, können Umgebungsvariablen in php.ini verwendet werden.
Beispiel #1 php.ini Umgebungsvariablen
; PHP_MEMORY_LIMIT ist der Name einer Umgebungsvariablen memory_limit = ${PHP_MEMORY_LIMIT}
Die Optionen der php.ini für Extensions werden auf den Handbuchseiten der jeweiligen Extensions behandelt. Die Beschreibung der php.ini-Direktiven des Sprachkerns ist im Anhang verfügbar. Es werden jedoch möglicherweise nicht alle PHP-Direktiven im Handbuch erläutert. Für eine komplette Liste der in Ihrer PHP-Version verfügbaren Einstellungen lesen Sie bitte die gut kommentierte php.ini. Möglicherweise kann die » aktuellste php.ini aus dem Git-Repository ebenfalls hilfreich sein.
Beispiel #2 php.ini-Beispiel
; Jeder Text in einer Zeile nach einem Semikolon, welches nicht ; in Anführungszeichen steht, wird ignoriert [php] ; Abschnittsmarkierungen (Text in eckigen Klammern) werden ebenfalls ignoriert ; Boolesche Werte können auf einen der folgenden Werte eingestellt werden: ; true, on, yes ; oder false, off, no, none register_globals = off track_errors = yes ; Sie können Zeichenketten in Anführungszeichen einschließen include_path = ".:/usr/local/lib/php" ; Backslashes werden wie alle anderen Zeichen behandelt include_path = ".;c:\php\lib"
Seit PHP 5.1.0 ist es möglich, sich auf bereits definierte .ini-Variablen innerhalb der .ini-Dateien zu beziehen. Zum Beispiel: open_basedir = ${open_basedir}":/new/dir".
Scan-Verzeichnisse
Es ist möglich, PHP so zu konfigurieren, dass nach .ini Dateien in einem Verzeichnis gesucht wird, nachdem php.ini gelesen wurde. Dies kann zur Kompilierzeit durch Setzen der --with-config-file-scan-dir Option erfolgen. In PHP 5.2.0 und neuer kann das Scan-Verzeichnis zur Laufzeit übersteuert werden, indem die Umgebungsvariable PHP_INI_SCAN_DIR gesetzt wird.
Es ist möglich, mehrere Verzeichnisse anzugeben, indem sie mit dem Plattform
spezifischen Pfadtrenner (; unter Windows, NetWare und
RISC OS; : auf allen anderen Plattformen; der Wert, den
PHP verwendet, is als PATH_SEPARATOR
verfügbar).
Wird ein leeres Verzeichnis in PHP_INI_SCAN_DIR angegeben,
dann wird PHP ebenfalls das zur Kompilierzeit mit
--with-config-file-scan-dir
angegebene
Verzeichnis durchsuchen.
In jedem Verzeichnis wird PHP alle Dateien mit der Erweiterung .ini in alphabetischer Reihenfolge lesen. Eine gemäß der Reihenfolge geordnete Liste der geladenen Dateien ist durch Aufruf von php_ini_scanned_files() verfügbar, oder indem PHP mit der --ini Option ausgeführt wird.
Wir nehmen an, dass PHP mit --with-config-file-scan-dir=/etc/php.d kompiliert wurde, und dass der Pfadtrenner : ist... $ php PHP wird alle Dateien in /etc/php.d/*.ini als Konfigurationsdateien laden. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php PHP wird alle Dateien in /usr/local/etc/php.d/*.ini als Konfigurationsdateien laden. $ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php PHP wird alle Dateien in /etc/php.d/*.ini, und dann /usr/local/etc/php.d/*.ini als Konfigurationsdateien laden. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php PHP wird alle Dateien in /usr/local/etc/php.d/*.ini, und dann /etc/php.d/*.ini als Konfigurationsdateien laden.
Changelog
Version | Beschreibung |
---|---|
7.0.0 | Rautensymbole (#) werden nicht mehr als Kommentare erkannt. |
5.3.0 | Rautensymbole (#) sollten nicht mehr als Kommentare verwendet werden, und lösen eine Missbilligungswarnung aus, falls doch verwendet. |
5.2.0 | Die Umgebungsvariable PHP_INI_SCAN_DIR kann verwendet werden, um die Scan-Verzeichnisse zu übersteueren, die zur Kompilierzeit festgelegt wurden. |
5.1.0 | Es ist möglich, sich innerhalb von .ini Dateien auf bestehende .ini Variablen zu beziehen. |
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-configuration.file.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.