Co je to max_execution_time a k čemu slouží?

Max_execution_time je jeden z parametrů, na které bychom měli dát pozor při výběru webhostingu. V tomto článku se podíváme, jaké hodnoty jsou optimální a co vlastně max_execution_time znamená.

Odkaz: PHP max_execution_time na webu php.net

Co je to max_execution_time?

Hodnota max_execution_time nastavuje maximální čas v sekundách, po který je skript povolen ke spuštění před jeho ukončením. Ve výchozím nastavení je maximální doba spuštění skriptů PHP nastavena na 30 sekund. Pokud skript běží déle než 30 sekund, PHP skript zastaví a ohlásí chybu.

Dost často je max_execution_time spojován s hodnotou max_input_time

Co je to max_input_time?

Tím se nastavuje maximální čas v sekundách, kdy je skriptu povoleno analyzovat vstupní data, například přes POST a GET. Tato hodnota se obvykle zvyšuje, aby bylo možné nahrávat větší soubory. Výchozí nastavení je -1, což znamená, že místo toho se použije hodnota max_execution_time. Nastavením na 0 povolíte neomezený čas.

Nastavení max_execution_time?

Stejně, jako u nastavení memory_limit máte dvě hlavní možnosti, jak změnu max_execution_time nastavit.

Globální změna max_execution_time

Toto nastavení je globální a je pro všechny PHP operace a scripty na serveru. Typicky se tato úprava týká VPS a serverů. Změnou nastavení max_execution_time limitujete dobu běhu všech scriptů na serveru na určitý čas.

Jak změnit PHP max_execution_time na vašem VPS nebo serveru?


Každý server má na základě své konfigurace jeden nebo několik souborů php.ini. Musíte jen najít vhodný soubor php.ini, abyste mohli upravit a změnit hodnotu max_execution_time.

Chcete-li zjistit umístění souboru php.ini můžete přes SSH na svém serveru spustit jeden z těchto příkazů:

php --ini

nebo

find / -iname php.ini

nebo

php -i | grep php.ini

Výše uvedené příkazy vyhledají umístění Vašich souborů php.ini. Jednoduše přejděte do tohoto umístění a podle potřeby soubor upravte. Samozřejmě vytvořte zálohu daného souboru, pokud si úpravou nejste jisti.

Lokální změna max_execution_time

Využívá se v případě, že chcete nastavovat hodnoty pro konkrétní script a nebo pro konkrétní adresář/doménu. Obě možnosti si níže ukážeme a popíšeme.

Změna u konkrétního scriptu

V případě, že nechcete měnit globální nastavení a nebo nemůžete a přesto chcete limitovat dobu běhu scriptu, můžete použít následující řešení. Samozřejmostí je předpoklad, že můžete a máte povoleno upravovat a nastavovat PHP konfiguraci.

Vložením následujícího kódu na začátek scriptu (po otevření <?php):

ini_set('max_execution_time', 60);

Tímto kódem nastavíte max_execution_time pro tento konkrétní script na hodnotu 60sec a to bez zásahu do php.ini.

  • ini_set – udáváme informace, že chceme definovat nějaký „příkaz“, jakoby byl v souboru php.ini
  • max_execution_time – maximální doba běhu skriptu
  • 60 – doba po které se skript ukončí 

Změna max_execution_time přes .htaccess

Důvodem, proč měnit PHP max_execution_time přes .htaccess může být ten, že nemusíte mít dostatečné oprávnění, nebo zkušenosti ke změně tohoto nastavení v php.ini a nebo chcete upravit tuto hodnotu pro celý adresář(doménu) a ne jen pro konkrétní script, jak jsme popisovali výše.


Nicméně to nemusí být vždy vhodně řešení – obzvláště v případě, kdy je podpora .htaccess vypnuta. Pak taková změna nemá požadovaný efekt.

Pokud tedy měníte max_execution_time přes .htaccess, tak přidejte následující řádek na začátek Vašeho souboru .htaccess v kořenovém adresáři.

php_value max_execution_time 60

Tímto nastavením změníte hodnotu na 60sec a bude platit tam, kde platí tento konkrétní .htaccess

Jak zkontrolovat aktuální verzi PHP a PHP max_execution_time?

Stačí vytvořit jednoduchý php soubor (třeba info.php) a do něj vložit tyto řádky:

<?php
phpinfo();
?>

Tento soubor nahrajte na Vaše FTP a poté si jej normálně zobrazte v prohlížeči vasedomena.cz/info.php

Výsledkem je pakvýpis kompletního PHP info. Položku max_execution_time pak můžete snadno najít přes CTRL+F a zadáním „max_execution_time“.

Výsledek pak může vypadat třeba takto:

php.ini
php.ini
max_execution_time
max_execution_time

Ideální hodnota max_execution_time?

Stejně, jako v případě memory_limitu nemůžeme mluvit o žádné optimální hodnotě max_execution_time.
Narazit na problémy s nízkým max_execution_time můžete například při nějakém větším importu a nebo třeba u scriptů, které odesílají hromadnou poštu.

České hostingové společnosti nejvíce využívají 60sec max_execution_time viz. následující seznam tarifů, které využívají 60, 90, 120 a 180sec

Rate this post

Podobné příspěvky

Napsat komentář

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

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..