PHP Handbuch
Zurück |  | Nach vorne

# Kapitel 4. Konfiguration

# 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

`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.

`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

`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_runtime`aktiviert 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.

`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_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`.

## 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.

## Browser Capability-Konfigurationsdirektiven

`browscap` string

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

Zurück | Zum Anfang | Nach vorne
Problems? | Nach oben | Sicherheit