Performance Tuning
Pfade und Verzeichnisse
php.ini Einstellungen
PHP Manual

## Verarbeitung von Daten

Konfigurations-Optionen für die Verarbeitung von Daten
Name | Default | Änderbar | Änderungen
--- | --- | --- | ---
track_vars | "On" | PHP_INI_?? |
arg_separator.output | "&" | PHP_INI_ALL | Verfügbar seit PHP 4.0.5.
arg_separator.input | "&" | PHP_INI_PERDIR | Verfügbar seit PHP 4.0.5.
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 5.0.5.
auto_globals_jit | "1" | PHP_INI_PERDIR | Verfügbar seit PHP 5.0.0.
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3.
register_long_arrays | "1" | PHP_INI_PERDIR | Verfügbar seit PHP 5.0.0.
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM in PHP <= 4.2.3. Verfügbar seit PHP 4.0.3.
gpc_order | "GPC" | PHP_INI_ALL |
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3.
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3.
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "" | PHP_INI_ALL |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. Verfügbar seit PHP 4.1.0.
allow_webdav_methods | "0" | 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.

  Beachten Sie, dass seit PHP 4.0.3, `track_vars` immer eingeschaltet ist.

`arg_separator.output` string

  Das Trennzeichen, das 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.

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

`variables_order` string

  Legt die Reihenfolge der EGPCS (Environment (Umgebungsvariablen), Get, Post, Cookie und Server) -Variablenverarbeitung fest. Wenn zum Beispiel variables_order auf "SP" eingestellt ist, wird PHP die superglobals $_SERVER und $_POST, nicht aber $_ENV, $_GET und $_COOKIE anlegen. Wird dieser Wert auf "" gesetzt, so werden keine superglobals erzeugt.

  Falls die veraltete EInstellung register_globals eingeschaltet ist (seit PHP 6.0.0 entfernt), dann legt variables_order ebenfalls die Reihenfolge fest, in der ENV, GET, POST, COOKIE und SERVER Variablen im globalen Namensraum veröffentlicht werden. Falls also zum Beispiel variables_order auf "EGPCS" eingestellt und register_globals eingeschaltet ist und ebenfalls sowohl $_GET['action'] als auch $_POST['action'] gesetzt sind, dann wird $action den Wert aus $_POST['action'] beinhalten, da P im Beispiel nach G erscheint.

  Warnung

  Sowohl im CGI als auch im FastCGI SAPI enthält $_SERVER immer auch Variablen aus dem Environment, S ist hier immer equvalent zu ES unabhängig davon ob E noch anderweitig in der Direktive benutzt wird.

  > Hinweis: Der Inhalt und die Reihenfolge von $_REQUEST sind von dieser Direktive ebenfalls betroffen.

`auto_globals_jit` boolean

  Wenn eingeschaltet werden die Variablen SERVER und ENV erzeugt, sobald diese das erste mal verwendet werden (Just In Time) anstelle des Ausführungsbeginns des Skriptes. Wenn diese Variablen in einem Skript nicht verwendet werden wird das Einschalten dieser Einstellung einen Geschwindigkeitszuwachs hervorbringen.

  Die PHP Einstellungen register_globals, register_long_arrays, und register_argc_argv müssen ausgeschaltet sein, damit diese Einstellung Wirkung zeigt. Seit PHP 5.1.3 ist es nicht mehr notwendig register_argc_argv auszuschalten.

`register_globals` boolean

  Bestimmt, ob die EGPCS (Environment/Umgebung, GET, POST, Cookie, Server) Variablen als globale Variablen registriert werden sollen.

  Seit » PHP 4.2.0 ist diese Einstellung standardmäßig ausgeschaltet.

  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 für einen .htaccess Eintrag: `php_flag register_globals on` .

  > Hinweis: `register_globals` wird durch die Option variables_order beeinflusst.

  Warnung

  Dieses Feature ist DEPRECATED (veraltet) und wird in PHP 6.0.0 ENTFERNT. Sich auf dieses Feature zu verlassen ist in keiner Weise empfehlenswert.

`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 Gründen der Performance auf "off" zu setzen. Benutzen Sie stattdessen die superglobalen Arrays wie $_GET. Diese Option ist seit PHP 5.0.0 verfügbar und wurde in PHP 6.0.0 wieder entfernt.
`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 größer als `post_max_size` sein. Wird ein integer Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben. Wenn die Größe der POST-Daten größer ist als post_max_size, werden $_POST und $_FILES leer sein. Dies kann auf verschiedene Weisen verfolgt werden, z.B. indem man die $_GET-Variable an das die Daten verarbeitende Skript weitergibt, d.h. <form action="edit.php?processed=1"> und daraufhin prüfen, ob $_GET['processed'] gesetzt ist.
`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.

  > Hinweis: 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 require() 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 require() Funktion eingebunden hätten, dabei wird ein gesetzter include_path beachtet.

  Der spezielle Wert `none` deaktiviert Auto-Appending.

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

`default_mimetype` string

`default_charset` string

  Seit Version 4.0.0 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 mit den unbehandelten POST Daten gefüllt werden soll. Andernfalls wird die Variable nur mit Daten von unbekanntem MIME Typ gefüllt. Die bevorzugte Methode, um auf unbehandelte POST Daten zuzugreifen ist aber php://input. $HTTP_RAW_POST_DATA ist bei enctype="multipart/form-data" nicht verfügbar.

`allow_webdav_methods` boolean

  Diese Einstellung steht nur für Versionen bis PHP 4.3.2 zur Verfügung. Bestimmt, ob WebDAV-HTTP-Requests in PHP-Skripten erlaubt sein sollen (z.B. PROPFIND, PROPPATCH, MOVE, COPY, etc.). Wenn Sie die POST-Daten solcher Requests erhalten wollen, müssen Sie auch always_populate_raw_post_data aktivieren.

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

Performance Tuning
Pfade und Verzeichnisse
php.ini Einstellungen
PHP Manual