PHP Handbuch
Zurück | Kapitel 4. Konfiguration | Nach vorne

# Allgemeine Konfigurationseinstellungen

Dies ist keine vollständige Liste der PHP-Direktiven. Weitere Optionen werden an den passenden Stellen im Handbuch genannt, so finden Sie z.B. Informationen zu den Session-Optionen im Sessions-Kapitel.

## Httpd-Optionen

Tabelle 4-2. Httpd-Optionen

Name | Standard | änderbar
--- | --- | ---
async_send | "0" | PHP_INI_ALL

## Sprach-Optionen

Tabelle 4-3. Sprach- und allgemeine Konfigurations-Optionen

Name | Standard | änderbar
--- | --- | ---
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR
precision | "14" | PHP_INI_ALL
y2k_compliance | Off | PHP_INI_ALL
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
expose_php | On | PHP_INI_SYSTEM

Hier eine kurze Erklärung der Konfigurationsoptionen:

`short_open_tag` boolean

  Bestimmt, ob die Kurzform (`<? ?>`) des PHP-Öffnungs-Tags erlaubt werden soll. Wenn Sie PHP in Kombination mit XML benutzen wollen, dann deaktivieren Sie diese Option, um `<?xml ?>` nutzen zu können. Anderenfalls können Sie das Tag mit PHP ausgeben, z.B. `<?php echo '<?xml version="1.0"'; ?>`. Wenn diese Option deaktiviert ist, müssen Sie die Langform des PHP-Öffnungs-Tags (`<?php ?>`) benutzen.

  > Anmerkung: Diese Option betrifft auch die Kurzform `<?=`, die zu `<? echo` identisch ist. Um diese Kurzform nutzen zuu können, short_open_tag auf on gesetzt sein.

