Eine der häufigsten Fehlermeldungen bei WordPress ist der PHP Fatal error: Allowed memory size of xxx bytes exhausted in /verzeichnis/datei.php on line xxx. Wie kann man den Fehler beheben? Gibt es eine Lösung?
Die Fehlermeldung “Fatal error: Allowed memory size of bytes exhausted” tritt auf, wenn ein PHP-Script mehr Arbeitsspeicher benötigt, als auf dem Server erlaubt ist. Der zugrunde liegende Wert nennt sich memory_limit. Wird dieses Limit erreicht oder überschritten, bricht PHP den Prozess ab und gibt einen Fatal Error aus. WordPress versucht dann, mehr Speicher zu reservieren, als vom Server oder den WordPress-Einstellungen freigegeben ist.
Oft lässt sich der betroffenen Datei und der Zeilennummer in der Fehlermeldung entnehmen, ob ein Plugin, ein Theme oder ein WordPress-internes Modul den Fehler ausgelöst hat. Das kann bereits einen Hinweis auf die Ursache geben.
Das Memory Limit erhöhen
Je nach Serverkonfiguration und Anzahl der installierten Plugins verbraucht WordPress unterschiedlich viel PHP-Arbeitsspeicher. Man sollte also den Wert “memory_limit“ erhöhen, um die Fehlermeldung “Fatal error: Allowed memory size of bytes exhausted” zu beheben. Das Speicherlimit lässt sich leider nur erhöhen, wenn es der Hoster auch zulässt.
Viele Hoster bieten in ihren Tarifen die Möglichkeit, den Wert direkt in den PHP-Einstellungen im Kundenbereich zu ändern. Empfohlene Werte:
- mindestens 256M
- besser 512M
- bei großen Installationen 768M oder höher
Speicherlimit in der wp-config.php erhöhen
Falls der Hostinganbieter keine direkten Einstellungen bereitstellt, kann das Limit auch über die WordPress-Konfigurationsdatei erhöht werden.
Die Datei wp-config.php befindet sich im Hauptverzeichnis der WordPress-Installation. Sie sollte vor jeder Änderung unbedingt gesichert werden!
Die Datei wird mit einem einfachen Texteditor geöffnet und an einer geeigneten Stelle um die folgende Zeile ergänzt:
Nun setzt man die folgenden beiden Zeilen mit in die wp-config.php Datei.
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '256M');Am besten vor den MySQL Einstellungen, das sieht dann in der wp-config.php Datei so aus:
<?php
/**
* In dieser Datei werden die Grundeinstellungen für WordPress vorgenommen.
*
* Zu diesen Einstellungen gehören: MySQL-Zugangsdaten, Tabellenpräfix,
* Secret-Keys, Sprache und ABSPATH. Mehr Informationen zur wp-config.php gibt es
* auf der {@link http://codex.wordpress.org/Editing_wp-config.php wp-config.php editieren}
* Seite im Codex. Die Informationen für die MySQL-Datenbank bekommst du von deinem Webhoster.
*
* Diese Datei wird von der wp-config.php-Erzeugungsroutine verwendet. Sie wird ausgeführt,
* wenn noch keine wp-config.php (aber eine wp-config-sample.php) vorhanden ist,
* und die Installationsroutine (/wp-admin/install.php) aufgerufen wird.
* Man kann aber auch direkt in dieser Datei alle Eingaben vornehmen und sie von
* wp-config-sample.php in wp-config.php umbenennen und die Installation starten.
*
* @package WordPress
*/
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '256M');
/** MySQL Einstellungen - diese Angaben bekommst du von deinem Webhoster. */
/** Ersetze database_name_here mit dem Namen der Datenbank, die du verwenden möchtest. */
define('DB_NAME', 'XYZDatenbankname');
/** Ersetze username_here mit deinem MySQL-Datenbank-Benutzernamen */
define('DB_USER', 'XYZUsername');
/** Ersetze password_here mit deinem MySQL-Passwort */
define('DB_PASSWORD', 'XYZPassword');
/** Ersetze localhost mit der MySQL-Serveradresse */
define('DB_HOST', 'localhost');
/** Der Datenbankzeichensatz der beim Erstellen der Datenbanktabellen verwendet werden soll */
define('DB_CHARSET', 'utf8');
/** Der collate type sollte nicht geändert werden */
define('DB_COLLATE', '');
/**#@+
* Sicherheitsschlüssel
*
* Ändere jeden KEY in eine beliebige, möglichst einzigartige Phrase.
* Auf der Seite {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* kannst du dir alle KEYS generieren lassen.
* Bitte trage für jeden KEY eine eigene Phrase ein. Du kannst die Schlüssel jederzeit wieder ändern,
* alle angemeldeten Benutzer müssen sich danach erneut anmelden.
*
* @seit 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
/**#@-*/
/**
* WordPress Datenbanktabellen-Präfix
*
* Wenn du verschiedene Präfixe benutzt, kannst du innerhalb einer Datenbank
* verschiedene WordPress-Installationen betreiben. Nur Zahlen, Buchstaben und Unterstriche bitte!
*/
$table_prefix = 'wp_cms1';
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*/
define('WP_DEBUG', false);
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');Speicherwert festlegen und wp-config.php aktualisieren
Welcher Wert in der wp-config.php eingetragen wird, hängt von der jeweiligen Installation ab. Für die meisten WordPress-Seiten sollten jedoch mindestens 256M eingestellt werden. Mit 512M oder mehr ist man aktuell auf der sicheren Seite, insbesondere bei umfangreichen Themes oder speicherintensiven Plugins.
Nach dem Eintragen des gewünschten Werts wird die Datei gespeichert und wieder in das WordPress-Hauptverzeichnis hochgeladen.
Wenn der Hostinganbieter genügend Arbeitsspeicher zur Verfügung stellt und das Limit korrekt übernommen wurde, sollte die Fehlermeldung anschließend nicht mehr erscheinen. Bleibt das Problem weiterhin bestehen, kann es notwendig sein, den Tarif zu wechseln oder ein Paket mit höherem memory_limit zu nutzen.
Gängige PHP memory_limit-Werte (in M / MB)
Diese Werte findet man 2024 typischerweise bei Hosting-Anbietern:
| memory_limit | Bedeutung / Nutzung |
|---|---|
| 64M | sehr niedrig – kaum noch üblich, reicht nicht für WordPress |
| 128M | Minimum für einfache WordPress-Seiten ohne große Plugins |
| 256M | Standardwert bei vielen Hostern – gut für die meisten WP-Seiten |
| 512M | empfohlen für moderne Themes, Pagebuilder & WooCommerce |
| 768M | häufig bei leistungsstarken Paketen der Hoster verfügbar |
| 1024M (1G) | ideal für WooCommerce, Multisite, sehr große Installationen |
| 2048M (2G) | Profi-Hosting, High-Traffic-Sites, große Shops / Multisite-Setups |
Fatal error weiterhin vorhanden? Möglicherweise verursacht ein Plugin das Problem
Der „Allowed memory size exhausted“-Fehler kann auch durch ein Plugin ausgelöst werden, das ungewöhnlich viel Arbeitsspeicher verbraucht. In solchen Fällen empfiehlt es sich, alle Plugins testweise zu deaktivieren und sie anschließend nacheinander wieder zu aktivieren.
Tritt der Fehler beim Aktivieren eines bestimmten Plugins erneut auf, ist dieses mit hoher Wahrscheinlichkeit der Auslöser. In diesem Fall sollte das Plugin deaktiviert bleiben und – sofern möglich – durch eine ressourcenschonendere Alternative ersetzt werden.
Danke für die Hilfe! Hat mir sehr schnell und einfach weitergeholfen!
Danke! Das hat mir jetzt wirklich geholfen.
Du hast mir sehr geholfen, vielen Dank! Gruß Bernhard
Sehr gute Erklärung. Vielen Dank
Perfekte Lösung! Vielen Dank!