Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Konfigurationsoptionen für PHP Optionen/Info
Name Standard Veränderbar Changelog
assert.active "1" PHP_INI_ALL  
assert.bail "0" PHP_INI_ALL  
assert.warning "1" PHP_INI_ALL  
assert.callback NULL PHP_INI_ALL  
assert.quiet_eval "0" PHP_INI_ALL  
enable_dl "1" PHP_INI_SYSTEM Dieses veraltete Feature wird in der Zukunft sicherlich entfernt.
max_execution_time "30" PHP_INI_ALL  
max_input_time "-1" PHP_INI_PERDIR Verfügbar seit PHP 4.3.0.
max_input_nesting_level "64" PHP_INI_SYSTEM|PHP_INI_PERDIR Verfügbar ab PHP 4.4.8 und PHP 5.2.3.
max_input_vars 1000 PHP_INI_PERDIR Verfügbar seit PHP 5.3.9.
magic_quotes_gpc "1" PHP_INI_PERDIR PHP_INI_ALL ab PHP <= 4.2.3. Entfernt in PHP 5.4.0.
magic_quotes_runtime "0" PHP_INI_ALL Entfernt in PHP 5.4.0.
zend.enable_gc "1" PHP_INI_ALL Verfügbar ab PHP 5.3.0.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

assert.active boolean

Aktiviert assert() Auswertung.

assert.bail boolean

Beendet die Ausführung eines Skripts bei fehlgeschlagener Aussage.

assert.warning boolean

Erzeugt ein PHP warning für jede fehlgeschlagene Aussage.

assert.callback string

Benutzerdefinierte Funktion, die bei fehlgeschlagenen Aussagen ausgeführt wird.

assert.quiet_eval boolean

Benutzt die aktuelle Einstellung von error_reporting() während der Überprüfung eines Ausdrucks einer Aussage. Ist diese Einstellung aktiviert, werden wähhrend der Überprüfung keine Fehler angezeigt (implizit error_reporting(0)). Falls deaktiviert, werden Fehler entsprechend der Einstellung von error_reporting() angezeigt.

enable_dl boolean

Sie können das dynamische Laden von PHP Erweiterungen mittels dl() für virtuelle Server oder per Verzeichnis an- und abschalten.

Der Hauptgrund dynmisches Laden abzustellen sind Sicherheitsüberlegungen. Mit dynamischen Laden ist es möglich, alle open_basedir Einschränkungen zu umgehen. Standard ist es, dynamisches Laden zu erlauben, außer wenn Sie den Safe Mode benutzen. Im Safe Mode ist es nicht möglich dl() zu benutzen.

max_execution_time integer

Legt die maximale Zeit in Sekunden fest, die ein Skript laufen darf, bevor der Parser die Ausführung stoppt. Diese Einstellung hilft zu verhindern, dass schlampig geschriebene Skripte Ihren Server lahmlegen. Der Standardwert für diese Einstellung ist 30 Sekunden. Wird PHP von der Kommandozeile ausgeführt so ist der Vorgabewert 0.

Die maximale Ausführungszeit beeinhaltet keine Systemaufrufe, Streamoperationen, usw. Weitere Details finden Sie bei der set_time_limit() Funktion.

Bei aktiviertem Safe Mode können Sie diese Einstellung nicht mit ini_set() verändern. Die einzige Möglichkeit diese Beschränkung zu umgehen besteht darin, entweder den Safe Mode abzustellen, oder das Zeitlimit in der php.ini zu verändern.

Ihr Webbserver kann andere Timeout-Einstellungen haben die ebenfalls die PHP-Ausführung unterbrechen können. Apache verfügt über eine TimeOut-Direktive und IIS hat eine CGI timeout Funktion. Beide sind als Standardwert auf 300 Sekunden eingestellt. Genauere Informationen finden Sie in der Dokumentation Ihres Webservers.

max_input_time integer

Legt die maximale Zeit in Sekunden fest, die ein Skript verbrauchen darf, um Eingabedaten (wie POST, GET und Dateiuploads) zu verarbeiten. Die Zeit wird gemessen, wenn die Daten auf dem Server empfangen bis zum Start der Skriptausführung.

max_input_nesting_level integer

Legt die maximale Verschachtelungtiefe für Eingabevariablen (z.B. $_GET, $_POST ...) fest.

max_input_vars integer

Wie viele Eingabe-Variablen maximal angenommen werden. Diese Direktive verhindert die Nutzung von Hashtable Kollisionen für eine Denial of Service Attacke. Wenn mehr Eingabe-Variablen gesendet werden, als mit dieser Direktive erlaubt, wird ein Fehler der Stufe E_WARNING geworfen und weitere Eingabe-Variablen werden nicht angenommen. Dieses Limit wird für mehrdimensionale Eingabe-Arrays für jede Nesting-Ebene einzeln berechnet.

magic_quotes_gpc boolean
Warnung

Dieses Feature ist seit PHP 5.3.0 DEPRECATED (veraltet) und seit PHP 5.4.0 ENTFERNT.

Legt die magic_quotes Einstellungen für GPC (Get/Post/Cookie) fest. Ist diese Einstellung auf on, werden alle ' (einzelne Anführungszeichen), " (doppelte Anführungszeichen), \ (Backslash) und NUL's automatisch mit einem Backslash geschützt.

Hinweis:

PHP 4 werden auch $_ENV Variablen geschützt.

Hinweis:

Steht die Einstellung für magic_quotes_sybase ebenfalls auf ON, überschreibt diese magic_quotes_gpc komplett. Beide Einstellungen aktiviert bewirken, dass nur einzelne Anführungszeichen durch '' geschützt werden. Doppelte Anführungszeichen, Backslashes und NUL's werden nicht verändert und verbleiben im Originalzustand.

Siehe auch get_magic_quotes_gpc()

magic_quotes_runtime boolean
Warnung

Dieses Feature ist seit PHP 5.3.0 DEPRECATED (veraltet) und seit PHP 5.4.0 ENTFERNT.

Falls magic_quotes_runtime aktiviert ist, werden die meisten Funktionen die Daten von einer beliebigen externen Quelle zurückgeben, inklusive Datenbanken und Textdateien, die in den Daten enthaltenen Anführungszeichen mit einem Backslash geschützt zurückgeben. Falls zusätzlich magic_quotes_sybase auf on steht, werden einzelne Anführungszeichen mit einem einzelnen Anführungszeichen statt einem Backslash geschützt.

Funktionen die von magic_quotes_runtime betroffen sind (ohne die Funktionen aus PECL):

zend.enable_gc boolean

Aktiviert bzw. deaktiviert die Speicherbereinigung zirkulär abhängiger Referenzen.

add a note add a note

User Contributed Notes 3 notes

up
3
rubo77
9 months ago
I think it is important to mention that some distributions apply bugfixes for older versions so "Available since PHP 5.3.9" is not reliable, for example:
debian squeeze implemented the directive max_input_vars in PHP 5.3.3-7+squeeze7 (see http://ftp-master.metadata.debian.org/changelogs/main/p/php5/php5_5.3.3-7+squeeze17_changelog )
up
3
horst at pepperzak.com
3 years ago
Caution: Although magic_quotes_gpc is flagged as dreprecated the default value is still "ON". So you will explicitly have to put

magic_quotes_gpc = Off

into your php.ini. Commeting out the magic_quotes_gpc-line will not turn magic_quotes_gpc off.
up
-7
Anonymous
5 months ago
The max_input_vars limit can be overcome by reading the input in raw, i.e.:
<?php
  $sRawInputData
= fopen( 'php://input' );
?>
To Top