Kapitel 4. Konfiguration

Inhaltsverzeichnis
Die Konfigurationsdatei

Die Konfigurationsdatei

Die Konfigurationsdatei (php3.ini in PHP 3.0.x, und php.ini in PHP 4.0) wird geladen, wenn PHP gestartet wird. Wurde PHP als Modul in den Webserver einkompiliert, dann geschieht dies nur, wenn der Server gestartet wird. Ist PHP als CGI-Version konfiguriert worden, geschieht es bei jedem Aufruf.

Wenn Sie PHP in der Modul-Variante benutzen, können Sie die Konfigurationseinstellungen auch mittels der Apache-Konfigurations- datei bzw. mittels .htaccess-Dateien ändern.

Bei PHP 3.0.x existieren Apache-Anweisungen, die mit jeder Konfigurationseinstellung der php3.ini korrespondieren, ausgenommen Einstellungen mit dem Prefix "php3_".

Bei PHP 4.0 gibt es nur noch wenige Apache-Anweisungen, die es Ihnen erlauben, die Konfigurationseinstellungen zu ändern.

php_value name value

Dieses setzt den Wert der spezifizierten Variablen.

php_flag name on|off

Dieser Schalter wird benutzt, um die Boolean-Konfigurations- Option zu aktivieren.

php_admin_value name value

Dieser Wert setzt den Wert der spezifischen Variablen. "Admin"-Konfigurationseinstellungen können nur innerhalb der Haupt-Konfigurationsdatei des Apache gesetzt werden, nicht etwa über eine .htaccess Datei.

php_admin_flag name on|off

Dieser Schalter wird benutzt, um die Boolean-Konfigurations-Option zu aktivieren. ("Admin")

Die Konfigurationseinstellungen können Sie in der Ausgabe der phpinfo() Datei einsehen. Ebenfalls können Sie Zugang zu den individuellen Konfigurationseinstellungen über get_cfg_var() bekommen.

Allgemeine Konfigurationseinstellungen

asp_tags boolean

Dieser Schalter aktiviert die Unterstützung von ASP <% %> Tags als Erweiterung zu den üblichen <?php ?> Tags. Dieses beinhaltet auch die Kurzform der Variablenausgabe <%= $value %>. Weitere Informationen finden Sie hier: Escaping from HTML.

Anmerkung: Die Unterstützung für ASP-Tags wurde in Version 3.0.4 hinzugefügt.

auto_append_file string

Hier können Sie eine Datei angeben, die automatisch nach der Haupt-Datei aufgerufen wird. Die Datei wird in die aufgerufene Datei eingebettet, als wenn Sie sie mittels der include() Funktion eingebunden hätten, dabei wird ein gesetzter include_path beachtet.

Der Wert none deaktiviert auto-appending.

Anmerkung: Wird das Skript mit der Funktion exit()beendet, wird auto-append nicht aktiv.

auto_prepend_file string

Hier können Sie eine Datei angeben, die automatisch vor der Hauptdatei aufgerufen wird. Die Datei wird in die aufgerufene Datei eingebettet, als wenn Sie sie mittels der include() Funktion eingebunden hätten, dabei wird ein gesetzter include_path beachtet.

Der Wert none deaktiviert auto-prepending.

cgi_ext string

display_errors boolean

Dieser Wert muß "on" sein, damit Fehlermeldungen an die Konsole (Prompt oder Browser) gesendet werden können.

doc_root string

Hier wird das Stammverzeichnis der PHP-Skripte eingegeben. Üblicherweise handelt es sich hier um das DocumentRoot des Servers (Apache: htdocs) Diese Angabe wird nur benutzt, wenn sie einen Wert enthält. Wenn PHP mit safe mode konfiguriert wurde, werden alle PHP-Skripte außerhalb dieses Directorys ignoriert.

engine boolean

Diese Option ist in erster Linie nur sinnvoll, wenn PHP als Modul in den Apache einkompiliert wurde. Sie wird von Seiten benutzt, die den PHP-Parser für bestimmte Verzeichnisse oder virtuelle Server aus- bzw. einschalten wollen. Wenn Sie engine off in den dafür vorgesehenen Blöcken in der httpd.conf Datei benutzen, kann PHP aktiviert bzw. deaktiviert werden.

error_log string

Hier können Sie die Datei angeben, in der Skript-Fehler protokolliert werden sollen. Wenn Sie statt eines Dateinamens syslog eintragen, wird stattdessen das Ereignisprotokoll von WindowsNT genutzt. Auf UNIX Systemen syslog(3) verwendet. Windows 95/98 unterstützen dieses nicht.