`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: Den HTML-Bereich der Datei verlassen.

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

`precision` integer

  Die Anzahl der positiven Ziffern, die in Fließkommazahlen dargestellt werden.

`y2k_compliance` boolean

  Aktivieren der Jahr 2000-Kompatibilität (erzeugt eventuell Probleme mit nicht-kompatiblen Browsern).

`allow_call_time_pass_reference` boolean

  Bestimmt, ob die Möglichkeit aktiviert wird, einer Funktion Argumente als Referenz-Parameter zu übergeben. Diese Methode wird nicht nicht empfohlen und wird möglicherweise in späteren Version von PHP/Zend nicht mehr unterstützt. Die empfohlene Methode, anzugeben, welche Argumente per Referenz übergeben werden sollen, ist in der Funktionsdeklaration. Wir empfehlen Ihnen, diese Option versuchsweise auf Off zu setzen und dann zu prüfen, ob Ihre Skripte noch korrekt laufen, um sicherzustellen, dass sie auch mit künftigen Versionen von PHP noch laufen (sie bekommen ein "Warning", wenn Sie diese Funktion trotzdem benutzen, außerdem wird das Argument als Wert- statt als Referenz-Parameter übergeben.)

  Siehe auch Referenzen in PHP.

`expose_php` boolean

  Bestimmt, ob PHP die Tatsache, dass es auf dem Server installiert ist, bekannt geben darf (z.B. durch Hinzufügen seiner Signatur zum Header des Webservers). Die Sicherheit wird hierdurch nicht beeinträchtigt, aber es kann bestimmt werden, ob PHP auf Ihrem Server läuft oder nicht.

## Ressourcen-Grenze

Tabelle 4-4. Ressourcen-Grenze

Name | Standard | änderbar
--- | --- | ---
memory_limit | "8M" | PHP_INI_ALL

Hier eine kurze Erklärung der Konfigurationsoptionen:

`memory_limit` integer

  Setzt den Maximalwert des Speichers in Byte, den ein Skript verbrauchen darf. Damit können schlecht geschriebene Skripte verhindert werden, die den gesamten verfügbaren Speicher eines Servers "auffressen". Um diese Option nutzen zu können, muss Sie während des Kompilierens aktiviert werden. D.h., dass Ihr Konfigurations-Zeile folgendes enthalten muss: `--enable-memory-limit`. Bachten Sie, dass Sie den Wert auf -1 setzen müssen, wenn Sie kein Speicherlimit wünschen.

Siehe auch: max_execution_time.

## Verarbeitung von Daten

Tabelle 4-5. Konfigurations-Optionen für die Verarbeitung von Daten

Name | Standard | änderbar
--- | --- | ---
track-vars | "On" | PHP_INI_??
arg_separator.output | "&" | PHP_INI_ALL
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR
variables_order | "EGPCS" | PHP_INI_ALL
register_globals | "Off" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
register_long_arrays | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR
gpc_order | "GPC" | PHP_INI_ALL
auto_prepend_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR
default_mimetype | "text/html" | PHP_INI_ALL
default_charset | "iso-8859-1" | PHP_INI_ALL
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR
allow_webdav_methods | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR

Hier eine kurze Erklärung der Konfigurationsoptionen:

`track_vars` boolean

  Wenn diese Option aktiviert ist, sind Umgebungs-, GET-, POST-, Cookie- und Server-Variablen in den globalen assoziativen Arrays `$_ENV`, `$_GET`, `$_POST`, `$_COOKIE` und `$_SERVER` verfübar.

  Beachten Sie, dass seit PHP 4.0.3, track_vars immer den Wert on hat.

`arg_separator.output` string

  Das Trennzeichen, dass in von PHP generierten URLs benutzt wird, um Argumente abzutrennen.

`arg_separator.input` string

  Liste der Trennzeichen, die von PHP beim Parsen von URLs zu Variablen benutzt werden.

  > Anmerkung: Jeder Buchstabe in dieser Option wird als Trennzeichen interpretiert!

`variables_order` string

  Gibt die Reihenfolge der EGPCS-Variablen (Environment/Umgebung, GET, POST, Cookie, Server) beim Parsen an. Der Standardwert ist "EGPCS". Setzen Sie z.B. diese Option auf "GP", so wird PHP alle Umgebungs-, Cookie- und Server-Variablen ignorieren, außerdem werden alle GET-Variablen mit POST-Variablen überschrieben, wenn sie den gleichen Namen haben.

  Siehe auch register_globals.

`register_globals` boolean

  Dieser Schalter bestimmt, ob die EGPCS-Variablen (Environment/Umgebung, GET, POST, Cookie, Server) als globale Variablen registriert werden oder nicht. Zum Beispiel erzeugt die URL `http://www.example.com/test.php?id=3` die Variable `$id`, wenn register_globals = on. Außerdem wäre `$DOCUMENT_ROOT` aus `$_SERVER['DOCUMENT_ROOT']` verfügbar. Sie sollten dies ausschalten, wenn der globale Bereich Ihrer Skripte nicht durch Benutzerdaten gestört werden soll. Wir empfehlen Ihnen, sich stattdessen die vordefinierten Variablen von PHP anzusehen, wie z.B. die folgenden superglobalen Arrays: `$_ENV`, `$_GET`, `$_POST`, `$_COOKIE` und `$_SERVER`. Bitte lesen Sie auch das Sicherheits-Kapitel über die Benutzung von register_globals für weitere Informationen.

  Bitte beachten Sie, dass register_globals nicht während der Laufzeit Ihrer Skripte gesetzt werden kann (ini_set()). Wenn Ihr Server es erlaubt, können Sie aber `.htaccess` wie oben beschrieben verwenden. Beispiel: `php_flag register_globals on`.

  > Anmerkung: register_globals wird durch die Option variables_order beeinträchtigt.

`register_argc_argv` boolean

  Bestimmt, ob die argv- & argc-Variablen deklariert werden sollen (betrifft die GET-Informationen).

  Siehe auch Kommandozeile. Diese Option ist seit PHP 4.0.0 verfügbar, vorher war sie immer "on".

