Wie man das PHP Memory Limit in WordPress erhöht

Zu wenig PHP Memory Limit? Wie erhöht man das PHP Memory Limit? Was ist das eigentlich? Es ist ein bekanntes Problem, das immer wieder auftritt. Gerade heute wurde ich von einer Kundin danach gefragt und versuche hier mal etwas Licht in die Sache zu bringen. Oft treten ganz plötzlich Fehlermeldungen auf, die auf das sogenannte (nicht ausreichende) PHP Memory Limit hinweisen. Das passiert meistens nach einem Update, oder nach der Installation eines Plugins.

Die typischen Fehlermeldungen sind dabei:

“Fatal error: Allowed memory size of XXXX bytes exhausted (tried to allocate XXXX bytes) in…”

oder

“Out of memory (allocated XXXX) (tried to allocate XXXXX bytes) in…”

 

Was ist das denn eigentlich?

Bei der Nutzung von PHP-Anwendungen wird (meist vom Hoster) ein sogenanntes Memory Limit festgelegt. Dieses Limit beschreibt den maximalen (Arbeits-)Speicherverbrauch den die gesamte Website (alle PHP Scripts) auf dem Server verursachen darf. Unter 64MB braucht man bei einer WordPress Installation mit ein paar Plugins eigentlich gar nicht anzufangen, wenn es noch Spaß machen soll.

Erscheint nun eine der o.g Fehlermeldungen, so versucht die WordPress-Installation mehr Speicher für sich zu beanspruchen als ihr gemäß dem  memory limit des Servers zusteht. Dafür kann es unterschiedliche Ursachen geben. Zum einen kann eine neue WordPress Version bereits mehr von diesem Speicher benötigen, als die Vorgängerversion, oder das eine oder andere Plugin frisst die Speicherressourcen auf. Der Fehler tritt dann nach einem Update oder einer Plugininstallation „ganz plötzlich“ auf.

Höhe des PHP Memory Limit feststellen

Möchte man Klarheit über den Auslastungszustand seines Servers haben, kann man ein kleines Plugin wie z.B. WP-Memory-Usage installieren. Nach der Installation zeigt es auf dem Dashboard der WordPress-Installation, eine Übersicht des Speicherverbrauchs an. Noch mehr und detailliertere Informationen zur Serverumgebung liefert das Plugin WP System Health.

Will man genau wissen, welches Plugin wieviele Ressourcen verbraucht, kann man sich zusätzlich das Plugin P3 (Plugin Performance Profiler) installieren.

Die bereitgestellte Höhe des PHP Memory Limit ist abhängig vom Hoster bzw. dem Hostingpaket, das man dort gekauft hat.

PHP Memory Limit erhöhen

Wie immer führen viele Wege nach Rom bzw. zur Erhöhung des Memory Limits. In diesem Fall sind es drei mögliche Wege. Ein bisschen Vorsicht ist hierbei geboten, da das fehlerhafte Umsetzen der genannten Schritte die komplette Website lahm legen kann. Also bitte nur ausführen, wenn Ihr wisst, was Ihr macht. Und denkt daran: Sicherungen/Backups können Nerven schonen ;-)

Weg 1 (Empfehlung):

Durch einen Eintrag in der Datei „wp-config.php“ des Blogverzeichnisses kann das Limit nach oben gesetzt werden. Dazu muss folgende Zeile an den Anfang des Codes eingefügt werden:

“define(‘WP_MEMORY_LIMIT’, ’256M’);”

256M steht für ein Memory Limit von 256MByte. Je nach Speicherbedarf des eigenen Blogs sowie den Vorgaben des Servers, können auch Werte wie 128M oder 64M ausprobiert werden. Wobei 64M schon sehr dürftig ist.

Weg 2:

Man begibt sich via FTP Client in das Stammverzeichnis (Root) seiner Website und öffnet die Datei: „.htaccess“

Anschließend ergänzt man sie mit folgender Zeile:

„php_value memory_limit 256M“

Wie gehabt kann anstatt 256M auch ein anderer Wert eingetragen werden.

Befindet sich im Stammverzeichnis noch keine „.htaccess“, so kann man diese auch selbst erstellen. Es muss lediglich mit einem Texteditor eine Datei mit genau dem Namen „.htaccess“ (ohne Anführungszeichen, aber der Punkt am Anfang ist wichtig!) erstellt werden. Anschließend wird sie ins Stammverzeichnis hochgeladen.

Weg 3:

Hierbei wird eine Datei namens „php.ini“ erstellt, welche wiederum in das WordPress (Stamm-)Verzeichnis hochgeladen wird. Erneut kann die Datei mit einem Texteditor erzeugt werden, wobei folgende Zeile enthalten sein muss:

„memory_limit=256M“

Kontrolle der Änderung

Hat das Umschreiben bzw. Erstellen der Dateien funktioniert, zeigt WP-Memory-Usage (oder System Health) den eingestellten Wert an. Beispielsweise 256MByte

Welche der gezeigten Methoden beim jeweiligen Hoster funktionieren muss individuell ausprobiert werden. Je nach Hoster ist es unter Umständen überhaupt nicht möglich das PHP Memory Limit manuell zu erhöhen. In dem Fall bleibt nur die Nachfrage beim Hoster und im dümmsten Fall der Wechsel zu einem anderen Provider.