Vorhin habe ich Hilferuf eines Lesers bzw. Kollegen bekommen. Website aufgerufen und folgende Meldung begrüßte mich:
Fatal error: Allowed memory size of xyz bytes exhausted (tried to allocate 24 bytes) in /…/ on line xy
Der Speicher, der den PHP-Anwendungen zur Verfügung steht ist ausgeschöpft. Was kann man machen? Zuerst muss man entweder die Speicherbegrenzung erhöhen oder schauen wo man ein paar MByte freischaufelt. Lösungsansatz über die Deaktivierung von Plugins ging nicht, da man beim Aufruf des Admin-Bereichs die gleiche Fehlermeldung bekam.
Hier drei Lösungsmöglichkeiten, die in diesem Fall geholfen haben. Ich bin mir sicher das es noch einen halben Dutzend weiter gibt. 🙂
Speicher über die .htaccess erhöhen
Hat man den Zugriff auf die .htacces-Datei, dann kann man den Speicher für die PHP-Anwendungen erhöhen. Vorausgesetzt, der Hoster hat nicht diese Möglichkeit gesperrt. Hier habe ich dann einfach den zur Verfügung stehenden Speicher auf 96 MByte erhöht:
php_value memory_limit 96M
Speicher über die wp-config.php erhöhen
Möchte man nicht für alle PHP-Anwendungen, sondern nur für WordPress die Grenze erhöhen, dann notiert man folgenden Code in die wp-config.php:
define('WP_MEMORY_LIMIT', '96M');
Die deutsche Sprachdatei deaktivieren
Wenn man die Speichergrenze nicht erhöhen kann oder möchte, dann kann man immer noch in der wp-config.php den Zugriff auf die deutsche Sprachdatei …
define ('WPLANG', 'de_DE');
… einfach auskommentieren:
//define ('WPLANG', 'de_DE');
Das deaktivieren der deutschen Sprachdatei hat ein paar Megabyte frei geschaufelt, so dass man auch mit dieser Lösung ins Backend (Adminbereich) konnte.
Das Problem kam von jetzt auf gleich ohne größere Ankündigung. Im Gespräch erfuhr ich das er einen Serverumzug hinter sich hatte und auf dem neuen Server ein 64-bit Betriebssystem werkelt.
Bei meinen Serverumzügen durfte ich feststellen, dass der Umzug von einem 32-bit auf ein 64-bit System den benötigten Speicherbedarf von ca. 32 MByte auf 44 MByte erhöht hat. Was eine nicht zu vernachlässigende Größe ist.
Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienstleistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.
In der Tat frisst ein 64Bit Betriebssystem deutlich mehr PHP-Speicher. Erstmals aufgetreten ist dieses Phänomen mit WordPress 2.8 (siehe hierzu “Ursache des enormen Speicherbedarfs gefunden!” und “Enormer PHP-Speicherverbrauch – Ursache gefunden?!”).
Als weitere mögliche Maßnahme, um wieder Zugriff auf das Backend zu bekommen, funktionierte bei mir auch schon mal das Löschen der Dateien von aktiven Plugins über ftp. Muss allerdings in diesem Zusammenhang erwähnen, dass ich auch relativ viele Plugins einsetze.
Jetzt möchte ich (als PHP Nichtwirklichkenner) doch nachfragen: es genügt, wenn ich die Zeile define(‘WP_MEMORY_LIMIT’, ’96M’); in die wp-config.php einfüge? Gib es einen Platz wo sie hin muss oder ist das egal? 😉 K
@Karl,
das ist eigentlich egal, am besten notierst du dies direkt nach der Angabe für die deutsche Sprachdatei.
Ja das mit dem Speicher ist schon ärgerlich !
Vr allem, wenn man mal längere Zeit nicht im Blog tätig war und nach Tagen merkt, dass diese Fehlermeldung auftritt ….. 😳
[…] heisst? Gewusst wie: gute Lösungen stellt uns Perun vor, unter dem Motto: WordPress, Speicher überlaufen – was tun? […]
Ich hätte auch als erstes via FTP Plugins gelöscht bzw. den kompletten Ordner umbenannt.
Mir ist so etwas noch nicht passiert. Aber vielleicht wäre es wohl gar nicht verkehrt ein Script zu haben mit der man quasi in einen Notbetrieb gehen kann, vergleichbar mit dem abgesicherten Modus von Windows.
Das Script müsste ja nicht sehr viel können. Plugins deaktivieren und ein paar Optionen ändern.
Hallo Ralf,
Schneller ist das nicht, zudem kann mit einem Blick in die .htaccess und wp-config.php auch nachschauen ob dort nicht evtl. ein zu niedriger PHP-Speicher-Wert eingetragen ist.
[…] alle die ebenfalls mit diesem Problem konfrontiert sind, kann ich den Artikel von Perun zu diesem Thema empfehlen. Weitere Infos dazu gibt es auch bei WordPress […]
Ist das eigentliche Problem nicht der Hoster? Viele Hoster stellen nur 40 MB für PHP zur Verfügung (meiner: 1+1 leider auch). Alle Versuche, da mal etwas mehr z.V. gestellt zu bekommen sind leider gescheitert (ist halt Massenmarkt, da gibt es keine Ausnahmen, weil für den Hoster zu teuer).
Kennt jemand Hoster, die Verständnis für Blogger haben und gleich 96 MB o.ä. zur Verfügung stellen?
Jürgen Schnick
@Jürgen
Bei meinem Hoster alfahosting.de kann ich im Multipaket in der wp-config.php 96MB eintragen und bekomme die dann auch bereit gestellt.
Also meine Erfahrung ist, dass die Versuche über die .htaccess bzw wp-config.php nur selten funktionieren. Wenn die entsprechende Fehlermeldung erscheint, erst einmal via FTP das auslösende Plugin löschen, damit der Blog wieder erreichbar ist. Danach dann beim Hoster um mehr Speicherplatz bitten. Viele kleine Hoster machen das gerne und ohne Probleme.
Hallo Dirk,
Es funktioniert bei meinem Provider all-inkl und hat bei dem Kollegen funktioniert, warum soll ich mir dann Gedanken machen, wie es bei einem Hoster funktioniert, der seine Kunden gängelt. Man sollte sich immer bemühen, die beste Lösung umzusetzen.
es ist wesentlich einfacher und schneller die deutsche Sprachdatei zu deaktivieren (zwei Schrägstriche eintippen), als bei einem nicht-erreichbaren Blog nach dem schuldigen Plugin suchen. Das kann man dann, wenn das Blog wieder erreichbarer ist, viel effektiver machen, weil man dann genau durch Hilfe von z. B. WP-Memory-Usage genau auslesen kann.
[…] Perun.net gibt es auch noch einen Artikel zu Memory-Problemen. Hier wird empfohlen, die Spracheinstellungen […]
Moin moin Perun,
wenn der Fehler “einfach so” auftaucht, stimmt das natürlich. Aber aus meiner Erfahrung verabschiedet sich WordPress meistens, wenn man ein neues PlugIn aktiviert. Dann weiß man ja, wer der Verursacher ist und kann diesen direkt wieder löschen. Danach beginnt dann die Fehlersuche, bzw. die Kommunikation mit dem Hoster.
Danke für den Tipp mit all-inl.com
Gruß Dirk
[…] Speicher verbraucht. Wer also selbst mit Problem konfrontiert ist, kann sich bei Perun, mal die drei Lösungsmöglichkeiten durchlesen, die in diesem Fall geholfen […]
Hatte das memory Problem auch bei 1und1. Nach einiger Umschau bzgl. div. Hoster bin ich nun mit einigen Blogs umgezogen zu WebHostOne_de. Je nach gewähltem Paket gibt´s dort unterschiedlichen Memory Limit (wird dort “Paketpower für Ihre Scripte RAM” genannt), von 64 MB bis 128 MB und nützlich für erfahrene Anwender, ist die php.ini frei editierbar (ab Profi V2 Paket). M.E. einziger Nachteil des Hosters: Telefonsupportzeiten nur von Mo.-Fr.
Ich habe mit meinen 64 MB noch kein Problem, meine Auslastung liegt noch bei ca. 60%, behalte das aber im Auge, ggf. muss ich die Speicheraufrüstung zahlen, aber noch sind meine beiden Blogs zu klein, als dass da Probleme auftauchen.
Ich bin beo prosite.de und konnte den Speicherbedarf auf 64 ohne Probleme in der .htacces-Datei erhöhen. In der php.ini zeigte das besagte Ram Plugin nichts an!
Grosser speicherfresser war und ist der brokenlinkchecker mit fast 2 mb ram!
lg daniel
Naja, erklär das mal dem Kunden, der sich seine Domain bei 1&1 gesichert hat und der der englischen Sprache nicht mächtig ist. Der wird sich bedanken, wenn das Backend auf einmal Englisch mit ihm spricht 😉
Im Grunde genommen hast Du vollkommen recht, aber es ist halt nicht immer so einfach wie man es gerne hätte. Oft hilft halt nur die Plugin-Deinstallation. Eben auch dann, wenn der Kunde nicht gewillt ist mit seiner Domain umzuziehen.
Danke!
Ich dachte ich hätte einen deutlich zu hohen Speicherverbrauch aber da ich 64 Bit nutze hält sich die Sache noch im rahmen.
Ich werde das Limit entsprechend anpassen.
Gruß
los3r