error_reporting integer

Hier können Sie die Genauigkeit der Fehlermeldungen einstellen. Der eingetragene Wert ist ein Bitwert, und wird als Summe folgender Werte des Error Reporting Levels gebildet:

Tabelle 4-1. Error Reporting Levels

bit valueAktivierte Protokollierung
1Normale Fehler
2Normale Warnungen
4Fehler des Parsers, meistens Syntaxfehler
8Unkritische Warnungen, die ignoriert werden können. Sinnvoll in der Entwicklungsphase.
Standardwert ist hier 7 (normale Fehler, normale Warnungen, Fehler des Parsers werden angezeigt).

open_basedir string

Beschränkt die Dateien, die von PHP geöffnet werden können, auf Dateien im angegebenen Verzeichnisbaum.

Wenn ein Skript versucht, eine Datei mit z.B. fopen oder gzopen zu öffnen, wird der Ort der Datei überprüft. Wenn sich die Datei außerhalb des spezifizierten Verzeichnisses befindet, wird PHP sie nicht öffnen. Alle symbolischen Links sind hier mit eingeschlossen, so dass es auch nicht möglich ist, dieses Verbot mittels symlink zu umgehen.

Der Wert . gibt an, dass das Verzeichnis, in dem das Skript abgespeichert ist, als Basis-Verzeichnis genutzt wird.

Unter Windows werden Verzeichnisse mit Semikolon getrennt, unter allen anderen Betriebssystemen mit einem Doppelpunkt. Wenn PHP als Modul in den Apache einkompiliert wurde, werden open_basedir paths von "Eltern"-Verzeichnissen nun automatisch vererbt.

Anmerkung: Die Unterstützung für multiple Verzeichnisse wurde in Version 3.0.7 hinzugefügt.

Die Standardeinstellung ist, alle Dateien zum Parsen freizugeben.

gpc_order string

Legt die Auswertungsreihenfolge für GET/POST/COOKIE Variablen fest. Die Standardeinstellung ist GPC. Wenn Sie diesen Wert auf z.B."GP" setzen, ignoriert PHP Cookies, und wird jede GET Methoden Variable mit POST Methoden Variablen des gleichen Namens überschreiben.

ignore_user_abort string

Standardmäßig auf ON. Wenn Sie diese Einstellung auf OFF setzen, werden PHP-Skripte beendet, sobald sie versuchen, eine Ausgabe zu erzeugen, nachdem der Client die Verbindung beendet hat. ignore_user_abort().

include_path string

Hier können Sie ein Verzeichnis angeben, in dem die require(), include() und fopen_with_path() Funktionen nach Dateien suchen. Das Format ist ähnlich der PATH Umgebungsvariablen des jeweiligen Systems: Eine Liste von Verzeichnissen, getrennt durch einen Doppelpunkt bei UNIX oder ein Semikolon bei WINDOWS.

Beispiel 4-1. UNIX include_path

include_path=.:/home/httpd/php-lib

Beispiel 4-2. Windows include_path

include_path=".;c:\www\phplib"
Der Standardwert für diese Option ist . (nur das aktuelle Verzeichnis).

isapi_ext string

log_errors boolean

Dieser Schalter entscheidet, ob Skript-Fehler im Fehler-Logfile des Servers protokolliert werden sollen. Diese Option ist also Server-spezifisch.

magic_quotes_gpc boolean

Dieser Schalter setzt den magic_quotes-Zustand für GPC (GET/POST/COOKIE) -Operationen. Wenn magic_quotes auf ON steht, werden automatisch alle ' (single-quote), " (double quote), \ (backslash) und NUL's mit einem Backslash versehen. Wenn auch magic_quotes_sybase auf ON steht, wird ein single-quote mit einem weiteren single-quote anstatt eines Backslashs versehen.

magic_quotes_runtime boolean

Wenn der Schalter magic_quotes_runtimeaktiviert ist, werden Anführungszeichen der meisten Funktionen, welche Daten aus jeglicher Art von externer Quelle, eingeschlossen Datenbanken und Textdateien, zurückgeben, mit einem Backslash versehen. Wenn auch der Schalter magic_quotes_sybase aktiviert ist, wird ein einfaches Anführungszeichen mit einem einfachen Anführungszeichen anstatt eines Backslashes versehen.

magic_quotes_sybase boolean

Wenn der Schalter magic_quotes_sybasezusätzlich zu magic_quotes_gpc oder magic_quotes_runtime aktiviert ist, werden einfache Anführungszeichen mit einfachen Anführungszeichen anstatt eines Backslashs versehen.

