|
|
Beschreibung der php.ini-Direktiven des Sprachkerns
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.
Httpd-Optionen
Httpd-Optionen
| Name |
Standard |
Veränderbar |
Changelog |
| async_send |
"0" |
PHP_INI_ALL |
Verfügbar seit PHP 4.2.0. Entfernt in PHP 4.3.0. |
Sprachoptionen
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, musste
short_open_tag auf on gesetzt
sein. Seit PHP 5.4.0 ist <?= immer verfügbar.
-
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.
Changelog für asp_tags
| Version |
Beschreibung |
| 7.0.0 |
Von PHP entfernt.
|
-
precision
integer
-
Die Anzahl der signifikanten Stellen, die in Fließkommazahlen
dargestellt werden.
-1 bedeutet, dass ein verbesserter Algorithmus
zur Rundung solcher Zahlen verwendet wird.
-
serialize_precision
integer
-
Die Anzahl der signifikanten Stellen, die gespeichert werden wenn
Fließkommazahlen serialisiert werden.
-1 bedeutet, dass ein verbesserter Algorithmus
zur Rundung solcher Zahlen verwendet wird.
-
y2k_compliance
boolean
-
Erzwingen der Jahr 2000-Kompatibilität (erzeugt eventuell Probleme
mit nicht-kompatiblen Browsern).
-
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.
Changelog for allow_call_time_pass_reference
| 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.
» http://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
-
Diese Direktive ermöglicht das Deaktivieren einzelner Klassen aus
Sicherheitsgründen. Die Funktionen werden
als kommagetrennte Liste von Klassennamen übergeben. Die Direktive
ist unabhängig vom Safe Mode.
Diese Direktive muss in php.ini gesetzt werden. Sie kann nicht in
beispielsweise httpd.conf gesetzt werden.
-
zend.assertions
integer
-
Falls 1, dann wird Assertion-Code erzeugt und
ausgeführt (Entwicklungsmodus). Falls 0, dann wird
Assertion-Code erzeugt, aber zur Laufzeit ausgelassen (nicht
ausgeführt). Falls -1, dann wird Assertion-Code nicht
erzeugt, so dass die Assertions keine Laufzeitkosten haben
(Produktionsmodus).
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.
Warnung
Dieses Feature wurde in PHP 5.3.0 DEPRECATED
und ENTFERNT.
-
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.
Limitierung von Ressourcen
Limitierung von Ressourcen
| 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.
Verarbeitung von Daten
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.
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.
-
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 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.
Warnung
Ob SERVER 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.
WarnungDieses Feature ist
seit PHP 5.3.0 DEPRECATED (veraltet) und seit PHP 5.4.0 ENTFERNT.
-
register_argc_argv
boolean
-
Bestimmt, ob die argv- & argc-Variablen deklariert werden sollen
(betrifft die GET-Informationen).
Siehe auch Kommandozeile.
-
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.
WarnungDieses Feature ist
seit PHP 5.3.0 DEPRECATED (veraltet) und seit PHP 5.4.0 ENTFERNT.
-
enable_post_data_reading
boolean
-
Wenn diese Option deaktiviert ist, werden $_POST und
$_FILES nicht gefüllt.
Der einzige Weg in diesem Fall die POST Daten zu lesen ist der
php://input Stream Wrapper.
Dies kann nützlich sein um Requests umzuleiten oder um die POST
Daten Arbeitsspeicher-effizient zu verarbeiten.
-
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.
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 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.
Changelog für post_max_size
| 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.internal_encoding,
mbstring.http_input und
mbstring.http_output
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
-
WarnungDieses 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.
Pfade und Verzeichnisse
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.
-
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_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.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.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.
-
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.
Datei-Uploads
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.
Allgemeines SQL
Konfigurations-Optionen für allgemeines SQL
| Name |
Standard |
Veränderbar |
Changelog |
| sql.safe_mode |
"0" |
PHP_INI_SYSTEM |
|
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.
Windows spezifisch
Windows spezifische Optionen
| 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.
|