Manchmal macht man alles richtig, aber trotzdem werden einem Fehler in WordPress angezeigt. Fehler für die man selber vielleicht gar nichts kann, sondern im System und Server begründet sind. Oder auch in der Grundkonfiguration vor WordPress. Limitierungen, die erst mit einem wachsenden WordPress entstehen. Gott sei dank sind die meisten davon leicht zu lösen. So wie zum Beispiel das Problem des zu niedrigen PHP Memory Limits (Speicherlimit). Hier lernst du ihn zu erhöhen und auch zu verstehen.
Inhaltsverzeichnis:
Was ist das PHP Memory Limit?
Jedes Mal, wenn ein User eine Anfrage an Ihren Webserver stellt und für die Erzeugung der Webseite PHP (Scriptsprache fürs Web) benötigt wird, erzeugt er einen PHP-Prozess, der Teile des Arbeitsspeichers des Webservers belegt.
Die Aufgabe dieses PHP-Prozesses besteht darin, HTML zu erzeugen, das an den Browser des Users zurückgegeben wird: die eigentliche aufgerufene Webseite. Das PHP Speicherlimit ist die maximale Speichermenge, die dieser Prozess vom Arbeitsspeicher verwenden kann. Die Grenze ist als Schutz für den Server gedacht, so dass kein Prozess den Arbeitsspeicher des Webservers auslasten oder überlasten kann.
Wenn es in einem PHP-Skript einen Fehler gibt, wie zum Beispiel eine Endlosschleife, die ständig nach mehr RAM fragt, verhindert das Memory Limit, dass der gesamte Server lahmgelegt wird.
Ist das Speicherlimit zu niedrig, wird die WordPress – Webseite gegegebenfalls langsam oder es treten Fehler auf und gewünschte Funktionieren fallen aus.
Fehlermeldungen bei zu niedrigem PHP Memory Limit in WordPress
Wenn das Memory Limit überschritten wird, sieht man im WordPress Backend oder auch manchmal im Frontend auf der Webseite selber eine Fehlermeldung wie die folgende:
„Fatal error: Allowed memory size of XXXXXX bytes exhausted (tried to allocate XXXXXX bytes) in /srv/www/user/xy/wordpress/script.php on line 223″
oder auch auf deutsch
„Fataler Fehler: Erlaubte Speichergröße von XXXXXX Byte erschöpft (versucht, XXXXXX Byte zuzuweisen) in /home/user/public_html/wordpress/wp-includes/plugin.php in Zeile 223“
Diese Fehlermeldungen besagen, dass die erlaubte Menge Speicher überschritten wurde beim Versuch eine bestimmte Menge Speicher zu verwenden. Dazu wird dann noch ein Script angegeben. Allerdings ist dieses oft nicht aussagekräftig genug dazu um herauszufinden, wo das Problem tatsächlich liegt. Oft sind es Plugins, die den Speicherlimit in die Höhe treiben. Klassische speicherhungrige Plugins sind Shopsysteme wie WooCommerce oder Galerie-Plugins.
Liest man diese Fehlermeldung, weiß man auf jeden Fall wo das Problem liegt und kann sich auf die Fehlersuche machen.
Wie herausfinden, was bei WordPress viel Speicher frisst?
Eine gängige Herangehensweise ist es alle Plugins zu deaktivieren und dann einzeln nacheinander zu aktivieren. Sobald die Meldung wieder auftritt, weiß man, welches Plugin der Verursacher der Meldung oder auch der Speicherfresser ist.
Wie hoch kann man das PHP Memory Limit setzen?
Meist stellt sich die Frage nicht, wie hoch das Memory Limit theoretisch maximal sein kann. Hier sind eher die Grenzen vom Server bzw. dem Webhoster gesetzt. Dieser legt fest, was ihre Kunden maximal an Speicher reservieren dürfen. Aus eigener Erfahrung kann ich sagen, dass ich noch nie mehr als 256MB benötigt habe.
PHP Memory Limits von bekannten Webhostern
- All-Inkl: bis zu 512MB je nach Vertrag
- Strato: 256MB je nach Vertrag
- 1&1: 256MB bis 512MB je nach Vertrag
- HostEurope: ab 256MB
- one.com: 256MB
- Serverprofis: 512MB
- Mittwald: 256MB
Wie hoch ist mein PHP Memory Limit in WordPress aktuell?
Um herauszufinden, wie hoch der aktuelle Stand beim Speicherverbrauch in WordPress ist, kann man auf die Hilfe von Plugins zurückgreifen. Klar, wenn die Fehlermeldung auftritt, weiß man grob wie viel man verbraucht und das man ZU VIEL verbraucht. Aber wer genau analysieren will, der sollte schauen, welches Plugin wie viel verbraucht. Ganz genau geht das leider nicht, aber mit der oben genannten Methode der Deaktivierung und einzelnen Aktivierung von Plugins lässt sich hier einiges auslesen. Ich nutze für die Analyse das Plugin Server IP & Memory Usage Display. Es zeigt die aktuelle Nutzung des Arbeitsspeichers, das WordPress-Arbeitsspeicherlimit, die IP-Adresse und PHP-Version im Footer des Backend an.
3 Wege um das PHP Memory Limit zu erhöhen
Wie lässt sich nun aber die Höhe des Memory Limits anpassen? Hierzu gibt es mehrere Wege. Nicht alle funktionieren bei jedem. Hier legt der Webhoster wieder Grenzen fest. Hier in der Reihenfolge der Wahrscheinlichkeit, dass es funktioniert, die gängigsten Wege:
PHP Memory Limit über die wp-config.php anpassen
Man steuert die wp-config.php mit einem FTP Programm an und öffnet sie mit einem Editor.
Diese liegt im Hauptverzeichnis der WordPress-Installation. Dort befindet sich standardmäßig keine Direktive bezüglich des Memory Limits. Falls doch, passt man diese an. Wenn nicht, dann fügt man sie neu ein:
Am besten direkt nach dem öffnenden <?php folgende Direktive einfügen
define('WP_MEMORY_LIMIT', '256M');
Die Höhe des Limits muss natürlich selbst angepasst werden, je nachdem wie hoch es gesetzt werden soll. Man speichert dann die wp-config.php und prüft, ob die Fehlermeldungen verschwunden sind. Wenn nicht, scheint entweder das Limit falsch oder zu angegeben worden zu sein (in dem Fall mit dem Webhoster sprechen) oder aber die Angabe über die wp-config.php erzielt keine Wirkung. In diesem Fall sollten die folgenden Varianten getestet werden.
Speicherlimit über die .htaccess steuern
Die .htaccess-Datei liegt ebenso im Hauptverzeichnis der WP Installation. Man öffnet diese mit einem Editor.
Dort fügt man direkt am Anfang folgende Zeile ein:
php_value memory_limit 256M
Auch hier muss wieder die Höhe des Speicherlimits individuell vergeben werden.
Als Notnagel die php.ini mit einem PHP Memory Limit versehen
Wenn die beiden vorhergehenden Varianten beide nicht wirken, dann sollte man mit dem Webhoster sprechen oder noch den Versuch über die php.ini Datei versuchen. Diese liegt meist im Hauptverzeichnis der WordPress-Installation. Wenn nicht, kann man versuchen sie anzulegen. Es erlaubt aber nicht jeder Webhoster die Konfiguration des Webhostings über diesen Weg. Gerade Kunden mit günstigen Verträgen wird diese Möglichkeit häufig verwehrt.
Manche Webhoster bieten die Möglichkeit gar nicht. Auch hier ist ein Telefonat mit dem Webhosting-Anbieter sinnvoll.
Falls die php.ini vorliegt, führt eventuell die folgende Direktive zum Erfolg:
memory_limit = 256M
PHP Memory Limit zu niedrig für WooCommerce oder Theme
Manchmal erhält man gar keine Fehlermeldung vom System und die Site läuft einwandfrei, Themes oder Plugins wie WooCommerce machen uns aber darauf aufmerksam, dass ggfs. das Memory Limit zu niedrig ist. In dem Fall kann man entweder ganz entspannt bleiben und es darauf ankommen lassen, dass die Meldung proforma war und in Zukunft alles weiter so sauber läuft wie bisher…oder aber man baut vor und erhöht das Limit.
Die Hersteller dieser Themes oder Plugins wissen selbst, dass ihre Software speicherhungrig ist und wollen möglichen Supportanfragen aus dem Weg gehen, die sie erhalten würden, wenn ihre Kunden dauernd Meldungen wegen zu wenig Speicher erhalten würden. Dann lieber direkt den Speicher erhöhen lassen.
Katie
Danke Mann!! Mein Problem wurde gelöst.
Josef Demmel
Hallo, obwohl ich es im wp-config.php genauso geändert habe
und auch noch die php.ini mit gleichen Werten im Stammverzeichnis vorhanden ist, zeigt es mir auf meiner WP-Seite immer noch das Limit -1 an. Was läuft da falsch?
Danke im Voraus & Schöne Grüße
Josef
René Dasbeck Post author
Nicht jeder Webhoster lässt die Settings über wp-config.php oder auch htaccess zu. Da am besten den Webhoster anfragen.
D.R.
Problem gelöst, herzlichen Dank!
Johann
dankeschön, manchmal ist WordPress nicht so einfach wie es scheint. Dies löste mein Problem vollständig.
Daniel
dankeschön, problem erledigt dank euch!
Bewertung
Vielen Dank! Hatte auch Probleme mit mein WordPress Limit.