max_execution_time integer

Dieser Wert gibt die maximale Ausführungslänge eines Skriptes in Sekunden an, bevor es vom Parser abgebrochen wird. Dieses soll Abstürzen des Servers durch schlecht geschriebene oder falsche Skripte vorbeugen. Bei komplexen Datenbankabfragen sollte man jedoch bedenken, dass der Standardwert unter Umständen zu klein sein kann.

memory_limit integer

Dieser Wert gibt den maximal erlaubten Speicherplatzverbrauch eines PHP-Skriptes an. Diese Einstellung soll den Server vor Speicherverschwendung durch schlecht programmierte Skripte bewahren.

nsapi_ext string

register_globals boolean

Dieser Schalter bestimmt, ob die EGPCS-Variablen (Environment, GET, POST, Cookie, Server) als globale Variablen registriert werden oder nicht. Sie sollten dies ausschalten, wenn der globale Bereich Ihrer Skripte nicht durch Benutzerdaten gestört werden soll. Diese Einstellung ist insbesondere dann sinnvoll, wenn sie mit track_vars verwendet wird. In diesem Fall kÖnnen alle EGPCS-Variablen durch $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS und $HTTP_SERVER_VARS angespochen werden.

short_open_tag boolean

Gibt an, ob die Kurzform (<? ?> eines öffnenden PHP-Tags erlaubt ist. Wenn Sie PHP in Kombination mit XML nutzen, müssen Sie diese Option deaktivieren. Wenn Sie die Option deaktiviert haben, müssen Sie die Langform des öffnenden Tags (<?php ?>)verwenden.

sql.safe_mode boolean

track_errors boolean

Wenn diese Option aktiviert ist, wird der letzte Fehler immer in der globalen Variablen $php_errormsg abgelegt.

track_vars boolean

Wenn dieser Schalter aktiviert ist, werden GET-, POST- und Cookie-Werte in den Umgebungsvariablen-Arrays $HTTP_GET_VARS, $HTTP_POST_VARS und $HTTP_COOKIE_VARS abgelegt.

upload_tmp_dir string

Hier wird das temporäre Verzeichnis angegeben, in welchem Dateien gespeichert werden, die mittels file upload auf den Server geladen werden. Dieses Verzeichnis muss schreibbar sein.

user_dir string

Wenn Sie PHP für User hosten, dann können persönliche Verzeichnisse der Art ~username angelegt werden. Der Wert user_dir zeigt auf das Stammverzeichnis, unter dem diese Nutzerverzeichnisse liegen. z.B. public_html.

warn_plus_overloading boolean

Wenn dieser Schalter aktiviert ist, gibt PHP eine Warnung aus, wenn der Plus-Operator (+) anstatt des Punkt-Operators (.) für die String-Verkettung benutzt wurde.

Mail-Konfigurationsdirektiven

SMTP string

Dieser Wert muss nur in der Windows-Umgebung gesetzt werden. Hier wird der DNS-Name oder die IP-Adresse des SMTP-Servers eingetragen, über den Mails mit der Funktion mail() verschickt werden sollen.

sendmail_from string

Hier können Sie den Absender der Emails eintragen, wenn Sie von Windows aus Emails verschicken wollen.

sendmail_path string

Hier geben Sie den Pfad zum sendmail Programm an. Für gewöhnlich ist dies /usr/sbin/sendmail oder /usr/lib/sendmail. configure versucht zwar den Pfad zum sendmail Programm selbstständig herauszufinden, aber für den Fall, dass dieses nicht funktioniert, können Sie den Pfad hier eintragen.

Auf Systemen, wo Sendmail nicht benutzt wird, sollten Sie diesen Pfad auf den Sendmail-Ersatz -wenn vorhanden- setzen. Zum Beispiel: Qmail-Benutzer können den Pfad normalerweise wie folgt setzen: /var/qmail/bin/sendmail.

Safe Mode-Konfigurationsdirektiven

safe_mode boolean

Wenn Sie diesen Schalter auf ON setzen, betreiben Sie PHP im sicheren Modus. Mehr dazu erfahren Sie im Kapitel Sicherheit

safe_mode_exec_dir string

Wenn Sie PHP im sicheren Modus betreiben, werden die Funktion system() und andere Funktionen, die Systemprogramme ausführen, nicht gestartet, wenn Sie sich nicht in diesem Verzeichnis befinden.

Debugger-Konfigurationsdirektiven

debugger.host string

DNS-Name oder IP-Adresse des Hosts, der vom Debugger benutzt wird.

debugger.port string

Portnummer, die vom Debugger benutzt wird.

debugger.enabled boolean

Hier können Sie den Debugger aktivieren bzw. deaktivieren.

Extension Loading-Direktiven

enable_dl boolean

Diese Option ist eigentlich nur sinnvoll, wenn Sie PHP als Apache-Modul benutzen. Dann können Sie das "Einladen" der dynamischen PHP-Extensionen mit der Funktion dl() für einzelne virtuelle Server oder Verzeichnisse aktivieren bzw. deaktivieren.

Der Hauptgrund, das dynamische Laden von Extensionen zu deaktivieren, ist Sicherheit. Wenn die Option aktiviert ist, ist es möglich, Restriktionen durch safe_mode und open_basedir zu umgehen.

Standardmäßig wird das dynamische Laden erlaubt, außer wenn Sie PHP im safe_mode betreiben. Im safe_mode ist es nie möglich, die Funktion dl() zu benutzen.

extension_dir string

Hier geben Sie das Verzeichnis an, in dem PHP dynamisch zu ladende Extensionen findet.

extension string

Hier geben Sie an, welche Extensionen geladen werden sollen, wenn PHP gestartet wird.

mSQL-Konfigurationsdirektiven

msql.allow_persistent boolean

Erlaubt persistente mSQL-Verbindungen.

msql.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter mSQL-Verbindungen pro Prozess an.

msql.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

PostgreSQL-Konfigurationsdirektiven

pgsql.allow_persistent boolean

Erlaubt persistente PostgreSQL-Verbindungen.

pgsql.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter PostgreSQL-Verbindungen pro Prozess an.

pgsql.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

SESAM Konfigurationsdirektiven

sesam_oml string

Name der BS2000 PLAM-Bibliothek, die die ladbaren SESAM Treibermodule enthält. Diese Direktive ist obligatorisch, anderenfalls wird die SESAM Funktionalität deaktiviert. SESAM functions. Die angegebene BS2000 PLAM-Bibliothek muss durch Setzen von ACCESS=READ,SHARE=YES lesbar gemacht werden, da unter der Apache Server User-Id auf sie zugegriffen wird.

sesam_configfile string

Name der SESAM Applikations-Konfigurationsdatei. Diese Direktive ist obligatorisch, anderenfalls wird die SESAM Funktionalität deaktiviert. Die angegebene BS2000-Datei muss für die Apache Server-Kennung lesbar sein.

Gewöhnlich enthält die Applikations-Konfigurationsdatei Konfigurationsbefehle wie (siehe SESAM Referenzhandbuch):

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

Name der SESAM Message-Katalogdatei. In den meisten Fällen ist die Angabe dieser Datei überflüssig; lediglich wenn die Message-Katalogdatei nicht in der BS2000 Messagedatei-Tabelle eingetragen ist, kann sie explizit mit dieser Direktive gesetzt werden.

Die angegebene BS2000 Message-Katalogdatei muss durch Setzen von ACCESS=READ,SHARE=YES lesbar gemacht werden, da unter der Apache Server User-Id auf sie zugegriffen wird.

Sybase-Konfigurationsdirektiven

sybase.allow_persistent boolean

Erlaubt persistente Sybase-Verbindungen.

sybase.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter Sybase-Verbindungen pro Prozess an.

sybase.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

Sybase-CT-Konfigurationsdirektiven

sybct.allow_persistent boolean

Erlaubt persistente Sybase-CT Verbindungen. Standardwert ist ON.

sybct.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter Sybase-Verbindungen pro Prozess an. Der Standardwert ist -1 (unbegrenzt).

sybct.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale). Standardwert ist -1 (unbegrenzt).

