Diese Liste beinhaltet die core php.ini Einstellungen, die man setzen kann, um die eigenen PHP Einstellungen zu konfigurieren. Einstellungen, die von Extensions behandelt werden, sind in den Handbuchseiten zur Extension aufgeführt und beschrieben. Zum Beispiel erhält man Informationen über die Session-Einstellungen auf der Session Handbuchseite.
Tabelle H-4. Konfigurationseinstellungen für die Sprache und Verschiedenes
Name | Standardwert | Änderbar | Änderungen |
---|---|---|---|
short_open_tag | "1" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.0.0. |
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.0.0. |
precision | "14" | PHP_INI_ALL | |
y2k_compliance | "1" | PHP_INI_ALL | |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.0.0. |
expose_php | "1" | nur php.ini | |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Verfügbar seit PHP 5.0.0. |
Hier eine kurze Erklärung der Konfigurationsoptionen:
short_open_tag
booleanBestimmt, 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 zu können, muss short_open_tag auf on gesetzt sein.
asp_tags
booleanDieser 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
integerDie Anzahl der positiven Ziffern, die in Fließkommazahlen dargestellt werden.
y2k_compliance
booleanErzwingen der Jahr 2000-Kompatibilität (erzeugt eventuell Probleme mit nicht-kompatiblen Browsern).
allow_call_time_pass_reference
booleanBestimmt, ob die Möglichkeit aktiviert wird, einer Funktion Argumente beim Aufruf als Referenz zu übergeben. Diese Methode wird nicht empfohlen und wird möglicherweise in späteren Version von PHP/Zend nicht mehr unterstützt. Die empfohlene Methode zu bestimmen, welche Argumente per Referenz übergeben werden sollen, ist die Angabe 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)
Die Übergabe von Argumenten per Referenz an eine Funktion beim Aufruf dieser Funktion gilt aus Gründen der Lesbarkeit des Codes als veraltet angesehen. Eine Funktion kann die ihr übergebenen Argumente in einer undokumentierten und unerwünschten Weise verändern, wenn bei der Deklaration der Funktion nicht klar ist, welche Argumente als Referenz übergeben werden. Um unerwünschte Nebeneffekte zu vermeiden, ist es besser, Argumente die als Referenz übergeben werden sollen nur in der Funktionsdeklaration zu kennzeichnen.
Siehe auch Referenzen in PHP.
expose_php
booleanBestimmt, 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.
zend.ze1_compatibility_mode
booleanAktiviert den Kompatibilätsmodus mit der Zend Engin 1 (PHP4). Diese Einstellung wirkt sich auf das Klonen, Casten und Vergleichen von Objekten aus. In diesem Modus werden Objekte standardmäßig als Werte anstelle von Referenzen übergeben.
Siehe auch den Abschnitt Von PHP 4 auf PHP 5 wechseln.
Tabelle H-5. Limitierung von Ressourcen
Name | Standardwert | Änderbar | Änderungen |
---|---|---|---|
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
daran gehindert werden, den gesamten verfügbaren Speicher eines
Servers "aufzufressen". Um diese Option nutzen zu können,
muss sie während des Kompilierens aktiviert werden. D.h., Ihre
Konfigurations-Zeile muss folgendes enthalten:
--enable-memory-limit
. Beachten
Sie, dass Sie den Wert auf -1 setzen müssen, wenn Sie kein
Speicherlimit wünschen.
Seit PHP 4.3.2 und wenn memory_limit aktiviert ist, steht die PHP Funktion memory_get_usage() zur Verfügung.
Wird ein integer Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.
Siehe aucho: max_execution_time.
Tabelle H-6. Performance Tuning
Name | Standardwert | Änderbar | Änderungen |
---|---|---|---|
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.0. |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.0. |
Hier eine kurze Erklärung der Konfigurationsoptionen:
realpath_cache_size
integerLegt die Größe des von PHP nutzbaren realpath-Caches fest. Dieser Wert sollte auf Systemen erhöht werden, auf denen PHP viele Dateien öffnet, um die Anzahl von Dateioperationen widerzuspiegeln.
realpath_cache_ttl
integerZeitspanne (in Sekunden) während der realpath Informationen einer Datei oder eines Verzeichnisses gecacht bleiben. Für Systeme, auf denen sich die Dateien kaum ändern, sollte man die Erhöhung dieses Wertes in Betracht ziehen.
Tabelle H-7. 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
stringDas Trennzeichen, das in von PHP generierten URLs benutzt wird, um Argumente abzutrennen.
arg_separator.input
stringListe 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
stringGibt 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 diese den gleichen Namen haben.
Siehe auch register_globals.
auto_globals_jit
booleanWenn 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
booleanBestimmt, 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.
Anmerkung: register_globals wird durch die Option variables_order beeinflusst.
Diese Direktive wurde in PHP 6.0.0 entfernt.
register_argc_argv
booleanBestimmt, 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
integerSetzt 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
stringLegt 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
stringHier 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
stringHier 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
stringSeit 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
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
booleanDiese 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.
Tabelle H-8. Konfigurations-Optionen für Pfade und Verzeichnisse
Name | Standardwert | Änderbar | Änderungen |
---|---|---|---|
include_path | ".;/path/to/php/pear" | PHP_INI_ALL | |
doc_root | NULL | PHP_INI_SYSTEM | |
user_dir | NULL | PHP_INI_SYSTEM | |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM | |
extension | NULL | nur php.ini | |
cgi.fix_pathinfo | "1" | PHP_INI_ALL | Verfügbar seit PHP 4.3.0. |
cgi.force_redirect | "1" | PHP_INI_ALL | Verfügbar seit PHP 4.2.0. |
cgi.redirect_status_env | NULL | PHP_INI_ALL | Verfügbar seit PHP 4.2.0. |
fastcgi.impersonate | "0" | PHP_INI_ALL | Verfügbar seit PHP 4.3.0. |
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Verfügbar seit PHP 4.3.0. |
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.
Ein . in dieser Option ermöglicht, Dateien relativ zum aktuellen Verzeichnis einzubinden.
doc_root
stringHier 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 laufen lassen (betrifft alle Webserver außer IIS). Die Alternative ist, die Option cgi.force_redirect zu benutzen.
user_dir
stringDer Basisname des Verzeichnisses, das für Benutzer-Verzeichnisse mit PHP-Dateien benutzt wird, z.B. public_html.
extension_dir
stringVerzeichnis, in dem PHP dynamisch zu ladende Extensionen findet. Siehe auch enable_dl und dl().
extension
stringDynamisch zu ladende Extensionen, die geladen werden sollen, wenn PHP gestartet wird.
cgi.check_shebang_line
booleanKontrolliert, ob die CGI-Version von PHP nach einer Zeile, die mit #! (Shebang) beginnt, am Anfang des auszuführenden Skriptes sucht. Diese Zeile könnte notwendig sein, wenn das Script sowohl die alleinestehende Ausführung als auch mittels PHP CGI untzerstützt. PHP überspringt diese Zeile im CGI Modus und ignoriert ihren Inhalt, wenn diese Direktive eingeschaltet ist.
cgi.fix_pathinfo
booleanStellt realePATH_INFO/PATH_TRANSLATED Informationen für CGI zur Verfügung. Das frühere Verhalten von PHP war PATH_TRANSLATED einfach auf SCRIPT_FILENAME zu setzen und nicht zu verstehen was PATH_INFO bedeutet. Für weitere Informationen zu PATH_INFO schauen Sie in die CGI-Spezifikation. Wenn Sie diesen Wert auf 1 setzen, hat dies zur Folge, dass PHP CGI seine Pfade entsprechend der Spezifikation anpasst. Bei einem Wert von Null verhält sich PHP entsprechend den früheren Versionen. Der Standarwert ist 0. Es wird empfohlen, Ihre Skripte dahingehend anzupassen, statt PATH_TRANSLATED SCRIPT_FILENAME zu verwenden.
cgi.force_redirect
booleancgi.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 und Xitami gilt das gleiche.
cgi.redirect_status_env
stringWenn 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 genau wissen, was Sie tun.
fastcgi.impersonate
stringFastCGI 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
intBestimmt, 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 diese Option nicht verstehen, lassen Sie den Wert auf 0.
Tabelle H-9. Konfigurations-Optionen für Datei-Uploads
Name | Standardwert | Änderbar | Änderungen |
---|---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL in PHP <= 4.2.3. Verfügbar seit PHP 4.0.3. |
upload_tmp_dir | NULL | PHP_INI_SYSTEM | |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. |
Hier eine kurze Erklärung der Konfigurationsoptionen:
file_uploads
booleanBestimmt, ob Datei-Uploads per HTTP erlaubt sind. Siehe auch die Optionen upload_max_filesize, upload_tmp_dir und post_max_size.
Wird ein integer Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.
upload_tmp_dir
stringTemporä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
integerMaximale Größe, die eine hochgeladene Datei haben darf.
Wird ein integer Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.
Tabelle H-10. Konfigurations-Optionen für allgemeines SQL
Name | Standardwert | Änderbar | Änderungen |
---|---|---|---|
sql.safe_mode | "0" | PHP_INI_SYSTEM |
Hier eine kurze Erklärung der Konfigurationsoptionen:
sql.safe_mode
booleanWenn diese Option eingeschaltet wird, werden Datenbankfunktionen, die Standardwerte vorgeben diese Werte anstelle der angegebenen Parameter verwenden. Zu Informationen über Standardwerte können Sie einen Blick auf die Dokumentation der Connect-Funktion der relevanten Datenbank werfen.
Achtung |
Nur PHP 3 hat einen standardmäßigen Debugger implementiert. Für weitere Informationen siehe Anhang F. |
Zurück | Zum Anfang | Weiter |
php.ini Einstellungen | Nach oben | List of Supported Timezones |