Diese Liste enthält die php.ini Direktiven des PHP-Kerns die Sie in Ihrer Installation verwenden können. Direktiven, die von einer der Erweiterungen verarbeitet werden, werden in den Handbuchseiten der jeweiligen Erweiterung aufgelistet und im Detail beschrieben. So können z.B. die Direktiven zur Konfiguration von Sessions auf den Session-Handbuchseiten gefunden werden.
Hinweis:
Die Voreinstellungen, die hier aufgeführt werden, gelten, wenn php.ini nicht geladen wurde. Die Werte für die Produktions- und Entwicklungs-php.ini können anders sein.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
short_open_tag | "1" | PHP_INI_PERDIR | |
asp_tags | "0" | PHP_INI_PERDIR | Entfernt in PHP 7.0.0. |
precision | "14" | PHP_INI_ALL | |
serialize_precision | "-1" | PHP_INI_ALL | Vor PHP 5.3.6 war der Vorgabewert 100. Vor PHP 7.1.0 war der Vorgabewert 17. |
y2k_compliance | "1" | PHP_INI_ALL | Entfernt ab PHP 5.4.0. |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | Entfernt ab PHP 5.4.0. |
disable_functions | "" | Nur PHP_INI_SYSTEM | |
disable_classes | "" | Nur php.ini | |
exit_on_timeout | "" | PHP_INI_ALL | Verfügbar seit PHP 5.3.0. |
expose_php | "1" | Nur php.ini | |
hard_timeout | "2" | PHP_INI_SYSTEM | Verfügbar seit PHP 7.1.0. |
zend.multibyte | "0" | PHP_INI_ALL | Verfügbar seit PHP 5.4.0. |
zend.script_encoding | NULL | PHP_INI_ALL | Verfügbar seit PHP 5.4.0. |
zend.detect-unicode | NULL | PHP_INI_ALL | Verfügbar seit PHP 5.4.0 |
zend.signal_check | "0" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.4.0. |
zend.assertions | "1" | PHP_INI_ALL mit Einschränkungen | Verfügbar seit PHP 7.0.0. |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Entfernt ab PHP 5.3.0 |
detect_unicode | "1" | PHP_INI_ALL | Verfügbar seit PHP 5.1.0. Umbenannt zu zend.detect-unicode ab PHP 5.4.0. |
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.
Hinweis:
Vor PHP 5.4.0 betraf diese Option auch die Kurzform
<?=
, die zu<? echo
identisch ist. Um diese Kurzform nutzen zu können, mussteshort_open_tag
auf on gesetzt sein. Seit PHP 5.4.0 ist<?=
immer verfügbar.
Version | Beschreibung |
---|---|
7.0.0 | Von PHP entfernt. |
precision
integer
serialize_precision
integer
y2k_compliance
boolean
allow_call_time_pass_reference
boolean
Bestimmt, ob eine Warnung geworfen werden soll, wenn einer Funktion Argumente beim Aufruf als Referenz zu übergeben. 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 kompatibel sind (sie bekommen ein "Warning", wenn Sie diese Funktion trotzdem benutzen).
Die Übergabe von Argumenten per Referenz an eine Funktion beim Aufruf dieser Funktion wird 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.
Version | Beschreibung |
---|---|
5.4.0 | Aus PHP entfernt. |
5.3.0 |
Wirft einen Fehler der Stufe E_DEPRECATED .
|
5.0.0 |
Deprecated (veraltet) und wirft einen Fehler der Stufe E_COMPILE_WARNING .
|
expose_php
boolean
Bestimmt, ob PHP die Tatsache, dass es auf dem Server installiert ist, über einen Header bekannt geben darf (z.B. X-Powered-By: PHP/5.3.7). Vor PHP 5.5.0 wurde weiterhin dadurch kontrolliert, ob das PHP-Logo durch das Anhängen eines speziellen URL-Segments erreichbar ist (z.B. » https://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Dies beeinflusste die Ausgabe von phpinfo(), da bei ausgeschalteter Option das PHP-Logo und die Credits nicht angezeigt würden.
Hinweis:
Ab PHP 5.5.0 wurden diese GUIDs und die Funktion php_logo_guid() entfernt, und die GUIDs durch Data-URIs ersetzt. Daher kann nicht länger auf das PHP-Logo durch Anhängen der GUID an die URL zugegriffen werden. Entsprechend wird das Setzen von
expose_php
auf Off die Anzeige des PHP-Logos in phpinfo() nicht beeinflussen.
Weitere Informationen unter php_logo_guid() und phpcredits().
disable_functions
string
Diese Direktive ermöglicht das Deaktivieren einzelner Funktionen aus Sicherheitsgründen. Die Funktionen werden als kommagetrennte Liste von Funktionsnamen übergeben. Die Direktive ist unabhängig vom Safe Mode.
Nur interne Funktionen können über diese Direktive deaktiviert werden. Nutzer definierte Funktionen sind nicht betroffen.
Diese Direktive muss in php.ini gesetzt werden. Sie kann nicht in beispielsweise httpd.conf gesetzt werden.
disable_classes
string
zend.assertions
integer
Hinweis:
Wurde der Prozess im Produktionsmodus gestartet, kann zend.assertions nicht zur Laufzeit geändert werden, da der Assertion-Code nicht erzeugt wurde.
Wurde der Prozess im Entwicklungsmodus gestartet, kann zend.assertions zur Laufzeit nicht auf -1 gesetzt werden.
zend.ze1_compatibility_mode
boolean
Aktiviert 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.
Dieses Feature wurde in PHP 5.3.0 DEPRECATED und ENTFERNT.
hard_timeout
integer
zend.multibyte
boolean
Erlaubt das Parsen von Source Code Dateien in Multibyte Encodings. Die Aktivierung von zend.multibyte ist erforderlich um Zeichenkodierungen wie SJIS, BIG5, usw. zu verwenden, die besondere Zeichen in multibyte Zeichenkettendaten enthalten. ISO-8859-1 kompatible Kodierungen wie UTF-8, EUC, usw. erfordern diese Option nicht.
Das Aktivieren von zend.multibyte erfordert die Verfügbarkeit der mbstring Extension.
zend.script_encoding
string
Dieser Wert wird benutzt, sofern keine declare(encoding=...) Direktive am Anfang des Skriptes genutzt wird. Wird eine ISO-8859-1 inkompatible Kodierung verwendet, müssen sowohl zend.multibyte als auch zend.script_encoding verwendet werden.
Zeichenkettenliterale werden von zend.script_enconding in mbstring.internal_encoding übersetzt als ob mb_convert_encoding() aufgerufen worden wäre.
detect_unicode
boolean
Erkenne, ob eine BOM (Byte Order Mark) vorhanden ist und prüfe ob die Datei valide Multibyte Zeichen enthält. Diese Erkennung wird vorgenommen bevor __halt_compiler() verarbeitet wird. Diese Option ist nur im Zend Multibyte Modus verfügbar.
zend.signal_check
boolean
Ob während des Shutdowns geprüft werden soll, ob Signal Handler ersetzt wurden.
exit_on_timeout
boolean
Diese Einstellung betrifft nur Apache1 mit mod_php. Sie zwingt den Apache Kind-Prozess sich zu beenden, wenn ein PHP Timeout auftritt. Solch ein Timeout verursacht einen internen longjmp() Aufruf, welches einige Erweiterungen in einem inkonsistenten Zustand hinterlassen kann. Durch das Beenden des Prozesses werden ausstehende Locks und allozierter Arbeitsspeicher freigegeben.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
memory_limit | "128M" | PHP_INI_ALL | "8M" vor PHP 5.2.0, "16M" in PHP 5.2.0 |
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 keine Speicherobergrenze festzulegen, stellen Sie diese Direktive auf den Wert -1.
Um diese Direktive verwernden zu können, war es in PHP Versionen vor 5.2.1 notwendig, dass bei der Kompilierung in der Konfigurationszeile --enable-memory-limit verwendet wurde. Dies war außerdem notwendig, damit die Funktionen memory_get_usage() und memory_get_peak_usage() definiert wurden.
Wird ein integer-Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.Siehe auch: max_execution_time.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
realpath_cache_size | "4M" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.0. Vor PHP 7.0.16 and 7.1.2 war die Voreinstellung "16K" |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.0. |
Hinweis:
Die Verwendung von open_basedir deaktiviert den Realpath-Cache.
Hier eine kurze Erklärung der Konfigurationsoptionen:
realpath_cache_size
integer
Legt 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.
Die Größe stellt die Gesamtzahl von Bytes der gespeicherten Pfad-Zeichenketten dar, plus die Größe der Daten, die mit dem Cache-Eintrag verknüpft sind. Das bedeutet, dass der Cache größer sein muss, um längere Pfade im Cache zu speichern. Dieser Wert steuert nicht direkt die Anzahl der individuellen Pfade, die im Cache vorgehalten werden können.
Die benötigte Größe für die Cache-Eintragsdaten ist systemabhängig.
realpath_cache_ttl
integer
Zeitspanne (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.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
arg_separator.output | "&" | PHP_INI_ALL | |
arg_separator.input | "&" | PHP_INI_PERDIR | |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 5.0.5. |
request_order | "" | PHP_INI_PERDIR | Verfügbar seit PHP 5.3.0 |
auto_globals_jitt | "1" | PHP_INI_PERDIR | Verfügbar seit PHP 5.0.0. |
register_globals | "0" | PHP_INI_PERDIR | Entfernt ab PHP 5.4.0. |
register_argc_argv | "1" | PHP_INI_PERDIR | |
register_long_arrays | "1" | PHP_INI_PERDIR | Missbilligt in PHP 5.3.0. Entfernt in PHP 5.4.0. |
enable_post_data_reading | "1" | PHP_INI_PERDIR | Verfügbar seit PHP 5.4.0 |
post_max_size | "8M" | PHP_INI_PERDIR | |
auto_prepend_file | NULL | PHP_INI_PERDIR | |
auto_append_file | NULL | PHP_INI_PERDIR | |
default_mimetype | "text/html" | PHP_INI_ALL | |
default_charset | "UTF-8" | PHP_INI_ALL | Standardmäßig "UTF-8" in PHP >= 5.6.0; leer in PHP < 5.6.0. |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | Entfernt in PHP 7.0.0. |
Hier eine kurze Erklärung der Konfigurationsoptionen:
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, 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.
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.
request_order
string
Diese Direktive legt fest in welcher Reihenfolge PHP GET, POST und Cookie Variablen im _REQUEST Array ablegt. Die Registrierung erfolgt dabei von links nach rechts und neuere Einträge überscrheiben bisherige Werte gleichen Namens.
Ist diese Direktive nicht gesetzt so wird statt dessen variables_order für die Inhalte von $_REQUEST ausgewertet.
Beachten Sie, dass die Standard php.ini Dateien 'C' für Cookies aus Sicherheitsgründen nicht angeben.
auto_globals_jit
boolean
Wenn eingeschaltet werden die Variablen SERVER, REQUEST 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.
Ob SERVER, REQUEST und ENV Variablen benutzt werden wird bereits zur Kompilationszeit geprüft, ein Zugriff über variable Variablen führt daher nicht dazu das diese initialisiert werden.
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.
Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).
register_argc_argv
boolean
register_long_arrays
boolean
Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).
enable_post_data_reading
boolean
post_max_size
integer
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 die
$_POST und $_FILES
Superglobals 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.
Hinweis:
PHP gestattet die Angabe von K für kilo, M für mega und G für Giga bei der Angabe von Werten und rechnet diese automatisch um. Vermeiden Sie aber beim Einsatz von 32bit Versionen die Angabe von Werten die das Limit für vorzeichenbehaftete 32 bit Integer überschreiten da Ihre Skripte sonst fehlschlagen werden.
Version | Beschreibung |
---|---|
5.3.4 |
post_max_size = 0 deaktiviert die Begrenzung
nicht, wenn der Content-Type application/x-www-form-urlencoded oder
PHP nicht bekannt ist.
|
5.3.2 , 5.2.12 |
Erlaubt unbegrenzte POST-Größe durch Setzen von
post_max_size auf 0.
|
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
Standardmäßig gibt PHP den Media Type unter Verwendung des Content-Type Header aus. Um das zu unterbinden, ist diese Einstellung leer zu lassen.
PHP's eingebauter Media Type ist text/html.
default_charset
string
Von PHP 5.6 an ist der Vorgabewert "UTF-8", und dieser Wert wird als
Standard-Zeichenkodierung für htmlentities(),
html_entity_decode() und
htmlspecialchars() verwendet, wenn der
encoding
Parameter ausgelassen wird. Der Wert von
default_charset
wird ebenfalls verwendet, um den
Standard-Zeichensatz für iconv
Funktionen festzulegen, wenn die iconv.input_encoding
,
iconv.output_encoding
und iconv.internal_encoding
Konfigurationsoptionen nicht gesetzt sind, und für mbstring Funktionen, wenn die
mbstring.http_input
,
mbstring.http_output
und mbstring.internal_encoding
Konfigurationsoptionen nicht gesetzt sind.
Alle Versionen von PHP verwenden diesen Wert als Zeichensatz im Standard-Content-Type Header, der von PHP gesendet wird, wenn der Header nicht durch einen Aufruf von header() übersteuert wurde.
default_charset
auf einen leeren Wert zu setzen,
wird nicht empfohlen.
input_encoding
string
Verfügbar ab PHP 5.6.0. Diese Einstellung wird für Multibyte-Module wie mbstring und iconv verwenden. Standardwert ist leer.
output_encoding
string
Verfügbar ab PHP 5.6.0. Diese Einstellung wird für Multibyte-Module wie mbstring und iconv verwenden. Standardwert ist leer.
internal_encoding
string
Verfügbar ab PHP 5.6.0. Diese Einstellung wird für Multibyte-Module wie mbstring und iconv verwenden. Standardwert ist leer. Falls leer, dann wird default_charset verwendet.
always_populate_raw_post_data
mixed
Dieses Feature ist seit PHP 5.6.0 DEPRECATED (veraltet) und seit PHP 7.0.0 ENTFERNT.
Wird dies auf TRUE
gesetzt, wird die Variable $HTTP_RAW_POST_DATA
mit den unbehandelten POST Daten gefüllt. Andernfalls
wird die Variable nur gefüllt, wenn der MIME Typ der Daten unbekannt ist.
Die bevorzugte Methode, um auf unbehandelte POST Daten zuzugreifen
ist php://input, und
$HTTP_RAW_POST_DATA ist von PHP 5.6.0 an missbilligt.
Das Setzen von always_populate_raw_post_data
auf
-1 aktiviert das neue Verhalten, das in einer
künftigen Version von PHP implementiert wird, wo
$HTTP_RAW_POST_DATA nie definiert ist.
Unabhängig von der Einstellung, ist $HTTP_RAW_POST_DATA bei enctype="multipart/form-data" nicht verfügbar.
Siehe auch magic_quotes_gpc, magic-quotes-runtime und magic_quotes_sybase.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
include_path | ".;/path/to/php/pear" | PHP_INI_ALL | |
open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM in PHP < 5.3.0 |
doc_root | NULL | PHP_INI_SYSTEM | |
user_dir | NULL | PHP_INI_SYSTEM | |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.3.0. |
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.3.0. |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM | |
extension | NULL | Nur php.ini | |
zend_extension | NULL | Nur php.ini | |
zend_extension_debug | NULL | Nur php.ini | |
zend_extension_debug_ts | NULL | Nur php.ini | |
zend_extension_ts | NULL | Nur php.ini | |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.2.0. |
cgi.discard_path | "0" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.3.0. |
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | Vor PHP 5.2.1 PHP_INI_ALL. |
cgi.force_redirect | "1" | PHP_INI_SYSTEM | Vor PHP 5.2.1 PHP_INI_ALL. |
cgi.nph | "0" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.3.0. |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | Vor PHP 5.2.1 PHP_INI_ALL. |
cgi.rfc2616_headers | "0" | PHP_INI_ALL | |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | Vor PHP 5.2.1 PHP_INI_ALL. |
fastcgi.logging | "1" | PHP_INI_SYSTEM | Vor PHP 5.2.1 PHP_INI_ALL. |
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, fopen(), file(), readfile() und file_get_contents() 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.
Wenn PHP eine Datei einbinden soll, geht es alle Einträge im include path einzeln durch. Zuerst wird der erste Pfad getestet und wenn die Datei dort nicht gefunden wird, wird der nächste Pfad überprüft, bis letztendlich entweder die Datei gefunden wird oder aber PHP ein Warning oder Error wirft. Der include path kann auch zur Laufzeit mit Hilfe der Funktion set_include_path() geändert werden.
Beispiel #1 include_path unter Unix
include_path=".:/php/includes"
Beispiel #2 include_path unter Windows
include_path=".;c:\php\includes"
Ein . in dieser Option ermöglicht, Dateien relativ zum aktuellen Verzeichnis einzubinden. Es ist jedoch effizienter explizit include './Datei' zu schreiben, anstatt PHP zu zwingen jedes Mal den include path zu nutzen.
Hinweis:
Auf ENV kann in .ini Dateien ebenfalls zugegriffen werden. Daher ist es möglich das Home-Verzeichnis durch ${LOGIN} und ${USER} zu referenzieren.
Umgebungsvariablen können zwischen verschiedenen Server APIs variieren, da diese Umgebungen unterschiedlich sein können.
Beispiel #3 include_path unter Unix unter Verwendung der ${USER} Umgebungsvariablen
include_path = ".:${USER}/pear/php"
open_basedir
string
Begrenzt die Dateien, auf die von PHP zugegriffen werden kann, auf einen bestimmten Ordner inklusive seiner Unterordner. Diese Direktive ist wirksam, EGAL, ob Safe Mode an oder aus ist.
Wenn ein Skript versucht, auf eine Datei zuzugreifen, zum Beispiel mit include oder fopen(), wird der Ort der Datei geprüft. Wenn die Datei nicht im Verzeichnisbaum, der in open_basedir angegeben ist, liegt, wird PHP nicht auf die Datei zugreifen. Alle symbolischen Verknüpfungen werden aufgelöst, sodass es nicht möglich ist, diese Beschränkung mit einem Symlink zu umgehen. Wenn die Datei nicht existiert kann die Verknüpfung nicht aufgelöst werden und der Dateiname wird mit (einem aufgelösten) open_basedir verglichen.
open_basedir kann sich auf mehr als nur Dateisystemfunktionen auswirken; zum Beispiel ist, wenn MySQL konfiguriert ist mysqlnd Treiber zu verwenden, LOAD DATA INFILE von open_basedir betroffen. Viel der erweiterten Funktionalität von PHP verwendet open_basedir auf diese Weise.
Der spezielle Wert .
gibt
an, dass das Arbeitsverzeichnes des Skriptes das Basis-Verzeichnis ist.
Dies ist gefährtlich, da das Arbeitsverzeichnis mit chdir()
einfach geändert werden kann.
In der Konfigurationsdatei httpd.conf kann open_basedir geändert oder deaktiviert werden (z.B. für einige virtuelle Hosts), genau wie jede andere Direktive mit "php_admin_value open_basedir none".
Unter Windows müssen die Verzeichnisse mit einem Semikolon (;) getrennt werden, auf allen anderen Systemen mit einem Doppelpunkt. Wenn PHP als Apache-Modul läuft, erbt open_basedir seinen Pfad nun automatisch von übergeordneten Verzeichnissen.
Die Einschränkung durch open_basedir geschieht durch einen Prefix, nicht durch einen Verzeichnisnamen. Das heißt, dass "open_basedir = /dir/incl" das Verzeichnis "/dir/include" ebenso einschließt wie "/dir/incls", wenn beide existieren. Wenn die Einschränkung auf ein bestimmtes Verzeichnis begrenzt werden soll, muss der Pfad mit einem Schrägstrich enden. Beispiel: open_basedir = /dir/incl/
Standardmäßig dürfen alle Dateien geöffnet werden.
Hinweis:
Seit PHP 5.3.0 kann open_basedir zur Laufzeit weiter verengt werden. Das heißt, wenn open_basedir laut php.ini auf /www/ gesetzt ist, kann die Direktive zur Laufzeit mit ini_set() auf beispielsweise /www/tmp/ weiter begrenzt werden. Wenn mehrere Verzeichnisse aufgelistet werden, kann die
PATH_SEPARATOR
Konstante als vom Betriebssystem unabhängiges Trennzeichen verwendet werden.
Hinweis:
Die Verwendung von open_basedir setzt realpath_cache_size auf 0 und deaktiviert somit den Realpath-Cache.
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 laufen lassen (betrifft alle Webserver außer IIS). Die Alternative ist, die Option cgi.force_redirect zu benutzen.
user_ini.cache_ttl
integer
user_ini.filename
string
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.
zend_extension
string
Name einer dynamisch ladbaren Zend Extension (beispielsweise APD), welche geladen werden soll, wenn PHP startet.
zend_extension_debug
string
Variante von zend_extension für Erweiterungen, die mit Debug-Informationen kompiliert wurden.
zend_extension_debug_ts
string
Variante von zend_extension für Erweiterungen, die mit Debug-Informationen und Thread-Safety kompiliert wurden.
zend_extension_ts
string
Variante von zend_extension für Erweiterungen, die mit Thread-Safety kompiliert wurden.
cgi.check_shebang_line
boolean
Kontrolliert, 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 unterstützt. PHP überspringt diese Zeile im CGI Modus und ignoriert ihren Inhalt, wenn diese Direktive eingeschaltet ist.
cgi.discard_path
boolean
Ist dies aktiviert, kann das PHP-CGI-Binary sicher außerhalb des Webroot abgelegt werden, ohne das jemand in der Lage ist die .htaccess Sicherheit zu umgehen.
cgi.fix_pathinfo
boolean
Stellt reale PATH_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 auf PATH_INFO. 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, was auch nachwievor das Standardverhalten ist. Es wird empfohlen, Ihre Skripte dahingehend anzupassen, statt PATH_TRANSLATED SCRIPT_FILENAME zu verwenden.
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").
Hinweis:
Windows-Benutzer: Unter IIS muss diese Option ausgeschaltet werden. Für OmniHTTPD und Xitami gilt selbiges.
cgi.nph
boolean
Ist cgi.nph aktiviert, zwingt es CGI immer Status: 200 für jede Anfrage zu senden.
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.
Hinweis:
Das Setzen dieser Variablen kann Sicherheitsrisiken verursachen, Sie sollten also genau wissen, was Sie tun.
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 » RFC 3875 "Status:"-Header, der von Apache und anderen Webservern unterstützt wird. Ist sie auf 1 gesetzt, sendet PHP einen zu » RFC 2616 konformen Header.
Ist diese Option aktiviert, und Sie führen PHP in einer CGI-Umgebung (z.B. PHP-FPM) aus, sollten Sie keine üblichen RFC 2616 HTTP Status-Response-Header verwenden; statt dessen sollten Sie ihre RFC 3875 Pendants nutzen, z.B. sollten Sie anstelle von header("HTTP/1.0 404 Not found"); header("Status: 404 Not Found"); verwenden.
Wenn Sie diese Option nicht verstehen, lassen Sie den Wert auf 0.
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.
fastcgi.logging
boolean
Schaltet SAPI Logging an, wenn FastCGI benutzt wird. Standardmäßig ist Logging aktiviert.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM | |
upload_tmp_dir | NULL | PHP_INI_SYSTEM | |
max_input_nesting_level | 64 | PHP_INI_PERDIR | Verfügbar seit PHP 5.3.9. |
max_input_vars | 1000 | PHP_INI_PERDIR | Verfügbar seit PHP 5.3.9. |
upload_max_filesize | "2M" | PHP_INI_PERDIR | |
max_file_uploads | 20 | PHP_INI_SYSTEM | Verfügbar seit PHP 5.2.12. |
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.
Wenn das hier angegebene Verzeichnis nicht beschreibbar ist, nutzt PHP stattdessen das Standardverzeichnis für temporöre Dateien. Wenn open_basedir genutzt wird, muss dieses Standardverzeichnis erlaubt sein, ansonsten schlagen Uploads fehl.
upload_max_filesize
integer
Maximale 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.max_file_uploads
integer
Die maximale Anzahl an Dateien, die gleichzeitig hochgeladen werden kann. Seit PHP 5.3.4 zählen Upload Formularfelder, die leer gelassen wurden nicht mehr zu diesem Limit.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
sql.safe_mode | "0" | PHP_INI_SYSTEM | Entfernt in PHP 7.2.0 |
Hier eine kurze Erklärung der Konfigurationsoptionen:
sql.safe_mode
boolean
Wenn diese Option eingeschaltet wird, werden Datenbankverbindungsfunktionen, die Standardwerte vorgeben diese Werte anstelle der angegebenen Parameter verwenden. Zu Informationen über Standardwerte können Sie einen Blick auf die Dokumentation der Verbindungsfunktion der relevanten Datenbank werfen.
Dieses Feature wurde von PHP 7.2.0 an ENTFERNT.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
windows.show_crt_warning | "0" | PHP_INI_ALL | Verfügbar seit PHP 5.4.0. |
Hier eine kurze Erklärung der Konfigurationsoptionen:
windows.show_crt_warning
boolean
Wenn diese Direktive angeschaltet ist, werden Windows CRT Warnings angezeigt. Vor PHP 5.4.0 wurden diese immer angezeigt.