Deine Plugins funktionieren nicht. Deine Seite wird nicht geladen. Du siehst immer wieder den Fehler „Allowed memory size exhausted“ (Erlaubte Memorygröße erschöpft) und es heißt immer wieder, dass du dein PHP-Memorylimit erhöhen sollst. Was ist das und wie löst du das?
Die PHP-Memorybegrenzung existiert, um zu verhindern, dass RAM-belastende Ressourcen deine Seite zum Absturz bringen. Aber manchmal kann es auch zu Problemen führen, z.B. wenn du ein Plugin installierst, das ein wenig mehr Leistung benötigt und am Ende den Zugriff auf deine Seite unterbricht.
Wenn du aufgrund von Memorymangel auf den White Screen of Death stößt, musst du dieses Problem sofort beheben lassen. Schauen wir uns an, was das PHP-Memorylimit ist und wie man es beheben kann, wenn man an die Ressourcengrenze stößt.
Was ist das PHP-Memorylimit?
Das PHP-Memorylimit legt die maximale Menge an Memory fest, die ein Skript auf deiner Webseite verwenden kann. Aber was genau bedeutet das?
Deine Webseite wird von Servern betrieben, die nur spezialisierte Computer sind, die das Backend einer Webseite am Laufen halten. Wie normale Computer verwenden sie Komponenten wie Prozessoren, Speicher und RAM – auch bekannt als Memory.
RAM ist einer der wichtigsten Teile eines Servers. Jedes Programm und jede Anwendung beansprucht ein wenig Memory. Je intensiver das Programm, desto mehr Memory benötigt es. Wenn dir der Memoryplatz ausgeht, läuft deine Seite nur noch schleppend oder weigert sich sogar zu laden.
Webanwendungen wie WordPress-Plugins sind nur eines von vielen Dingen, die Memoryplatz auf deinem Server beanspruchen können. Normalerweise nehmen diese Anwendungen nur sehr wenig Memoryplatz in Anspruch und du wirst nie Probleme haben; es sei denn, dein Host hat dir sehr wenig Arbeitsspeicher zur Verfügung gestellt.
Aber es gibt auch eine harte Obergrenze dafür, wie viel Memory das Skript einer PHP-Anwendung auf deinem Server beanspruchen kann. Wenn eines dieser Skripte das Limit überschreitet, wirst du auf Probleme stoßen.
Du wirst einen White Screen of Death sehen und es kann sogar dazu führen, dass der Zugriff auf deine gesamte Website gesperrt wird.
Warum gibt es ein Memorylimit?
Stell dir vor, auf deinem Server geht etwas schief. Vielleicht bleibt ein Programm in einer Endlosschleife stecken und nimmt einfach immer mehr Memoryplatz in Anspruch, oder ein Angreifer trickst dich aus, indem er etwas installiert, das ein bösartiges Skript ausführt, um all deine Ressourcen in Beschlag zu nehmen.
Wenn PHP-Prozesse außer Kontrolle geraten, dient das Memorylimit dazu, dem ein Ende zu setzen, bevor sie deinen ganzen Server zum Absturz bringen oder alle deine zugewiesenen Ressourcen für den Monat auffressen können.
Die meisten legitimen PHP-Skripte sind sehr klein. Jedes einzelne Skript sollte nur eine winzige Menge Arbeitsspeicher beanspruchen, es sei denn, du hast ein ungewöhnliches Programm, das mehr Ressourcen in einem Skript benötigt, als die meisten Programme als Ganzes jemals benötigen werden. Diese Art von Plugins gibt es sicherlich, aber sie sind selten.
Wenn dir der Memoryplatz ausgeht, besteht eine vernünftige Chance, dass ein kaputtes oder bösartiges PHP-Programm vorhanden ist, und so tritt der Memorylimit-Fehler auf.
Aber manchmal benutzt du wirklich ein großes Plugin, das zusätzlichen Memory benötigt. Einige Webhoster setzen das PHP-Memorylimit auch sehr niedrig, so dass der Fehler auch dann auftreten kann, wenn du keine besonders energiefressende Anwendung installierst.
So oder so, du wirst schnell auf den Memoryfressenden Fehler stoßen.
Der Memory Exhausted Fehler
Du bist also auf den Memory Exhausted Fehler gestoßen. Wahrscheinlich wirst du auf einen White Screen of Death stoßen, entweder auf deiner gesamten Webseite oder beim Ausführen bestimmter Funktionen wie dem Absenden eines Formulars.
Das ist ein ernsthaftes Problem, besonders wenn es deine gesamte Webseite betrifft. Jede Stunde, die vergeht, ist eine Menge verlorener Besucher.
Der Übeltäter ist wahrscheinlich ein sehr großes oder falsch konfiguriertes Plugin. Da WordPress-Plugins in PHP kodiert sind, unterliegen sie dem PHP-Memorylimit.
Du kannst das Plugin, das das Problem verursacht, finden, indem du deine Plugins eines nach dem anderen deaktivierst, bis der Zugriff auf deine Seite wieder möglich ist. Wenn du es identifiziert hast, überprüfe die Dokumentation und schaue nach, ob dort steht, wie viel Memory es benötigt, um zu laufen.
Vielleicht möchtest du ein Ticket an den Plugin-Entwickler schicken, wenn es keinen Hinweis darauf gibt, dass es ein außergewöhnlich leistungsstarkes Plugin sein soll, da es fehlerhaft sein könnte. Denk daran, dass das PHP-Memorylimit nur einzelne Skripte betrifft, nicht das Plugin als Ganzes. Es besteht also eine gute Chance, dass ein Skript in einer Endlosschleife oder einem anderen Glitch stecken geblieben ist.
Das Problem könnte auch bei dir liegen. Vielleicht ist dein Memorylimit viel zu niedrig eingestellt, so dass nur die kleinsten Plugins korrekt laufen können. Oder vielleicht versuchst du ein Plugin zu installieren, das von dir verlangt, das Limit höher als normal anzuheben.
In beiden Fällen solltest du versuchen, das PHP-Memorylimit zu erhöhen. Lass uns dir jetzt zeigen, wie man das macht.
Wie man das PHP-Memorylimit in WordPress erhöht
Bevor du irgendetwas machst, gibt es einen einfachen Weg zu überprüfen, wie hoch dein aktuelles PHP-Memorylimit ist, ohne dass du dich durch irgendwelche Dateien wühlen musst. Wenn du WordPress 5.2 oder neuer verwendest, gehe in deinem Backend auf Tools > Site Health.
Installiere das Health Check & Troubleshooting Plugin, wenn du es nicht siehst.
Unter dem Tab Info siehst du dein PHP-Memorylimit. Wenn es bereits ziemlich hoch gesetzt ist, könnte eines deiner Plugins einfach kaputt sein.
Wenn du jedoch feststellst, dass es sehr niedrig ist, musst du es erhöhen, indem du deine wp-config.php-Datei bearbeitest.
Das wird das Problem nicht immer beheben. Letztendlich wird das PHP-Memorylimit von deinem Webhoster festgelegt. Manchmal ist deine Seite so eingestellt, dass sie weniger Ressourcen verbraucht, als dein Host anbietet, und eine Anpassung deiner Dateien kann das Problem beheben. Aber wenn ihr hardcodiertes Limit zu niedrig ist, kannst du es nicht wirklich erhöhen, egal wie hoch du die Zahl manuell einstellst.
Aber es ist einen Versuch wert, also lass uns die Datei jetzt bearbeiten.
Was ist Kinsta’s PHP-Memorylimit?
Benutzer aller Kinsta-Pläne genießen ein Standard-PHP-Memorylimit von 256 MB. Das sollte mehr als genug für 99% aller WordPress-Plugins sein und ist in der Tat weit mehr, als die meisten Plugins jemals brauchen sollten.
Wenn du mit Kinsta-Hosting eingerichtet bist und deine Seite richtig konfiguriert ist, solltest du niemals auf einen Memorylimit-Fehler stoßen. Das maximale Limit wird normalerweise automatisch in den Dateien gesetzt, ohne dass du eingreifen musst.
Es könnte sich trotzdem lohnen, es durchzugehen und sicherzustellen, dass es nicht versehentlich zu niedrig in den Einstellungen von WordPress gesetzt wurde. Es ist möglich, dass etwas die Anzahl verändert und die Anzahl der Ressourcen, auf die du Zugriff hast, verringert hat.
Wenn du immer noch Probleme hast, kannst du jederzeit den Kinsta-Support kontaktieren und um Hilfe bitten, das Problem zu beheben. Wir können dir helfen, eine falsch konfigurierte Datei zu identifizieren, die du vielleicht übersehen hast.
Wie man das PHP-Memorylimit per FTP ändert
Um die Datei wp-config.php zu bearbeiten, musst du mit FTP oder SFTP auf deine Seite zugreifen. Damit kannst du sensible interne Dateien bearbeiten, die die Funktionsweise deiner Seite beeinflussen.
Du änderst nur eine Zeile, es sollte also einfach sein. Beginne damit, FileZilla oder einen anderen FTP-Client deiner Wahl zu installieren. Es ist kostenlos, also mach dir keine Sorgen. Bevor du anfängst, solltest du auch ein Backup deiner Webseite machen. Es ist leicht, versehentlich etwas kaputt zu machen, während du Core-Dateien bearbeitest.
Öffne FileZilla und trage deine Zugangsdaten ein. Nach ein paar Augenblicken solltest du dich mit deiner Seite verbinden.
Klicke auf den public folder und suche wp-config.php. Wenn du public oder public-html nicht finden kannst, heißt sie vielleicht root, www oder der Name deiner Webseite.
Öffne wp-config. Achte darauf, nichts außer der PHP-Memorylimit-Zeile zu editieren, da dies eine sensible Datei ist und deine Webseite kaputt machen könnte. Schaue sie durch, bis du diese Zeile findest: define('WP_MEMORY_LIMIT', '256M');
Ändere die dort angegebene Nummer, Speichere die Datei und schließe FileZilla. Alles erledigt!
Wie man das PHP-Memorylimit in cPanel ändert
Einige Hosts lassen dich keine Dateien über FTP bearbeiten. Stattdessen geben sie dir vielleicht Zugang zum cPanel. Wenn das bei dir der Fall ist, keine Sorge – du kannst dein PHP-Memorylimit auch auf diese Weise ändern.
Erster Schritt: Logge dich im cPanel mit den Zugangsdaten ein, die du von deinem Host erhalten hast. Auf dem Startbildschirm siehst du eine Software Rubrik mit einem Select PHP Version Button.
Klicke darauf und am oberen Rand des Bildschirms siehst du Switch to PHP options. Scrolle nach unten, bis du memory_limit mit einem Dropdown-Menü siehst. Klicke es an und ändere es zu der Einstellung, die du willst. Klicke auf Apply und du bist fertig.
Nicht jeder wird die Select PHP Version Option haben. Stattdessen siehst du vielleicht den MultiPHP Ini Editor. Wenn das der Fall ist, werden deine Schritte ein wenig anders sein.
Darauf musst du klicken und im nächsten Fenster unter Configure PHP INI basic settings das Dropdown-Menü öffnen und deine Domain auswählen. Suche den Abschnitt memory_limit und gib die gewünschte Nummer ein. Klicke auf Apply, um deine Änderungen zu Speichern.
Du kannst auch versuchen, den Dateimanager von cPanel zu benutzen. Dies ist dem Zugriff auf deine Seite über FTP sehr ähnlich. Klicke File Manager unter der Rubrik Files auf deiner Hauptseite an. Finde deinen public/public-html Ordner (oder wie auch immer er heißen mag) und öffne wp-config.php.
Finde die Zeile WP_MEMORY_LIMIT wie im obigen Abschnitt beschrieben und ändere die Nummer so, wie du sie haben willst. Speichere deine Änderungen und stelle sicher, dass du sie anwendest, und das ist alles, was du tun musst.
Wie groß sollte das PHP Memorylimit sein?
Wenn du dein Memorylimit ändern willst, könnte dein erster Impuls sein, es auf 900 MB oder so zu setzen – so hoch du kannst. Aber das kann auch eine sehr schlechte Idee sein.
Sollte ein Skript auf deiner Seite kaputt gehen, könnte es schnell außer Kontrolle geraten und deinen ganzen Server zum Absturz bringen. Selbst wenn deine Seite auf leistungsstarker Hardware gehostet wird, könnte ein Skript, das den gesamten Memory verbraucht, immer noch ernsthafte Probleme verursachen.
Falsch konfigurierte Skripte, die ungewöhnlich anstrengend sind, aber nicht kaputt genug, um Probleme zu verursachen, könnten ebenfalls unbemerkt bleiben. Die meisten PHP-Skripte sind sehr klein, und der Memorylimit-Fehler dient als Warnzeichen, dass im Backend etwas schief läuft. Stell ihn zu hoch ein, und du kannst die Skripte durcheinander gebracht haben, die deine Seite verstopfen, ohne es jemals zu merken.
Du solltest dein PHP-Memorylimit so niedrig wie möglich setzen, während du deiner Seite immer noch erlaubst, normal zu funktionieren.
128 MB ist eine gute Grundlinie. Das ist eine angemessene Memorymenge, die für die meisten intensiven Plugins ausreicht. Wenn du weißt, dass du etwas mehr Leistung brauchst, decken 256 MB auch die schwersten Plugins ab. Und wenn du sicher weißt, dass du ein echtes Kraftpaket hast, sind 512 MB das absolute Maximum, auf das du es einstellen solltest. In 90% der Fälle solltest du das Memorylimit nie über 256 MB anheben müssen.
Was ist, wenn das Ändern des Memorylimits nicht klappt?
Wenn du nach dem Bearbeiten deiner PHP-Datei immer noch auf den Memoryfehler stößt, liegt eines von zwei Problemen vor: dein Host hat sehr wenig Ressourcen zugeteilt, oder es gibt ein PHP-Skript auf deinem Server, das viel zu viel Memory belegt.
Auch hier solltest du deine Plugins durchgehen und deaktivieren, bis du den Schuldigen identifiziert hast. Bei 128-256 MB Memory sollte kein Plugin so viel Platz belegen, ohne es irgendwo in der Dokumentation zu erwähnen. Deaktiviere es und benachrichtige die Plugin-Autoren darüber, was passiert ist.
Tritt der Fehler auch dann noch auf, wenn alle Plugins deaktiviert wurden? Es muss ein Konflikt oder eine andere PHP-Anwendung vorliegen, die das Problem verursacht. Das ist mehr, als du alleine bewältigen kannst, also frage deinen Webhoster um Hilfe.
Wenn das Problem überhaupt nicht auf ein Plugin zurückzuführen ist, liegt die Schuld wahrscheinlich bei deinem Host, der das Memorylimit zu niedrig gesetzt hat. Wahrscheinlich benutzt du Shared Hosting, das dafür berüchtigt ist, sehr wenig Memory zur Verfügung zu stellen – verständlicherweise, denn wenn eine Seite zu viel RAM verbraucht, verstopft das das gesamte System für Dutzende von anderen Webseiten.
Du hast hier nur die Wahl, auf einen Plan zu wechseln, der mehr Ressourcen zur Verfügung stellt. Das kann am Ende teuer werden, besonders wenn du nur versuchst, ein intensives Plugin auf einer neuen Seite zu installieren. Wenn du noch nicht viele Besucher hast, werden dir all die anderen Ressourcen, die du durch das Upgrade erhältst, nicht so viel helfen.
Du könntest auch zu einem Host wechseln, wie z.B. Kinsta, der von vornherein mehr Memoryplatz bietet.
Zusammenfassung
Die PHP-Memorygrenze existiert aus einem sehr legitimen Grund: du willst nicht, dass zweifelhafte Prozesse mehr RAM verbrauchen, als sie eigentlich sollten. Aber wenn du an die Grenze stößt und auf einen White Screen of Death stößt, während man ein legitimes Plugin benutzt, kann das ziemlich nervig sein.
Letztendlich hängt es von deinem Host ab, auf wie viel PHP-Memory du Zugriff hast. Wenn sie die Grenze zu niedrig setzen, ist es unmöglich, sie zu erhöhen.
Manchmal verbraucht deine Seite jedoch weniger Ressourcen, als du wirklich zur Verfügung hast. In diesem Fall ist es möglich, den Memory zu erhöhen. Versuche, ihn auf 128 oder 256 MB zu setzen (als Standardoption für alle Kinsta-Pläne), da du ihn nicht zu hoch setzen willst.
Wenn keine dieser beiden Methoden funktioniert, liegt das Problem wahrscheinlich eher an einem Mangel an zugewiesenen Ressourcen als an einer Einstellung, die geändert werden muss. Kontaktiere deinen Host und frage, wie du mehr bekommen kannst, oder wechsle zu einem neuen Host wie Kinsta, der dir mehr Memoryplatz bietet, als du jemals benötigen wirst.