-
include_path
string
-
Hier können Sie eine Liste von Verzeichnissen angeben, in welchen 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-Pfad 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 E_WARNING
oder
E_ERROR
zurückgibt. Der Include-Pfad 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-Pfad zu nutzen.
Hinweis:
Auf ENV
-Variablen 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.
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 liegt,
der in open_basedir angegeben ist, 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. Wenn zum Beispiel
MySQL
so konfiguriert ist, dass es den
mysqlnd
-Treiber verwendet, wird LOAD DATA
INFILE
von open_basedir beeinflusst. Ein
Großteil der erweiterten Funktionalität von PHP verwendet
open_basedir
auf diese Weise.
Der spezielle Wert .
gibt
an, dass das Arbeitsverzeichnes des Skriptes als Basis-Verzeichnis
verwendet wird. Dies ist gefährtlich, da das Arbeitsverzeichnis mit
chdir() einfach geändert werden kann.
In der Konfigurationsdatei httpd.conf kann
open_basedir
genau wie jede andere
Direktive mit "php_admin_value open_basedir none
"
geändert oder deaktiviert werden (z. B. für einige virtuelle Hosts).
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 mit open_basedir angegebene Einschränkung ist ein
Verzeichnisname, kein Präfix.
Standardmäßig dürfen alle Dateien geöffnet werden.
Hinweis:
open_basedir kann zur Laufzeit weiter eingeschränkt werden. Das heißt,
wenn open_basedir laut php.ini auf /www/
gesetzt
ist, kann die Direktive zur Laufzeit mit ini_set()
beispielsweise weiter auf /www/tmp/
begrenzt
werden. Wenn mehrere Verzeichnisse aufgelistet werden, kann die
Konstante PATH_SEPARATOR
unabhängig vom
Betriebssystem als Trennzeichen verwendet werden.
Hinweis:
Die Verwendung von open_basedir setzt
realpath_cache_size auf
0
und deaktiviert somit den
realpath-Cache.
Achtung
open_basedir
ist nur ein zusätzliches
Sicherheitsnetz, das in keiner Weise umfassend ist und daher nicht
als verlässlich angesehen werden kann, wenn Sicherheit erforderlich
ist.
-
doc_root
string
-
Hier wird das Stammverzeichnis der PHP-Skripte auf dem Server
angegeben. Diese Option wird nur verwendet, wenn ein Wert angegeben
wird. 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
verwenden.
-
user_ini.cache_ttl
int
-
-
user_ini.filename
string
-
-
user_dir
string
-
Der Basisname des Verzeichnisses, das für Benutzer-Verzeichnisse mit
PHP-Dateien verwendet wird, z. B.
public_html.
-
extension_dir
string
-
Das Verzeichnis, in dem PHP dynamisch zu ladende Erweiterungen findet.
Es wird empfohlen, einen absoluten Pfad anzugeben. Siehe auch
enable_dl und
dl().
-
extension
string
-
Dynamisch zu ladende Erweiterungen, die geladen werden sollen, wenn PHP
gestartet wird.
-
zend_extension
string
-
Der Name einer dynamisch ladbaren Zend-Erweiterung (beispielsweise
Xdebug), welche geladen werden soll, wenn PHP startet.
-
cgi.check_shebang_line
bool
-
Kontrolliert, ob die CGI-Version von PHP am Anfang
des auszuführenden Skripts nach einer Zeile sucht, die mit
#!
(Shebang) beginnt. Diese Zeile könnte notwendig
sein, wenn das Skript sowohl die eigenständige Ausführung als auch die
mittels PHP-CGI unterstützt. PHP überspringt diese
Zeile im CGI-Modus und ignoriert ihren Inhalt, wenn
diese Direktive eingeschaltet ist.
-
cgi.discard_path
bool
-
Ist dies aktiviert, kann das PHP-CGI-Binary sicher außerhalb des
Web-Verzeichnisbaums abgelegt werden, ohne dass jemand in der Lage ist,
die .htaccess-Sicherheit zu umgehen.
-
cgi.fix_pathinfo
bool
-
Stellt echte
PATH_INFO
/PATH_TRANSLATED
-Unterstützung
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
siehe 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. Standardmäßig ist es eingeschaltet. Es wird
empfohlen, Ihre Skripte dahingehend anzupassen, statt
PATH_TRANSLATED
SCRIPT_FILENAME
zu verwenden.
-
cgi.force_redirect
bool
-
Wenn PHP als CGI-Version läuft, wird unter den
meisten Webservern cgi.force_redirect benötigt, um Sicherheit zu
garantieren. 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
bool
-
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) verwenden, 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 verwendet werden soll, wenn
HTTP-Antwortcodes 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; stattdessen 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 unterstützt unter dem IIS (auf WINNT-basierten
Betriebssystemen) die Möglichkeit, Sicherheitsmerkmale des aufrufenden
Clients zu bestimmen. Dies ermöglicht es dem IIS, den
Sicherheitskontext zu bestimmen, in dem der Zugriff läuft. mod_fastcgi
unter Apache unterstützt diese Funktion zur Zeit nicht (17.03.2002).
Setzen Sie diese Option auf 1, wenn Sie den IIS verwenden. Der
Standardwert ist 0.
-
fastcgi.logging
bool
-
Schaltet das SAPI-Logging an, wenn FastCGI verwendet wird.
Standardmäßig ist das Logging aktiviert.