Jak vyřešit chybu – Fatal error: Allowed memory size of

  Chyby a problémy

Na chybu Fatal error: Allowed memory size of 123456789 bytes exhausted (tried to allocate 1234567 bytes) in /xxx/xxx/public_html/wp-includes/plugin.php on line xxx nejčastěji narazíte u WordPress po přesunu na nový webhosting anebo pokud některý z pluginů provádí náročnou operaci. Výjimečně lze tuto chybu pozorovat i u aktualizace.

Co tato chyba znamená

Tato chyba vám oznamuje, že PHP vlákno při generování stránky narazilo na omezení paměti RAM, která byla vláknu přidělena. Implicitně to u starších poskytovatelů bývá 32 MB RAM. Moderní webhostingy už s tímto u redakčních systémů počítají a základní (defaultní) hodnota je 64 MB RAM. to by mělo dostatečně vystačit všem běžným skriptům.

Jak se tato chyba dá řešit

V podstatě jsou dvě řešení. Buď navýšit RAM pro daný skript anebo najít jiné řešení jak data zpracovávat.

Navýšení paměti

Maximální hodnotu, kterou můžete vláknu přidělit najdete v nastavení PHP (konkrétně to má na starosti php.ini) pod položkou memory_limit. Pokud k němu máte přístup zkuste tuto hodnotu navýšit například na 64 MB.

Další možností jak paměť pro skript zvětšit, lze přímo v daném souboru. Otevřete si soubor wp-config.php a vložte do něj:

define('WP_MEMORY_LIMIT', '64M');

Pokud se při spuštění neobjeví chyba, tak váš WordPress má k dispozici už 64 MB RAM a to by mu mělo stačit.

Třetí varianta je využití souboru .htaccess. Před zásahem do něj, ale určitě vše zazálohujte. Pokud se v něm něco pokazí připravte se na chybu 500. Někam na začátek vložte řádek:

php_value memory_limit 64M

Úprava skriptu

Z chybové hlášky se dozvíte, který skript má problém. Většina pluginů, které provádí na paměť náročné operace, jako jsou například zálohovací pluginy, mají v nastavení možnost úprav. Například místo, aby tvořily velké soubory nastavte větší počet menších.

Pokud to nelze můžete zkusit najít alternativní plugin, který nebude na paměť tak moc náročný. Jestli ale plugin například má za úkol upravovat fotky a potřebujete zrovna nějakou opravdu velkou, je lepší to udělat lokálně na počítači, anebo jí nejdříve zmenšit. Pro takovéto případy vždy dobré zvolit speciální hosting s vysokými parametry memory_limit anebo rovnou VPS, kde jsou nastavení jednotlivých parametrů čistě ve vaší režii.

V předchozích odstavcích bylo nastíněno několik způsobů řešení. Jestli vytváříte vlastní skript a nemůžete jej donutit snížit nároky na paměť zkuste zauvažovat na rozdělení skriptu na menší úkony. Například data zpracovávat postupně. Pro třídění dat je téměř vždy výhodnější použít databáze. Od toho jsou stavěné.

Napiš komentář