Chyba ve WordPress – Fatal error: maximum execution time of 30 seconds exceeded in …

Velice nepříjemná chyba Fatal error: maximum execution time of 30 seconds exceeded in … potrápí nejednoho uživatele WordPress. O co se vlastně jedná a jak celý problém řešit se podíváme v dnešním článku.

Co je to za chybu

Jedná se o chybu v PHP (skriptovací jazyk ve kterém jen napsán WordPress), kterou nám oznamuje skript, že vyčerpal čas pro provedení skriptu. Jednoduše mu to celé trvalo příliš dlouho a server vykonávání skriptu přerušil, aby nedocházelo k vyčerpání prostředků.

Časový limit 30 vteřin je standardně nastavený na většině serverech, proto se nejčastěji také objevuje v této chybové hlášce. Samozřejmě čas se může lišit podle nastavení. Některé webhostingy mohou mít dobu 10 vteřin, jiné po úpravě umožní i více. Na to se podíváme v další části, protože to je zároveň i částečným řešením tohoto problému.

Kdy se s touto chybou setkáte

V podstatě ve třech případech. Jedním je chyba ve skriptu, která vede například ke smyčce. Pokud si pluginy a šablony stahujete z oficiálních stránek wordpress.org, tak se s touto variantou asi nesetkáte. Druhý případ je zpracovávání příliš velkého množství dat. Například se rozhodnete importovat seznam stovek tisíc firem v Česku a než si to server všechno přebere dojde mu čas. Třetí varianta je chyba třetí strany. Například je poškozená databáze anebo data která stahujete jsou nedostupná či na pomalém serveru.

Jaké vyřešit problém

Záleží na tom kde konkrétně je chyba. V předchozím odstavci jsme si uvedli několik případů u kterých se chyba Fatal error: maximum execution time of 30 seconds exceeded in … může vyskytnout. Než to řešit nějak univerzálně je lepší postupovat podle důvodu a okolností.

Chyba se objevila při aktualizaci WordPress

Pokud se chyba vyskytne u aktualizace například pluginu, u samotného jádra WordPress je to hodně nepravděpodobné a spíše by to nasvědčovalo o problému s databází, tak lze navýšit limit pro vykonávání skriptu. Místo 30 vteřin můžete zvednout limit na 60. To se provádí dvěma způsoby. Buď to přímo umožňuje váš poskytovatel webhostingu a v rozhraní někde bude mít hodnotu max_execution_time (popřípadě se dá najít v php.ini). Tu zvedněte na potřebnou dobu. Ovšem po ukončení aktualizace jí zase vraťte. Ono existuje opodstatnění proč je na 30 vteřinách. Dalším řešením je napsat někam do skriptu (třeba v souboru wp-config.php) set_time_limit(60); (nezapomeňte na středník). Více informací o funkci set_timelimit() se dozvíte na oficiálních stránkách php.net.

Problém s multimédii

Mezi další nejčastější případy patří, kdy se tato chyba může objevit je nahrávání objemnějších souborů přes formulář. Například deseti megabajtové obrázky. Následně při jejich zpravování může opět skript hodit chybu s timeout. Řešením je opět navýšit limity, ale také je třeba zauvažovat jestli je v pořádku nahrávat takto velké soubory přes formuláře. Zdali by nebylo lepší použít třeba FTP. Otázkou je také zpracovávání. Opravdu je stihne server rozřezat či jinak upravit v takto krátkém čase? Na toto jsou spíše specializované servery. Opět pokud jde o jednorázovou záležitost můžete navýšit limity anebo poprosit zákaznickou podporu webhostingu jestli by vám je dočasně nenavýšili nad rámec. S většinou mám dobré zkušenosti, stačí být slušný a na hodinu vám to zapnou. Toto oceníte zvláště v případě, kdy importujete velké množství položek například do eshopu v XML. Pokud plán přesvědčit podporu selže u XML máte výhodu, že lze rozřezat na menší.

Chyba anebo velké množství dat v skriptu

V případě, že se objeví tato chyba z nenadání je dobré zbystřit a začít hledat možný problém. Hledejte výraznější zpomalení na straně skriptu. Nespoléhejte na své internetové spojení, to je zrádné a značně zkresluje. Ideální je začít na začátku skriptu počítat čas a na konci jej porovnat. Zjistíte jak dlouho trvalo generování. Chyba může totiž svědčit například o problému s tabulkou v databázi anebo nějaký plugin dělá neplechu. Ať už třeba vytvořil velké množství dat v tabulce anebo odněkud něco stahuje a moc mu to nejde.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *