Bei manchen Webhostern kann der für WordPress verwendete Arbeitsspeicher durch einen Eintrag in der wp-config.php hochgesetzt werden. Das hängt aber vom Vertrag und Hoster ab.
WordPress definiert in der Datei wp-includes/default-constants.php
einige Konstanten (Variablen mit unveränderlichem Wert) und weist ihnen Standard-Werte zu. Diese Werte können durch einen Eintrag in der wp-config.php
wie z.B.
define( 'WP_MEMORY_LIMIT', '512M' );
überschrieben werden. In einer weiteren Zeile dieser Datei wird die Konstante verwendet, um mit der PHP-Funktion ini_set()
einen Laufzeitwert festzulegen:
ini_set( 'memory_limit', WP_MEMORY_LIMIT );
Umgangssprachlich ausgedrückt: Solange WordPress läuft, verwende bitte für den Konfigurationswert memory_limit
den von mir in der wp-config.php
festgelegten Wert von 512 Megabyte als Untergrenze für den Arbeitsspeicher.
Theoretisch könnte ich damit jeder WordPress-Installation einen beliebig großen Arbeitsspeicher zuweisen. Wenn sich auf einem Webserver im Shared Webhosting hunderte Anwender die Ressourcen eines einzelnen Servers teilen müssen, ist das natürlich nicht praktikabel. Hier legt der Webhoster eine Obergrenze fest, die durch eine weitere Serverkonfiguration nicht durch individuellen Einstellungen seiner Kunden überschrieben werden kann.
WordPress prüft mit einer eigenen Funktion wp_is_ini_value_changeable()
, ob eine Zuweisung eines Laufzeitwerts mit ini_set()
überhaupt möglich ist. Die Definition einer Konstanten in der wp-config.php
macht also nichts kaputt, wenn der Webhoster die Änderung des Wertes per ini_set()
nicht zulässt.
Beim WordCamp Europe 2022 wurde übrigens der Vorschlag gemacht, den Standardwerte für die Konstante WP_MEMORY_LIMIT
auf zeitgemäßere 128 Megabyte zu erhöhen. Leider ist auch dieser Vorschlag bisher anderen Prioritäten zum Opfer gefallen.
In der Praxis habe ich übrigens gesehen, dass Webhoster zwar vertraglich einen mit 512 Megabyte großzügig bemessenen Arbeitsspeicher zusichern, dem Kunden dann aber doch erst einmal nur ein Teil davon (128 MB) zugeweisen. Der Kunde hat dann, um den Vertrag zu erfüllen, die Möglichkeit, den Arbeitsspeicher selber z.B. durch eine Einstellung im Kundenmenü, eine eigene php.ini
-Datei oder aber den hier besprochenen Eintrag in der wp-config.php
hochzusetzen. Da viele Kunden darauf wahrscheinlich aus Unwissenheit oder Bequemlichkeit verzichten, kann der Webhoster die Server-Ressourcen dann auf noch mehr Kunden verteilen. Bei der Einrichtung einer neuen WordPress-Website sollte geprüft werden, ob es hierzu Einstellungsmöglichkeiten gibt und ob sich die aktuellen Werte hochsetzen lassen.
Fazit: Auch wenn es bei den meisten Webhostern keine Änderung bewirkt, kann man zumindest versuchen, das Limit für den Arbeitsspeicher über einen Eintrag in der wp-config.php
hochzusetzen.