sybct.min_server_severity integer

Server-Meldungen mit höherem oder gleichem Gewicht als sybct.min_server_severity werden als Warnung ausgegeben. Dieser Wert kann auch in einem Skript mittels der sybase_min_server_severity() Funktion gesetzt werden. Standardwert ist 10, wodurch Fehler mit Informations-"Gewicht" oder höher ausgegeben werden.

sybct.min_client_severity integer

Meldungen der Client-Library mit höherem oder gleichem Gewicht als sybct.min_client_severity werden als Warnungen ausgegeben. Dieser Wert kann auch in einem Skript mit der Funktion sybase_min_client_severity() gesetzt werden. Der Standardwert ist hier 10, was eine Ausgabe im Endeffekt deaktiviert.

sybct.login_timeout integer

Hier können Sie die maximale Zeit in Sekunden angeben, die gewartet wird, bis eine Verbindung erfolgreich aufgebaut wurde (also bevor eine Fehlermeldung erscheint). Beachten Sie, dass wenn die max_execution_time für einen Verbindungsversuch vorbei ist, Ihr Skript beendet wird, bevor es eine Fehlermeldung (oder andere Aktion) ausgeben kann. Der Standardwert ist hier 1 Minute.

sybct.timeout integer

Hier können Sie die maximale Zeit in Sekunden angeben, die auf eine select_db oder andere DB-Query gewartet wird, bis eine Fehlermeldung erscheint. Beachten Sie, dass wenn die max_execution_time für eine DB-Query vorbei ist, Ihr Skript beendet wird, bevor es eine Fehlermeldung (oder andere Aktion) ausgeben kann. Der Standardwert ist hier unbegrenzt.

