Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.
Name | Standard | Veränderbar | Changelog |
---|---|---|---|
assert.active | "1" | INI_ALL |
Seit PHP 8.3.0 veraltet. |
assert.bail | "0" | INI_ALL |
Seit PHP 8.3.0 veraltet. |
assert.warning | "1" | INI_ALL |
Seit PHP 8.3.0 veraltet. |
assert.callback | NULL | INI_ALL |
Seit PHP 8.3.0 veraltet. |
assert.quiet_eval | "0" | INI_ALL |
Entfernt in PHP 8.0.0 |
assert.exception | "1" | INI_ALL |
Vor PHP 8.0.0 war der Standardwert "0"
Seit PHP 8.3.0 veraltet.
|
enable_dl | "1" | INI_SYSTEM |
Dieses veraltete Feature wird in der Zukunft sicherlich entfernt. |
max_execution_time | "30" | INI_ALL |
|
max_input_time | "-1" | INI_PERDIR |
|
max_input_nesting_level | "64" | INI_PERDIR |
|
max_input_vars | 1000 | INI_PERDIR |
|
zend.enable_gc | "1" | INI_ALL |
|
zend.max_allowed_stack_size | "0" | INI_SYSTEM |
Verfügbar seit PHP 8.3.0. |
zend.reserved_stack_size | "0" | INI_SYSTEM |
Verfügbar seit PHP 8.3.0. |
fiber.stack_size | INI_ALL |
Verfügbar seit PHP 8.1.0. |
Hier eine kurze Erklärung der Konfigurationsoptionen:
assert.active
bool
Aktiviert die assert()-Auswertung. Um das Verhalten von assert() zu kontrollieren, sollte stattdessen zend.assertions verwendet werden.
Dieses Feature ist seit PHP 8.3.0 als DEPRECATED (veraltet) markiert. Von der Verwendung dieses Features wird dringend abgeraten.
assert.bail
bool
Beendet bei fehlgeschlagener Assertion die Ausführung eines Skripts.
Dieses Feature ist seit PHP 8.3.0 als DEPRECATED (veraltet) markiert. Von der Verwendung dieses Features wird dringend abgeraten.
assert.warning
bool
Erzeugt bei jeder fehlgeschlagenen Assertion eine PHP-Warnung.
Dieses Feature ist seit PHP 8.3.0 als DEPRECATED (veraltet) markiert. Von der Verwendung dieses Features wird dringend abgeraten.
assert.callback
string
Eine benutzerdefinierte Funktion, die bei fehlgeschlagenen Assertions ausgeführt wird.
Dieses Feature ist seit PHP 8.3.0 als DEPRECATED (veraltet) markiert. Von der Verwendung dieses Features wird dringend abgeraten.
assert.quiet_eval
bool
Dieses Feature wurde in PHP 8.0.0 ENTFERNT.
Verwendet während der Auswertung eines Assertion-Ausdrucks die aktuelle Einstellung von error_reporting(). Ist diese Einstellung aktiviert, werden während der Auswertung keine Fehler angezeigt (implizit error_reporting(0)). Falls deaktiviert, werden Fehler entsprechend der Einstellung von error_reporting() angezeigt.
assert.exception
bool
Erzeugt eine AssertionError-Exception für die fehlgeschlagene Assertion.
Dieses Feature ist seit PHP 8.3.0 als DEPRECATED (veraltet) markiert. Von der Verwendung dieses Features wird dringend abgeraten.
enable_dl
bool
Mit dieser Direktive kann das dynamische Laden von PHP-Erweiterungen mittels dl() ein- und ausgeschaltet werden.
Der Hauptgrund, das dynmische Laden abzustellen, sind Sicherheitsüberlegungen. Mit dem dynamischen Laden ist es möglich, alle open_basedir-Einschränkungen zu umgehen. Der Standardwert ist, das dynamische Laden zuzulassen.
max_execution_time
int
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 Standardwert 0
.
Auf Nicht-Windows-Systemen beeinhaltet die maximale Ausführungszeit keine Systemaufrufe, Streamoperationen usw. Weitere Details finden Sie bei der Funktion set_time_limit().
Ihr Webbserver kann andere Timeout-Einstellungen haben, die ebenfalls
die PHP-Ausführung unterbrechen können. Apache hat 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
int
Legt die maximale Zeit in Sekunden fest, die ein Skript verbrauchen
darf, um Eingabedaten wie POST, GET und Dateiuploads zu verarbeiten. Die
Zeitmessung beginnt, sobald PHP auf dem Server aufgerufen wird, und
endet, wenn die Ausführung beginnt. Der Standardwert ist
-1
, was bedeutet, dass stattdessen
max_execution_time
verwendet wird. Der Wert 0
bedeutet kein Zeitlimit.
max_input_nesting_level
int
Legt die maximale Verschachtelungtiefe für Eingabevariablen (z. B. $_GET, $_POST) fest.
max_input_vars
int
Wie viele
Eingabe-Variablen
maximal angenommen werden (dieses Limit wird auf die superglobalen
$_GET, $_POST und $_COOKIE separat angewandt). Die Verwendung dieser
Einstellung verringert die Möglichkeit von Denial-of-Service-Angriffen,
die Hash-Kollisionen nutzen. Wenn mehr Eingabe-Variablen gesendet
werden, als mit dieser Einstellung erlaubt ist, wird ein Fehler der
Stufe E_WARNING
ausgelöst und weitere
Eingabe-Variablen werden nicht angenommen.
zend.enable_gc
bool
Aktiviert bzw. deaktiviert die Speicherbereinigung zirkulär abhängiger Referenzen.
zend.max_allowed_stack_size
int
Der maximale native Stack-Speicherplatz, die das Betriebssystem dem Programm zugesteht. Der Versuch, mehr zu verbrauchen, führt typischerweise zu einem harten Absturz ohne leicht verfügbare Debugging-Informationen. Um die Fehlersuche zu erleichtern, löst die Engine einen Error aus, bevor es zu dem Absturz kommt (wenn das Programm mehr als zend.max_allowed_stack_size-zend.reserved_stack_size Bytes des Stacks verwendet).
Rekursive Aufrufe im benutzerdefinierten Code verbrauchen keinen nativen Stack-Speicher. Bei internen Funktionen und magischen Methoden ist dies jedoch der Fall. Eine sehr tiefe Rekursion, die diese Funktionen einbezieht, kann dazu führen, dass der gesamte verfügbare native Stack-Speicher aufgebraucht wird.
Mögliche Werte für diesen Parameter sind:
0
:
Automatische Erkennung des maximalen nativen Stack-Speicherplatzes, den
das Betriebssystem für das Programm zulässt.
Dies ist die Standardeinstellung.
Wenn die Erkennung nicht möglich ist, wird eine bekannte Systemvorgabe
verwendet.
-1
: Deaktiviert die Überprüfung der Größe des Stacks
in der Engine.
Da die Größe des Stacks von Fibers durch fiber.stack_size bestimmt wird, wird der Wert dieses Parameters anstelle von zend.max_allowed_stack_size verwendet, wenn die Stack-Nutzung während der Ausführung einer Fiber überprüft wird.
Hinweis:
Dies hat nichts mit Stack-Pufferüberläufen zu tun und stellt kein Sicherheitsfeature dar.
zend.reserved_stack_size
int
Die reservierte Größe des Stacks, in Bytes. Diese wird als Puffer von der maximal erlaubten Größe des Stacks subtrahiert, wenn die Größe des Stacks überprüft wird.
Mögliche Werte für diesen Parameter sind:
fiber.stack_size
int
Die native Größe des Stacks, die für jede Fiber zugewiesen wird, in Bytes.
Bei Systemen mit einer Zeigergröße von weniger als 8 Byte beträgt der Standardwert 1MiB, ansonsten 2MiB.