-
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.
-
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.