How to — Wie löse ich ein Pro­blem oder wie mache ich das und das? Die­se Fra­ge wird bei Web­wor­kern oder Blog­gern immer mal wie­der auf­tau­chen.


Daher will ich in loser Fol­ge oder bei aktu­el­lem Anlass Arti­kel ver­öf­fent­li­chen, in denen gän­gi­ge Pro­ble­me — sei es nun mit der Tech­nik, mit Soft­ware oder ande­ren Arbeits­schrit­ten — erläu­tert und gelöst wer­den.

Das Pro­blem, über das ich heu­te schrei­be, hat­te ich selbst schon ein paar Mal und gera­de wie­der ver­gan­ge­ne Woche.

Fatal error: Allowed memory size exhausted

Und zwar die Mel­dung “Fatal error: Allo­wed memo­ry size of XXXX bytes exhaus­ted (tried to allo­ca­te XXXX bytes in …”. Die X ste­hen für Zah­len.

Doch was bedeu­tet die­se Mel­dung und wann kann sie vor­kom­men? Ein­mal ist mir die Feh­ler­mel­dung erschie­nen, nach­dem ich ein Plugin auf einem Wor­d­Press-Sys­tem instal­liert habe, das wohl zu viel Res­sour­cen oder Leis­tung bean­sprucht hat. Danach konn­te ich kei­ne Ände­run­gen an Blog­ar­ti­keln oder Sei­ten vor­neh­men, bzw. kei­ne neu­en Blog­bei­trä­ge mehr erstel­len, denn immer wie­der kam beim Drü­cken auf den Ver­öf­fent­li­chen-But­ton die obi­ge War­nung.

Ein ande­res Mal kam die Mel­dung, nach­dem ich wich­ti­ge Plugins instal­liert habe und dann Ände­run­gen an den The­me Opti­ons vor­neh­men woll­te. Das klapp­te auch nicht mehr.

Hin­ter die­ser Fatal-Error-Mel­dung steckt der Hin­weis, dass dem Sys­tem zu wenig PHP-Memo­ry-Limit zur Ver­fü­gung steht. Das pas­siert meis­tens nach einer wei­te­ren Plugin-Instal­la­ti­on oder nach einem Update.

Um PHP-Anwen­dun­gen nut­zen zu kön­nen, wird vom Hos­ter in den meis­ten Fäl­len ein soge­nann­tes Memo­ry Limit fest­ge­legt. Die­ses beschreibt den maxi­ma­len Spei­cher­ver­brauch, den die PHP-Skrip­te der Web­site ver­wen­den dür­fen. Meist sind die­se Wer­te bei 110 oder 120 MB fest­ge­legt, aber auch höhe­re Wer­te von bei­spiels­wei­se 256 MB sind mög­lich.

Lesen  Divi Theme: Eine Webseite, die mit Deinen Anforderungen wächst

Weni­ger als 64 MB soll­te der Memo­ry Limit aller­dings nicht betra­gen, was auch bei den wenigs­ten Hos­tern der Fall ist.

Wird dann die Feh­ler­mel­dung ange­zeigt, ver­sucht Wor­d­Press mehr Spei­cher für sich bean­spru­chen als ihm von den Ser­ver­eins­tel­lun­gen aus zusteht. Oft kommt der Fatal Error wirk­lich ganz plötz­lich.

Wie stelle ich die Höhe des PHP Memory Limits fest?

Um sei­nen eige­nen Memo­ry Limit zu über­prü­fen, kann man ein klei­nes Wor­d­Press-Plugin instal­lie­ren, näm­lich WP-Memo­ry-Usa­ge. Ist das Plugin instal­liert und akti­viert, zeigt es auf der Dash­board-Sei­te in Wor­d­Press an, wie viel Memo­ry Limit einem zur Ver­fü­gung steht.

Oder man schaut in sei­nem Kun­de­n­ac­count des Hos­ters nach, wie die php.ini-Einstellungen — und dort spe­zi­ell der Wert memory_​limit — aus­se­hen. Nor­ma­ler­wei­se kann man die php.ini irgend­wo im Account ein­se­hen.

WP Sys­tem Health, ein wei­te­res Plugin, das Ser­ver­um­ge­bung und Wor­d­Press-Para­me­ter anzeigt, ist da noch ein biss­chen aus­führ­li­cher, aber so wie es aus­sieht, wird es nicht mehr wei­ter aktua­li­siert und funk­tio­niert nicht immer hun­dert­pro­zen­tig rich­tig.

Da meis­tens Plugins an dem Fatal Error schuld sind, kann man mit dem P3-Plugin her­aus­fin­den, wel­ches von ihnen ein gro­ßer Res­sour­cen­fres­ser ist. Manch­mal gibt es in der umfang­rei­chen Plug­in­aus­wahl dann bes­se­re Alter­na­ti­ven, aber nicht immer. Dann soll­te man sich ent­schei­den, ob man die­se Plugins benö­tigt oder ob man in ein höhe­res Webs­pace-Paket upgradet, weil man den Memo­ry Limit selbst nicht erhö­hen kann.

Denn oft lässt der Hos­ter nicht zu, dass man sein PHP Memo­ry Limit eigen­hän­dig erhöht. Um das her­aus­zu­fin­den, soll­te man eine Sup­port­an­fra­ge an sei­nen jewei­li­gen Pro­vi­der stel­len.

3 Möglichkeiten, das PHP Memory Limit zu erhöhen

Doch man­che Hos­ter geben einem die Mög­lich­keit, das PHP Memo­ry Limit zu stei­gern. Es gibt drei Mög­lich­kei­ten, dies zu tun.

Lesen  10 spannende Parallax-WordPress-Themes für Geschäftswebsites

Doch Vor­sicht, wer dabei einen Feh­ler macht, kann schon mal die Web­site “aus­schal­ten”. Dann hilft nur, den Schritt wie­der rück­gän­gig zu machen, was aber ziem­lich schnell von­stat­ten­geht.

1. Mög­lich­keit: wp-config.php anpas­sen

Die ers­te Mög­lich­keit, den Memo­ry Limit zu erhö­hen, ist die, einen klei­nen Code­schnip­sel in die wp-con­fig-Datei ein­zu­fü­gen.

defi­ne (‘WP_​MEMORY_​LIMIT’, ’256M’);

Am bes­ten fügen Sie die­sen Code an den Anfang der con­fig-Datei hin­ter die Zei­chen­fol­ge <?php oder unter die Zei­le define(‘WPLANG’, ‘de_​DE’); ein. Den Wert “256 M” für 256 MB kön­nen Sie auch aus­tau­schen mit “128 M”, falls Sie einen nied­ri­ge­ren Wert ein­tra­gen wol­len. Weni­ger als 128 MB soll­ten Sie aber nicht aus­wäh­len.

Bei die­ser Anpas­sung pas­siert recht wenig, d. h. man kann sei­ne Web­site nicht “zer­schie­ßen”.

Hin­weis: Das Plugin WP-Memo­ry-Usa­ge zeigt nach der Anpas­sung den neu­en Wert des PHP Memo­ry Limits an, doch das heißt nicht, dass der Hos­ter dies wirk­lich zulässt. Die Anga­be kann also schon mal täu­schen. Daher soll­ten Sie vor Anpas­sun­gen den Hos­ter anfra­gen, ob Sie den Memo­ry-Wert selbst erhö­hen kön­nen. Ansons­ten sind die hier beschrie­be­nen Schrit­te sinn­los.

2. Mög­lich­keit: Eige­ne php.ini erstel­len

Sie kön­nen eine eige­ne php.ini erstel­len, indem Sie ein­fach eine Text-Datei mit die­sem Namen anle­gen und fol­gen­den Schnip­sel ein­fü­gen:

memory_limit=256M

Die Datei muss dann noch ins Root- bzw. Stamm­ver­zeich­nis der Web­site ein­ge­fügt wer­den.

3. Mög­lich­keit: .htac­cess anpas­sen

Wer sich schon ein biss­chen mehr zutraut, kann in sei­ne .htac­cess-Datei eine neue Zei­le ein­fü­gen. Dafür muss man die Datei her­un­ter­la­den und fol­gen­de Zei­le ein­ge­ben:

php_​value memory_​limit 256M

Um eine .htac­cess-Datei öff­nen zu kön­nen, muss sie in eine Text-Datei umge­wan­delt wer­den. Wenn die Datei wie­der hoch­ge­la­den wird, kön­nen Sie ein­fach die Datei­endung .txt auf dem Web­ser­ver ent­fer­nen und an den Anfang der Datei wie­der einen Punkt set­zen.

Lesen  Tolle Internetseiten für originelle Weihnachtsgeschenke

Wer eine .htac­cess zum ers­ten Mal anle­gen will, erstellt ein­fach eine. txt-Datei und führt die oben genann­ten Schrit­te aus.

Die ein­ge­stell­ten Ände­run­gen müss­ten Sie mit­tels der genann­ten Plugins WP Memo­ry Usa­ge oder WP Sys­tem Health ange­zeigt bekom­men. Wenn nicht, dann ist wahr­schein­lich irgend­wo ein Feh­ler vor­han­den. Oder Sie müs­sen eine ande­re der oben auf­ge­führ­ten Mög­lich­kei­ten aus­pro­bie­ren, denn nicht jede funk­tio­niert bei jedem Hos­ter.

Fazit

Die Anzei­ge “Fatal error: Allo­wed memo­ry …” kann ganz schön ner­vend sein. Zum Glück gibt es Lösungs­mög­lich­kei­ten, wie die oben auf­ge­führ­ten. Macht der Hos­ter aller­dings eine Anpas­sung unmög­lich, bleibt einem nichts ande­res übrig, als eigent­lich in ein höhe­res Paket oder gleich den Hos­ter zu wech­seln.

Oder man beschränkt sei­ne Plug­i­nan­zahl, was aller­dings eine schlech­te Alter­na­ti­ve ist, denn schließ­lich benö­tigt man ja bestimm­te Plugins und wird man da ein­ge­schränkt, macht das gan­ze kei­nen Spaß mehr.

Daher kann ich jedem emp­feh­len, sol­che Hos­ter aus­zu­wäh­len, die eine Anpas­sung der php.ini-Werte zulas­sen.