Wie Sie Konfigurations-Einstellungen ändern können

PHP als Apache-Modul laufen lassen

Wenn Sie PHP in der Modul-Variante benutzen, können Sie die Konfigurationseinstellungen auch mittels der Apache-Konfigurationsdatei (z.B. httpd.conf) bzw. mittels .htaccess-Dateien ändern. Sie benötigen dazu die Berechtigungen "AllowOverride Options" oder "AllowOverride All".

Mit PHP 4 und PHP 5 gibt es mehrere Apache-Optionen, die es Ihnen ermöglichen, die PHP Konfiguration aus den Apache-Konfigurationsdateien heraus zu ändern. Für eine Liste, welche Optionen PHP_INI_ALL, PHP_INI_PERDIR oder PHP_INI_SYSTEM sind, schauen Sie bitte in die Tabelle, die Sie in der Dokumentation zu ini_set() finden.

Anmerkung: Seit PHP 3 existieren Apache-Anweisungen, die mit jeder Konfigurationseinstellung der php3.ini korrespondieren. Die entsprechenden Namen müssen Sie allerdings mit dem Präfix "php3_" notieren.

php_value name value

Setzt den Wert der spezifizierten Option. Kann nur mit Optionen vom Typ PHP_INI_ALL und PHP_INI_PERDIR benutzt werden. Um einen zuvor gesetzten Wert zurückzusetzen, benutzen Sie none als Wert.

php_value auto_prepend_file none

php_flag name on|off

Setzt eine boolesche Option. Kann nur mit Optionen vom Typ PHP_INI_ALL und PHP_INI_PERDIR benutzt werden.

php_admin_value name value

Setzt den Wert der spezifizierten Option. Kann nicht in .htaccess-Dateien benutzt werden. Jeder Options vom Typ php_admin_value kann nicht durch .htaccess-Dateien oder Virtual-Host-Optionen überschrieben werden. Um einen zuvor gesetzten Wert zurückzusetzen, benutzen Sie none als Wert.

php_admin_value open_basedir none

php_admin_flag name on|off

Setzt eine boolesche Option. Kann nicht in .htaccess-Dateien benutzt werden. Jeder Options vom Typ php_admin_flag kann nicht durch .htaccess-Dateien oder Virtual-Host-Optionen überschrieben werden.

Beispiel 4-2. Apache-Konfigurations-Beispiel

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Anmerkung: PHP-Konstanten existieren nicht außerhalb von PHP. So können Sie z.B. in der httpd.conf keine PHP-Konstanten wie E_ALL oder E_NOTICE benutzen, um die Option error_reporting zu setzen, da ihr Wert dort unbekannt ist und zu 0 ausgewertet würde. Benutzen Sie stattdessen die zugeordneten Bitwerte, diese Konstanten können in der php.ini benutzt werden.

Andere Schnittstellen zu PHP

Unabhänging von der Schnittstelle zu PHP können Sie einige Werte während der Laufzeit Ihrer Skript über die ini_set()-Funktion setzen. Die folgende Tabelle gibt Ihnen einen Überblick, auf welcher Stufe eine Option gesetzt oder geändert werden kann.

Tabelle 4-1. Definition der PHP_INI_*-Konstanten

KonstanteWertBedeutung
PHP_INI_USER1Option kann in Benutzer-Skripten gesetzt werden
PHP_INI_PERDIR2 Option kann in der php.ini, .htaccess oder httpd.conf gesetzt werden
PHP_INI_SYSTEM4 Option kann in der php.ini oder httpd.conf gesetzt werden
PHP_INI_ALL7Option kann überall gesetzt werden

Die Konfigurationseinstellungen können Sie in der Ausgabe der phpinfo()-Funktion einsehen. Außerdem können Sie Zugang zu den individuellen Konfigurationseinstellungen über ini_get() oder get_cfg_var() bekommen.