max_execution_time je jeden z parametrů PHP, na které bychom měli dát pozor při výběru webhostingu. V tomto článku se podíváme, co max_execution_time znamená, jaké hodnoty jsou obvyklé a hlavně jak ho v roce 2026 správně změnit — na sdíleném hostingu i na vlastním serveru.
Oficiální zdroj: max_execution_time v manuálu PHP (php.net)
Co je to max_execution_time?
Hodnota max_execution_time udává maximální čas v sekundách, po který smí PHP skript běžet, než ho PHP samo ukončí. Ve výchozím nastavení je to 30 sekund. Pokud skript běží déle, PHP ho zastaví a ohlásí chybu:
Fatal error: Maximum execution time of 30 seconds exceeded in /cesta/ke/skriptu.php
Malý, ale důležitý detail: v příkazové řádce (PHP CLI) je výchozí hodnota 0, tedy bez limitu. Skripty spouštěné přes cron nebo SSH proto na tento limit obvykle nenarazí — týká se hlavně požadavků z webu (přes webový server a PHP-FPM).
A co max_input_time?
S max_execution_time bývá spojován parametr max_input_time. Ten nastavuje maximální čas (v sekundách), po který smí skript přijímat a parsovat vstupní data (např. přes POST a GET — typicky nahrávání větších souborů). Výchozí hodnota je -1, což znamená, že se použije hodnota max_execution_time. Nastavením na 0 povolíte neomezený čas.
Kde a jak max_execution_time změnit (2026)
Možností je několik a záleží, jestli jste na sdíleném hostingu, nebo máte vlastní VPS/server. Řadíme je od nejjednodušší po nejtechničtější.
1. Ovládací panel hostingu (nejjednodušší)
Většina sdílených hostingů dnes umožňuje měnit PHP direktivy přímo v administraci — bez editace souborů. Hledejte volby jako „Nastavení PHP“, „PHP selector“, „Select PHP Version“ nebo v cPanelu „MultiPHP INI Editor“, v DirectAdminu „Custom PHP.ini“. Tam max_execution_time jednoduše přepíšete a uložíte. Pokud tuto volbu hosting nemá nebo je hodnota zamčená, ozvěte se podpoře.
2. Soubor .user.ini (dnešní standard sdílených hostingů)
Drtivá většina moderních hostingů běží na PHP-FPM / FastCGI. Tam se lokální nastavení dělá souborem .user.ini umístěným v kořenovém adresáři webu. Stačí do něj přidat řádek:
max_execution_time = 60
Změna se nemusí projevit okamžitě — PHP si .user.ini cachuje (řídí to user_ini.cache_ttl, standardně 300 s), takže počítejte s několikaminutovou prodlevou.
3. Soubor .htaccess — pozor, jen s mod_php
Historicky se často doporučoval zápis do .htaccess:
php_value max_execution_time 60
Tohle funguje pouze tehdy, když web běží pod Apache modulem mod_php. Na dnes běžnějším PHP-FPM/FastCGI direktiva php_value nefunguje a může dokonce shodit web chybou HTTP 500. Pokud si nejste jistí, použijte raději .user.ini nebo panel hostingu.
4. Přímo ve skriptu (dočasně, pro jeden skript)
Když chcete navýšit limit jen pro jeden konkrétní skript, vložte hned za <?php:
ini_set('max_execution_time', 60);
// nebo ekvivalentně:
set_time_limit(60);
- ini_set / set_time_limit — nastaví limit za běhu skriptu, bez zásahu do php.ini,
- 60 — nová doba v sekundách (pozor:
set_time_limitpočítá čas od svého zavolání).
Tuto cestu ale nelze použít, když hosting běh navyšování zakázal (funkce může být v disable_functions), a nikdy nepřekročíte tvrdý limit nastavený serverem/PHP-FPM.
5. Globální změna na VPS/serveru (php.ini)
Na vlastním VPS nebo serveru měníte hodnotu globálně přímo v php.ini. Umístění správného souboru zjistíte přes SSH:
php --ini
nebo
php -i | grep php.ini
Najděte řádek max_execution_time, upravte hodnotu, uložte a restartujte PHP-FPM (např. systemctl restart php8.4-fpm) nebo webový server. Před úpravou si soubor raději zazálohujte.
Jak zkontrolovat aktuální hodnotu?
Nejrychleji přes phpinfo(). Vytvořte soubor info.php:
<?php
phpinfo();
?>
Nahrajte ho na web a otevřete vasedomena.cz/info.php. Položku max_execution_time najdete přes CTRL+F. Po kontrole soubor smažte — phpinfo() prozrazuje o serveru zbytečně mnoho. Na příkazové řádce zjistíte hodnotu i příkazem:
php -i | grep max_execution_time

Jaká je ideální hodnota max_execution_time?
Univerzální „správná“ hodnota neexistuje. Výchozích 30 sekund pro běžný web bohatě stačí a je i bezpečné — dlouho běžící požadavky zbytečně drží zdroje serveru. Navýšení (nejčastěji na 60–120 s) dává smysl u konkrétních úloh: velké importy, generování PDF/exportů, hromadné odesílání e-mailů nebo náročnější operace ve WordPressu.
Lepší než plošně zvedat limit je ale dlouhé operace přesunout mimo web — spustit je přes cron nebo frontu na pozadí, kde limit typicky neplatí. České sdílené hostingy obvykle nabízejí 60–180 s; konkrétní tarify a jejich parametry si můžete porovnat v kategorii webhosting.
Časté dotazy
Jak opravit chybu „Maximum execution time exceeded“?
Navyšte max_execution_time jednou z cest výše (nejjednodušeji v panelu hostingu nebo přes .user.ini). Pokud jde o WordPress, chybu často způsobuje konkrétní plugin nebo import — vyplatí se najít a vyřešit příčinu, ne jen zvedat limit donekonečna.
Ovlivní max_execution_time cron a skripty v příkazové řádce?
Ne. PHP CLI má výchozí limit 0 (bez omezení), takže úlohy spouštěné přes cron nebo SSH tímto limitem obvykle nejsou omezené. Proto je vhodné dlouhé operace řešit právě přes cron.
Jaký je rozdíl mezi max_execution_time a max_input_time?
max_execution_time hlídá celkovou dobu běhu skriptu, kdežto max_input_time jen dobu načítání vstupních dat (např. nahrávání souboru). Při problémech s uploadem velkých souborů je proto potřeba sledovat oba parametry (plus upload_max_filesize a post_max_size).
