-
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
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 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; zum Beispiel ist, wenn
MySQL
konfiguriert ist, den
mysqlnd
-Treiber zu verwenden, LOAD DATA
INFILE
von open_basedir betroffen. 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 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 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()
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 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.
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 nach einer
Zeile, die mit #!
(Shebang) beginnt, am Anfang des
auszuführenden Skriptes sucht. 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-Wurzelverzeichnisses abgelegt werden, ohne das jemand in der Lage
ist, die .htaccess-Sicherheit zu umgehen.
-
cgi.fix_pathinfo
bool
-
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
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
cgi.force_redirect unter den meisten Webservern 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 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 verwenden. Der Standardwert ist 0.
-
fastcgi.logging
bool
-
Schaltet SAPI-Logging an, wenn FastCGI verwendet wird. Standardmäßig
ist Logging aktiviert.