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
PHP_INI_ALL
, PHP_INI_PERDIR
,
oder PHP_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 PHP_INI_ALL
und PHP_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 PHP_INI_ALL
und PHP_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 PHP_INI_USER
änderbar sind,
auf diese Weise gesetzt werden, nicht als
PHP_INI_PERDIR
deklarierte Werte.
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.