Wenn man PHP als Apachemodul verwendet, kann man die Konfigurationseinstellungen mittels Direktiven in den Apache-Konfigurationsdateien (z. B. httpd.conf) und .htaccess-Dateien ändern. Dafür benötigt man "AllowOverride Options"- oder "AllowOverride All"-Privilegien.
Es gibt verschiedene Apachedirektiven, die es erlauben, die PHP-Konfiguration aus den Apache-Konfigurationsdateien heraus zu ändern. Für eine Liste von Direktiven, die als INI_ALL
, INI_PERDIR
, oder INI_SYSTEM
definiert sind, werfen Sie einen Blick auf den Anhang Liste von php.ini Einstellungen.
php_value
Name
Wert
Setzt den Wert der angegebenen Direktive. Kann nur für Direktiven mit den Typen INI_ALL
und INI_PERDIR
verwendet werden. Um einen vorher gesetzten Wert zu löschen, verwenden Sie none
als Wert.
Hinweis: Verwenden Sie
php_value
nicht, um boolesche Werte zu setzen.php_flag
(siehe unten) sollte stattdessen verwendet werden.
php_flag
Name
on|off
Setzt eine boolesche Konfigurationsdirektive. Kann nur für Direktiven mit den Typen INI_ALL
und INI_PERDIR
verwendet werden.
php_admin_value
Name
Wert
Setzt den Wert der angegebenen Direktive. Dies kann nicht in .htaccess-Dateien verwendet werden. Jeder Direktiventyp, der mit php_admin_value
gesetzt wird, kann nicht durch .htaccess-Direktiven oder mit ini_set() überschrieben werden. Um einen vorher gesetzten Wert zu löschen, verwenden Sie none
als Wert.
php_admin_flag
Name
on|off
Setzt eine boolesche Konfigurationsdirektive. Dies kann nicht in .htaccess-Dateien verwendet werden. Jeder Direktiventyp, der mit php_admin_value
gesetzt wird, kann nicht durch .htaccess-Direktiven oder ini_set() überschrieben werden.
Beispiel #1 Apache-Konfigurationsbeispiel
<IfModule mod_php5.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on </IfModule> <IfModule mod_php4.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on </IfModule>
PHP-Konstanten existieren nicht außerhalb von PHP. So kann man z. B. in der httpd.conf nicht PHP-Konstanten wie E_ALL
oder E_NOTICE
verwenden, um den Wert der error_reporting-Direktive zu ändern, da diese keine Bedeutung haben und als 0 ausgewertet werden. Verwenden Sie stattdessen die zugehörigen Bitmasken-Werte direkt. Diese Konstanten können in der php.ini verwendet werden.
Wenn Sie PHP unter Windows einsetzen, können Sie die Konfigurationseinstellungen für jedes einzelne Verzeichnis mit der Windows-Registry anpassen. Die Werte der Konfiguration werden unterhalb des Registrierungsschlüssels HKLM\SOFTWARE\PHP\Per Directory Values
in den zum Verzeichnisnamen passenden Unterschlüssel gespeichert.Zum Beispiel würden Werte für das Verzeichnis c:\inetpub\wwwroot
im Registrierungsschlüssel HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot
gespeichert werden. Die Einstellungen für dieses Verzeichnis wären für alle Skripte aktiv, die in diesem Verzeichnis oder einem seiner Unterverzeichnisse laufen. Die Werte in diesem Schlüssel sollten den Namen eine PHP- Konfigurationsdirektive und einen Zeichenkettenwert haben. Konstenten in den Werten werden nicht ausgewertet. Es können jedoch nur Werte, die in INI_USER
änderbar sind, auf diese Weise gesetzt werden, nicht als INI_PERDIR
deklarierte Werte, da diese Konfigurationswerte für jeden Request erneut gelesen werden.
Egal wie Sie PHP betreiben, Sie können bestimmte Werte zur Laufzeit Ihrer Skripte mittels ini_set() setzen. Werfen Sie dazu einen Blick auf die Dokumentation von ini_set().
Wenn Sie an einer kompletten Liste von Konfigurationseinstellungen Ihres Systems inklusive deren aktuellen Werten interessiert sind, können Sie die Funktion phpinfo() ausführen und die daraus resultierende Seite betrachten. Sie können auf die Werte einzelner Konfigurationsdirektiven zur Laufzeit mittels ini_get() oder get_cfg_var() zugreifen.