Jak řešit Fatal error: Out of memory

Může se Vám stát, že z Vám neznámého důvodu WordPress nahlásí

„Fatal error: Out of memory (allocated 63700992) (tried to allocate 4407065 bytes) in /www/wp-includes/wp-db.php on line 774“

nebo nějakou podobnou hlášku. Nedávno se mě tohle stalo tak jsem hledal řešení jak na Google tak i na http://wordpress.org/support/ kde je lze najít podobné žádosti nebo požádat o pomoc. Pro někoho může být překážkou Googlování a fóra na WordPressu to, že je vše v angličtině. Ještě se taky můžete podívat na Webtrh.cz kde je česká komunita.

1. Zálohujte

Pro jistotu zálohujte WordPress data i databázi na Váš lokální PC

2. Vypněte všechny pluginy

Pokud se nedostanete ani do admin rozhraní WordPressu, tak se přihlaste přes FTP přístup a pluginy jednoduše smažte (wp-content/plugins) nebo adresář plugin přejmenujte.  Předpokládám, že jste si pluginy zálohovali, viz krok 1. Zkuste se podívat, co to dělá nyní. Tímto krokem zjistíte, jestli je chybka někde v pluginu. Pokud se vše rozběhlo, nahrajte a aktivujte pluginy po jednom zpět a postupně zjistíte jaký plugin  tu chybu udělal.

3. Změňte šablonu stránek

Chyba může být i v šabloně stránek, zvláště jestli šablona obsahuje function.php což je soubor kde mohou být vložené kódy s pluginy. Aktivujte tedy základní šablonu WordPressu, a podívejte se, jestli je vše v pohodě.

4. Reinstalujte WordPress

Tenhle tip pochází z fóra na WordPressu a počítá s tím, že některé pluginy mají problém s aktualizací na nové verze. Deaktivujte všechny pluginy, reinstalujte automaticky WordPress a aktivujte znovu potřebné pluginy.

5. Navyšte paměť

Pak je tu možnost, že máte málo paměti pro WordPress například 32 MB. V tom případě se pokuste navýšit paměť pro Váš hosting.

  • Php.ini – dobrý hosting vám umožní přístup k souboru php.ini, otevřete tento soubor v texovém editoru a vyhledejte parametr pluginy memory_limit = (například 32MB nebo 64 MB)
  • Wp-config.php – další vyzkoušená cesta je přidat řádek
    define('WP_MEMORY_LIMIT', '128M'); do souboru wp-config.php nedávejte ho na konec. Dejte ho před řádku  /* That’s all, stop editing! Happy blogging. */

Jak si ale zkontrolovat, kolik mám přidělenou paměť (memory_limit)?  K tomu jsem našel jednoduchý plugin „WP-Memory-Usage“  který Vám na nástěnce v admin menu zobrazí aktuální využití paměti a kolik máte nastaveno.

6. Logy z hostingu

Pokud se vyznáte, zkuste se podívat do logů jako první věc. Kvalitní hosting Vám zřídí adresář, kam Vám bude ukládat logy. Já mám k dispozici logy za dva poslední dny v samostatném adresáři na hostingu.

7. WordPress debug mode

Tohle je celkem zajímavá věc, primárně zřejmě určena vývojářům a pokročilým uživatelům. Nejdříve to chce zřídit soubor debug.log v adresáři wp-config a nastavte práva 666. Poté vložte do souboru wp-config.php tento odstavec:

/**
* This will log all errors notices and warnings to a file called debug.log in
* wp-content (if Apache does not have write permission, you may need to create
* the file first and set the appropriate permissions (i.e. use 666) )
*/

define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, true);
define(‘WP_DEBUG_DISPLAY’, false);
@ini_set(‘display_errors’,0);

(Zdroj:  http://codex.wordpress.org/Editing_wp-config.php)

Opět platí, vložte to před řádek /* That’s all, stop editing! Happy blogging. */. Na této variantě je fajn, že pro vypnutí stačí přepsat červeně označené true na false. Pak už stačí nakouknout do souboru debug.log a podívat se na chyby, které Vám to píše. Také je možné že se Vám objeví chybové hlášky na webu přímo i když je nastaveno, aby se nezobrazovali. Mně se takhle zobrazí chybné požadavky na databázi.

Toto Vám pomůže zjistit chybu a začít na tom pracovat. Na závěr Vám radím, zálohujte databázi a jednou za čas i data lokálně na svůj záložní disk nebo DVD. Nespoléhejte na zálohy hostingu.


Comments (3)
Leave a reply

Name (required)

Website