`register_long_arrays` boolean

  Bestimmt, ob PHP die nicht mehr empfohlenen langen Varianten (`$HTTP_*_VARS`) der vordefinierten Variablen registrieren soll. Wenn "on" (Standardwert), dann werden PHP-Variablen wie `$HTTP_GET_VARS` definiert. Wenn Sie diese nicht nutzen, empfehlen wir Ihnen, diese Option aus Performance-Gründen auf "off" zu setzen. Benutzen Sie stattdessen die superglobalen Arrays wie `$_GET`.

  Diese Option ist seit PHP 5.0.0 verfügbar.

`post_max_size` integer

  Setzt die maximal erlaubte Größe von POST-Daten. Diese Option betrifft auch den Datei-Upload. Um größere Dateien hochzuladen, muss der Wert größer sein als upload_max_filesize.

  Wenn eine maximale Speichergrenze während des Kompilierens aktiviert wurde, dann betrifft auch memory_limit den Datei-Upload. Allgemein sollte memory_limit nicht größer als `post_max_size` sein.

`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, dann ignoriert PHP Cookies, und wird jede GET-Variable mit POST-Variablen des gleichen Namens überschreiben.

  > Anmerkung: Diese Option ist in PHP 4 nicht verfügbar. Benutzen Sie stattdessen variables_order.

`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 spezielle Wert none deaktiviert Auto-Prepending.

`auto_append_file` string

  Hier können Sie eine Datei angeben, die automatisch nach 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 spezielle Wert none deaktiviert Auto-Appending.

  > Anmerkung: Wird das Skript mit der Funktion exit() beendet, dann wird Auto-Appending nicht aktiv.

`default_mimetype` string

`default_charset` string

  Seit Version 4.0b4 gibt PHP standardmäßig immer eine Zeichen-Kodierung im "Content-type:"-Header aus. Um dies zu verhindern, lassen Sie diese Option leer.

`always_populate_raw_post_data` boolean

  Bestimmt, ob die Variable $HTTP_RAW_POST_DATA gefüllt werden soll.

`allow_webdav_methods` boolean

  Bestimmt, ob WebDAV-HTTP-Requests in PHP-Skripten erlaubt sein soll (z.B. PROPFIND, PROPPATCH, MOVE, COPY etc.). Wenn Sie die POST-Daten solcher Requests erhalten müssen, dann müssen Sie auch always_populate_raw_post_data aktivieren.

Siehe auch magic_quotes_gpc, magic-quotes-runtime und magic_quotes_sybase.

## Pfade und Verzeichnisse

Tabelle 4-6. Konfigurations-Optionen für Pfade und Verzeichnisse

Name | Standard | änderbar
--- | --- | ---
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
cgi.force_redirect | "1" | PHP_INI_SYSTEM
cgi.redirect_status_env | "" | PHP_INI_SYSTEM
fastcgi.impersonate | "0" | PHP_INI_SYSTEM
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM

Hier eine kurze Erklärung der Konfigurationsoptionen:

`include_path` string

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

  Beispiel 4-3. include_path unter UNIX
      include_path=".:/php/includes"

  Beispiel 4-4. include_path unter Windows
      include_path=".;c:\php\includes"

  Ein `.` in dieser Option ermöglicht, Dateien relativ zum aktuellen Verzeichnis einzubinden.

`doc_root` string

  Hier wird das Stammverzeichnis der PHP-Skripte angegeben. Diese Option wird nur benutzt, wenn ein Wert angegeben wird. Wenn PHP mit safe mode konfiguriert wurde, werden alle Dateien außerhalb dieses Verzeichnisses ignoriert. Wenn PHP nicht mit FORCE_REDIRECT kompiliert wurde, sollten Sie doc_root setzen, wenn Sie PHP als CGI-Version (betrifft alle Webserver außer IIS) laufen lassen. Die Alternative ist, die Option cgi.force_redirect zu benutzen.

`user_dir` string

  Der Basisname des Verzeichnisses, das für Benutzer-Verzeichnisse mit `PHP`-Dateien benutzt wird, z.B. `public_html`.

`extension_dir` string

  Verzeichnis, in dem PHP dynamisch zu ladende Extensionen findet. Siehe auch enable_dl und dl().

