Wie erhöhen Sie den PHP-Speicher Ihrer Website?
Die Meldung Allowed memory size of … bytes exhausted bedeutet, dass ein einzelner PHP-Prozess mehr Arbeitsspeicher angefordert hat, als das Limit zulässt. Sie erhöhen dieses Limit im Kontrollpanel Ihres Hostings, pro Website; bei WordPress kann eine Zeile in wp-config.php hinzukommen. Sehen Sie aber zuerst nach, welche Datei in der Fehlermeldung steht. Tritt der Fehler plötzlich auf, steckt meistens ein Plugin oder ein Import dahinter, und Erhöhen verdeckt das Problem nur.
Was die Fehlermeldung sagt
Vollständig: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes), gefolgt von einem Dateinamen und einer Zeilennummer.
- Die erste Zahl ist das aktuelle Limit in Bytes. 134217728 Bytes sind 128 MB.
- Die zweite Zahl ist das, was PHP in diesem Augenblick noch zusätzlich belegen wollte. Über den Gesamtverbrauch sagt sie nichts.
- Die Datei und die Zeile zeigen, wo der Speicher ausging.
Auf einer Live-Website sieht der Besucher meistens nur eine weiße Seite, einen Fehlercode 500 oder bei WordPress die Meldung über einen kritischen Fehler. Die eigentliche Meldung steht dann im Fehlerprotokoll. Mehr über diese Statuscodes lesen Sie in was die Fehlercodes 403, 404 und 500 bedeuten.
Wann es auftritt
Bei schweren Pagebuildern, großen Importen, Onlineshops mit vielen Produkten und beim Verarbeiten großer Fotos. Selten bei einer gewöhnlichen Unternehmenswebsite.
Wo Sie das Limit einstellen
- Im Kontrollpanel. Bei WWW4 stellen Sie das PHP-Speicherlimit pro Website im Kontrollpanel ein, das Sie aus dem Kundenportal heraus öffnen. Wie hoch Sie gehen können, hängt vom Paket ab. Das ist der zuverlässigste Weg.
- In wp-config.php, für WordPress. Fügen Sie oberhalb der Zeile, die sagt, dass Sie mit dem Bearbeiten aufhören sollen, diese Zeile ein: define('WP_MEMORY_LIMIT', '256M'); WordPress fordert von sich aus nur 40 MB für die Vorderseite der Website an, 64 MB bei einer Multisite und 256 MB in der Verwaltung. Steht das Limit des Servers bereits höher, ändert diese Zeile nichts. Lässt das Hosting keinen höheren Wert zu, ebenfalls nicht.
- In einer Datei .user.ini. Auf Hosting, das das zulässt, legen Sie in das Hauptverzeichnis der Website eine Datei .user.ini mit der Zeile memory_limit = 256M. PHP liest diese Datei standardmäßig nur alle fünf Minuten neu ein. Die zentrale php.ini des Servers können Sie auf Shared Hosting nicht selbst anpassen.
Eine Zeile mit php_value in der Datei .htaccess funktioniert nur, wenn PHP als Apache-Modul läuft. Andernfalls liefert die ganze Website sofort einen Fehler 500.
Prüfen, ob der neue Wert gilt
In WordPress sehen Sie in der Verwaltung unter Werkzeuge beim Website-Zustand nach, auf dem Tab mit dem Bericht, im Abschnitt Server: Dort steht das PHP-Speicherlimit, das tatsächlich in Kraft ist.
Warum Erhöhen nicht immer die Lösung ist
Eine Website, die plötzlich viel mehr Speicher braucht, hat meistens ein Problem statt eines Mangels: ein Plugin, das alles auf einmal lädt, ein Import, der nicht in Teilen arbeitet, eine Funktion, die sich endlos selbst aufruft. Im letzten Fall ist jedes Limit irgendwann aufgebraucht, egal wie hoch Sie es setzen. Erhöhen verdeckt das Problem.
Das Limit gilt außerdem pro PHP-Prozess, und jeder Besucher, der gleichzeitig eine Seite aufruft, startet einen eigenen Prozess.
So finden Sie die Ursache
- Lesen Sie den Pfad in der Fehlermeldung. Steht dort wp-content/plugins, gefolgt von einem Ordnernamen, ist das das Plugin, in dem der Speicher ausging. Meistens ist das auch der Schuldige, aber nicht immer: Manchmal füllt ein anderes Plugin den Speicher.
- Sehen Sie sich das Fehlerprotokoll im Kontrollpanel an. In WordPress setzen Sie zusätzlich in wp-config.php WP_DEBUG und WP_DEBUG_LOG auf true und WP_DEBUG_DISPLAY auf false. Die Fehler landen dann in debug.log im Ordner wp-content. Schalten Sie das nach der Suche wieder aus.
- Prüfen Sie, was sich geändert hat. Ein Update, ein neues Plugin, ein großer Import, ein neues Theme. Testen Sie Updates künftig zuerst; wie das geht, lesen Sie in WordPress-Updates sicher durchführen.
- Deaktivieren Sie die Plugins eines nach dem anderen, bis der Fehler verschwindet. Kommen Sie nicht mehr in die Verwaltung, benennen Sie per FTP oder über die Dateiverwaltung den Ordner des verdächtigen Plugins um.
- Messen Sie den Verbrauch. Das Plugin Query Monitor zeigt pro Seite, wie viel Speicher verbraucht wurde.
- Verkleinern Sie die Aufgabe. Importieren Sie in kleineren Teilen.
Die Grenze Ihres Pakets
Das maximale Speicherlimit gehört zu Ihrem Hosting-Paket. Das kleinste Paket ist für eine Unternehmenswebsite oder einen Blog gedacht; ein Onlineshop oder eine Website mit einem schweren Pagebuilder verlangt ein größeres Paket. Die Pakete finden Sie bei den Hosting-Preisen. Stoßen Sie auch dort dauerhaft an das Maximum, ist ein eigener Server der nächste Schritt: Lesen Sie, was ein VPS ist und wann Sie umsteigen.
Häufig gestellte Fragen
Ich habe das Limit erhöht, aber der Fehler bleibt. Was nun?
Sehen Sie sich die erste Zahl in der Fehlermeldung an. Hat sie sich nicht geändert, wird Ihre Einstellung nicht angewendet: Die Datei liegt im falschen Ordner oder Ihr Paket lässt keinen höheren Wert zu. Ist die Zahl gestiegen und der Speicher geht trotzdem aus, suchen Sie ein Leck und keinen Mangel.
Wie viel PHP-Speicher braucht WordPress?
WordPress selbst braucht wenig. Die Plugins und das Theme bestimmen den Verbrauch; messen Sie also Ihre eigene Website, statt sich auf eine Faustregel zu verlassen.
Ist das Speicherlimit dasselbe wie die Upload-Größe?
Nein. Uploads hängen von upload_max_filesize und post_max_size ab. Einen fehlgeschlagenen Upload lösen Sie nicht mit mehr Speicher.
Klappt es nicht?
Schicken Sie uns über Kontakt den Domainnamen, die vollständige Fehlermeldung und den Zeitpunkt. Wir sehen mit Ihnen in das Protokoll des Servers.
Läuft es bei Ihnen anders als oben beschrieben, oder bleiben Sie hängen? Nehmen Sie Kontakt auf und halten Sie Ihre Domain oder Kundennummer bereit, dann schauen wir gemeinsam nach.
Support kontaktieren