tl;dr: Manuell gesetzte Wert oder die Default-Werte von WP_MEMORY_LIMIT
/WP_MAX_MEMORY_LIMIT
haben keinen Effekt, wenn WP_MEMORY_LIMIT
/WP_MAX_MEMORY_LIMIT
kleiner oder gleich als das Memory Limit von PHP (im Weiteren memory_limit
genannt) ist. Sie dienen dazu, zu niedrige Werte von memory_limit
dynamisch auf ein empfohlenes Minimum anzuheben.
- Die Konstante
WP_MEMORY_LIMIT
kann optional inwp-config.php
mitdefine('WP_MEMORY_LIMIT', 'XXXM');
gesetzt werden. - Die Konstante
WP_MAX_MEMORY_LIMIT
kann optional inwp-config.php
mitdefine('WP_MAX_MEMORY_LIMIT', 'XXXM');
gesetzt werden. - Ist
WP_MEMORY_LIMIT
nicht gesetzt, gilt für dessen Default-Wert:memory_limit
, sofern der Wert vonmemory_limit
nicht dynamisch änderbar ist,- 64 MB sofern es eine Multisite ist,
- 40 MB ansonsten.
- Ist
WP_MAX_MEMORY_LIMIT
nicht gesetzt, gilt für dessen Default-Wert:memory_limit
, sofern der Wert desmemory_limit
nicht dynamisch änderbar ist oder wenn er unbegrenzt (-1) oder größer gleich 256 MB ist,- 256 MB ansonsten.
- Die Default-Werte wurden in der Vergangenheit immer wieder angehoben.
WP_MEMORY_LIMIT
verändert überall mit Hilfe der Funktion ini_set() dynamischmemory_limit
, wennWP_MEMORY_LIMIT
größer als das aktuellememory_limit
oder wennWP_MEMORY_LIMIT
unbegrenzt (-1) ist.WP_MAX_MEMORY_LIMIT
verändert im Backend (genauer: immer dann, wenn die Funktion wp_raise_memory_limit() in unterschiedlichen Kontexten [admin, image] aufgerufen wird) mit Hilfe der Funktion ini_set() dynamischmemory_limit
, wennWP_MAX_MEMORY_LIMIT
größer als das aktuellememory_limit
oder wennWP_MAX_MEMORY_LIMIT
unbegrenzt (-1) ist.- Die Logik von
WP_MAX_MEMORY_LIMIT
läuft nach der Logik vonWP_MEMORY_LIMIT
, sodassWP_MEMORY_LIMIT
im Frontend undWP_MAX_MEMORY_LIMIT
im Backend greift. - Die oben beschriebene Logik findet zum Großteil in der Funktion wp_initial_constants() (
/wp-includes/default-constants.php
) sowie in wp_raise_memory_limit() (/wp-includes/functions.php
) statt. - Der Wert
memory_limit = XXXM
inphp.ini
definiertmemory_limit
(nach Neustart des Webdienstes). - Der Wert
php_value memory_limit XXXM
in.htaccess
definiertmemory_limit
für alle PHP-Dateien im Ordner oder dessen Unterordner, in dem sich die.htaccess
befindet. - Der Webserver kann verhindern, dass der Wert des Memory Limits mit ini_set() verändert wird oder einen vorgegebenen Wert überschreitet (siehe php_admin_value).
memory_limit
gilt pro Prozess: Eine Erhöhung vonmemory_limit
kann dazu führen, dass die Anzahl der parallelen PHP-Requests abnimmt. Der Wert sollte daher mit bedacht gewählt sein (256 MB, in Ausnahmefällen 512 MB).- Im WordPress-Backend unter Werkzeuge > Website-Zustand können die Werte von
memory_limit
(Abschnitt: Server), sowie vonWP_MEMORY_LIMIT
undWP_MAX_MEMORY_LIMIT
(Abschnitt WordPress-Konstanten) ausgelesen werden.