`extension` string

  Dynamisch zu ladende Extensionen, die geladen werden sollen, wenn PHP gestartet wird.

`cgi.force_redirect` boolean

  cgi.force_redirect wird benötigt, um Sicherheit zu garantieren, wenn PHP als CGI-Version unter den meisten Webservern läuft. Wenn diese Option nicht angegeben wird, setzt PHP sie standardmäßig auf on. Auf Ihre eigene Gefahr hin können Sie dies ausschalten ("off").

  > Anmerkung: Windows-Benutzer: Sie können diese Option gefahrlos ausschalten, wenn Sie den IIS benutzen. Genauer: Sie müssen dies sogar tun. Für OmniHTTPD or Xitami gilt das gleiche.

`cgi.redirect_status_env` string

  Wenn cgi.force_redirect eingeschaltet ist und Sie nicht den Apache- oder Netscape-Webserver (iPlanet) benutzen, müssen Sie eventuell eine Umgebungsvariable setzen, damit PHP weiß, ob es die Ausführung fortführen darf.

  > Anmerkung: Das Setzen dieser Variablen kann Sicherheitsrisiken verursachen, Sie sollten also wissen, was Sie tun.

`fastcgi.impersonate` string

  FastCGI unter IIS (auf WINNT-basierten Betriebssystemen) unterstützt die Möglichkeit, Sicherheitsmerkmale des aufrufenden Clients zu bestimmen. Dies ermöglicht es IIS, den Sicherheitskontext zu bestimmen, in dem der Zugriff läuft. mod_fastcgi unter Apache unterstützt zur Zeit diese Funktion nicht (17.03.2002). Setzen Sie diese Option auf 1, wenn Sie IIS benutzen. Der Standardwert ist 0.

`cgi.rfc2616_headers` int

  Bestimmt, welcher Typ von Headern benutzt werden soll, wenn HTTP-Antwort-Codes gesendet werden. Wenn diese Option auf 0 gesetzt ist, sendet PHP einen "Status:"-Header, der von Apache und anderen Webservern unterstützt wird. Ist sie auf 1 gesetzt, sendet PHP einen zu RFC 2616 konformen Header. Wenn Sie dies nicht verstehen, lassen Sie den Wert auf 0.

## Datei-Uploads

Tabelle 4-7. Konfigurations-Optionen für Datei-Uploads

Name | Standard | änderbar
--- | --- | ---
file_uploads | "1" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR

Hier eine kurze Erklärung der Konfigurationsoptionen:

`file_uploads` boolean

  Bestimmt, ob Datei-Uploads per HTTP erlaubt sind. Siehe auch die Optionen upload_max_filesize, upload_tmp_dir und post_max_size.

`upload_tmp_dir` string

  Temporäres Verzeichnis, in dem Dateien während des Uploads gespeichert werden. Für dieses Verzeichnis muss der Benutzer, unter dem `PHP` läuft, Schreibberechtigung haben. Wenn hier nichts angeben wird, benutzt PHP das Standardverzeichnis für temporäre Dateien auf Ihrem System.

`upload_max_filesize` integer

  Maximale Größe, die eine hochgeladene Datei haben darf.

## Allgemeines SQL

Tabelle 4-8. Konfigurations-Optionen für allgemeines SQL

Name | Standard | änderbar
--- | --- | ---
sql.safe_mode | "0" | PHP_INI_SYSTEM

Hier eine kurze Erklärung der Konfigurationsoptionen:

`sql.safe_mode` boolean

## Konfigurations-Optionen für Debugger

Achtung
Nur PHP 3 hat einen standardmäßigen Debugger implementiert. Für weitere Informationen siehe Anhang E.

`debugger.host` string

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

`debugger.port` string

  Portnummer, die vom Debugger benutzt wird.

`debugger.enabled` boolean

  Bestimmt, ob der Debugger aktiviert ist.

Zurück | Zum Anfang | Nach vorne
Wie Sie die Konfigurations-Einstellungen ändern können | Nach oben | Sprachreferenz