sybct.hostname string

Hier können Sie den Host angeben, von dem die Verbindung ausgehen soll. Sie können diesen Wert mit sp_who anzeigen. Standardwert ist none.

Informix-Konfigurationsdirektiven

ifx.allow_persistent boolean

Erlaubt persistente Informix-Verbindungen.

ifx.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter Informix-Verbindungen pro Prozess an.

ifx.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

ifx.default_host string

Hier geben Sie den Standardhost für eine Verbindung ein, der benutzt wird, wenn kein anderer Host in ifx_connect() oder ifx_pconnect() angegeben wurde.

ifx.default_user string

Hier geben Sie den Standardbenutzer für eine Verbindung ein, der benutzt wird, wenn kein anderer Benutzer in ifx_connect() oder ifx_pconnect() angegeben wurde.

ifx.default_password string

Hier geben Sie das Standardpasswort für eine Verbindung ein, das benutzt wird, wenn kein anderes Passwort in ifx_connect() oder ifx_pconnect() angegeben wurde.

ifx.blobinfile boolean

Setzen Sie diesen Wert auf TRUE, wenn Sie BLOB-Felder in einer Datei zurückgegeben haben wollen, auf FALSE, wenn Sie sie im Speicher haben wollen. Diesen Eintrag können Sie mit ifx_blobinfile_mode() während der Ausführung überschreiben.

ifx.textasvarchar boolean

Setzen Sie diesen Wert auf TRUE, wenn Sie TEXT-Felder als normale Strings in SELECT-Anweisungen zurückgegeben haben wollen, auf FALSE, wenn Sie sie BLOB-ID Parameter benutzen wollen. Diesen Eintrag können Sie mit ifx_textasvarchar() während der Ausführung überschreiben.

ifx.byteasvarchar boolean

Setzen Sie diesen Wert auf TRUE, wenn Sie BYTE-Felder in SELECT-Abfragen als normale Strings zurückgeliefert haben wollen, auf FALSE, wenn Sie BLOB-ID Parameter benutzen wollen. Diesen Eintrag können Sie mit ifx_textasvarchar() während der Ausführung überschreiben.

ifx.charasvarchar boolean

Setzen Sie diesen Wert auf TRUE, wenn Sie nachfolgende Spaces von CHAR-Feldern bei der Abfrage abschneiden wollen.

ifx.nullformat boolean

Setzen Sie diesen Wert auf TRUE, wenn Sie NULL-Felder als String "NULL", bzw. auf FALSE, wenn Sie diese als leeren String "" zurückgeliefert haben wollen. Sie können diesen Wert während der Ausführung mit der Funktion ifx_nullformat() überschreiben.

BC Math-Konfigurationsdirektiven

bcmath.scale integer

Anzahl der Nachkommastellen der bcmath-Funktionen.

Browser Capability-Konfigurationsdirektiven

browscap string

Name der browser_capabilities-Datei. Mehr hierüber erfahren Sie unter get_browser().

Unified ODBC-Konfigurationsdirektiven

uodbc.default_db string

ODBC Standarddatenquelle, die benutzt wird, wenn keine andere in odbc_connect() oder odbc_pconnect() angegeben wurde.

uodbc.default_user string

ODBC Standard-Benutzername, der benutzt wird, wenn kein anderer Benutzer in odbc_connect() oder odbc_pconnect() definiert wurde.

uodbc.default_pw string

ODBC Standardpasswort, das benutzt wird, wenn kein anderes Passwort in odbc_connect() oder odbc_pconnect() angegeben wurde.

uodbc.allow_persistent boolean

Erlaubt persistente ODBC-Verbindungen.

uodbc.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter ODBC-Verbindungen pro Prozess an.

uodbc.max_links integer

Hier geben Sie die maximal erlaubte Anzahl der ODBC-Verbindungen pro Prozess an (persistente und normale).