Zvyšte dobu provádění skriptu. Zvýšená doba provádění skriptu PHP s Nginx. Proč měření v programování?

Pokud máte velký projekt nebo server s omezenými prostředky, často se zobrazí chyba „504 Gateway Time-out“.

Chcete-li zvýšit hodnotu časového limitu, postupujte podle následujících kroků. V PHP je výchozí hodnota 30 sekund.

Změny v php.ini

Pokud chcete změnit maximální dobu provádění skriptů PHP z 30 sekund (výchozí) na 300 sekund.

Nano /etc/php5/fpm/php.ini

Nainstalujte...

Max_execution_time = 300

V Apache PHP běží jako modul, tyto změny budou stačit. Ale v našem případě musíme provést změny na několika dalších místech.

Změny v PHP-FPM

To je nutné, pokud jste dříve odkomentovali parametr request_terminate_timeout. Ve výchozím nastavení je zakomentován a přebírá nalezenou hodnotu max_execution_time z php.ini

Otevírací...

Nano /etc/php5/fpm/pool.d/www.conf

Instalace...

Request_terminate_timeout = 300

Změny v Nginx Config

Zvýšení časového limitu pro jednu doménu example.com

Umístění Nano /etc/nginx/sites-available/example.com ~ \.php$ (včetně /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_read_timeout 300; }

Pokud chcete zvýšit časový limit pro všechny domény na vašem serveru, můžete upravit hlavní konfigurační soubor nginx.conf:

Nano /etc/nginx/nginx.conf

Přidejte následující parametr do sekce http(..).

Http(#... fastcgi_read_timeout 300; #... }

Dostali jste někdy chybu? Závažná chyba: Překročena maximální doba provádění 30 sekund ve WordPressu? Tato chyba znamená, že spuštěný PHP skript vyžadoval více času na dokončení, než je nastavený limit, a skript byl kvůli tomu zastaven. Tato příručka vám pomůže pochopit otázku, jak prodloužit dobu provádění skriptu v PHP a tím vyřešit vzniklou chybu.

Než začnete s touto příručkou, zkontrolujte, zda máte:

  • Přístup do administrativní konzole vašeho webu WordPress (v angličtině)

Krok 1 – Nainstalujte plugin WP Maximum Execution Time Exceeded

WordPress má obrovskou komunitu, takže existuje praktický plugin nebo několik pro každou funkci, kterou potřebujete. Naše situace není výjimkou, pro prodloužení doby provádění skriptu v PHP můžete použít plugin WP Maximum Execution Time Exceeded a opravit vzniklou chybu. Podrobný návod, jak nainstalovat WordPress plugin naleznete.

Tento plugin provádí změny v souboru .htaccess a zvyšuje časové limity provádění skriptu. Po instalaci pluginu nemusíte nic dalšího dělat, vše již dělá plugin. Plugin nemá stránku nastavení, takže pokud chcete vrátit předchozí nastavení, jednoduše plugin smažte a .htaccess se vrátí do původní podoby.

Krok 2 – Ruční úprava souboru .htaccess

Pokud již máte nainstalovaných mnoho pluginů a nechcete používat další nebo vám to prostě nepomohlo zbavit se chyby, můžete provést změny v souboru .htaccess ručně, abyste zvýšili maximální výkon lhůta. Nejjednodušší způsob použití Správce souborů umístěnou ve vašem Ovládacím panelu. Pokud nevíte, jak najít soubor .htaccess, podívejte se prosím na podrobné pokyny. Budete muset zadat následující kód do souboru .htaccess ve spodní části a uložit jej kliknutím Uložit:

Php_value max_execution_time 60

Tím se zvýší hodnota parametru max_execution_time a v případě PHP i doba provádění skriptu na 60 sekund (1 minuta). Pokud se tato chyba stále zobrazuje, zkuste ji zvýšit ještě více – až na 120/180 sekund a tak dále.

Krok 3 – Změna hodnoty max_execution_time v cPanel

Pokud používáte cPanel, můžete zvýšit parametr max_execution_time přímo prostřednictvím cPanel. Přejděte do sekce Vyberte verzi PHP (Vyberte verzi PHP).

Zvyšte hodnotu, kterou vidíte v řádku max_execution_time. Obvykle je standardně nastavena na 30 sekund, v našem příkladu jsme ji zvýšili na 60 sekund. Klikněte Aplikovat(Použít) pro uložení změn.

To je vše, úspěšně jste zvýšili hodnotu limitního parametru max_execution_time pro váš web.

Závěr

Podle tohoto návodu jste se naučili 3 způsoby, jak zvýšit max_execution_time pro WordPress, změnit dobu provádění skriptu v PHP a zbavit se chyby Závažná chyba: Překročena maximální doba provádění. Pokud používáte sdílený hosting a žádné z řešení pro vás nefunguje, kontaktujte svého poskytovatele hostingu a zjistěte, jaká jsou vaše skutečná omezení a zda je lze vůbec změnit.

Pokud vyvíjíte velký projekt, může zpracování některých dat zabrat hodně času. Různé hostingové weby mají své vlastní limity na takové akce, a pokud vás sem přivedla potřeba zvýšit tento čas, pak vám podrobně řeknu, jak to lze provést.

Abyste pochopili, o čem mluvíme, uvedu malý příklad. Pokud překročíte nastavený časový rámec, může se zobrazit následující chyba:

Závažná chyba: V site.php na řádku 19 byla překročena maximální doba provádění 30 sekund

Řeknu vám o 4 způsobech, jak se toho zbavit.

Ale stojí za to začít s tím, že v každém jednotlivém případě nemusí všechny uvedené metody fungovat, protože někteří poskytovatelé hostingu sami zakazují změnu tohoto parametru.

Zvýšení doby provádění skriptu PHP prostřednictvím konfiguračního souboru php.ini

Jako první způsob, jak zvýšit dobu provádění skriptu, použijeme konfigurační soubor php.ini.

Chcete-li zjistit, kde přesně se tento soubor nachází, přečtěte si.

Otevřete jej způsobem, který vám vyhovuje, a vložte úplně dole:

Max_execution_time = 300;

kde" 300 "znamená 300 sekund (změňte na své). Tento soubor bohužel není k dispozici pro úpravy uživateli na všech hostitelských webech.

Zvýšení doby provádění skriptu PHP prostřednictvím vestavěné funkce „ini_set“.

Druhá metoda je založena na použití funkce " ini_set" Vložíte jej přímo do samotného souboru skriptu, nejlépe úplně nahoře. Příklad:

Zde je význam " 300 „Také se během několika sekund změníte na to, co potřebujete. Poznámkaže při použití PHP v nouzovém režimu tato funkce nebude dostupná.

Zvýšení doby provádění skriptu PHP pomocí vestavěné funkce „set_time_limit“

Třetí metodou, pravděpodobně jednou z nejpopulárnějších, je použití „ set_time_limit» změnit dobu provádění skriptu. Používá se také přímo v samotném souboru PHP. Příklad:

Tady " 300 "také se změníte na hodnotu, kterou potřebujete. Je vhodné vložit kód úplně nahoře.

Zvýšení doby provádění skriptu PHP prostřednictvím souboru .htaccess

Poslední možností je úprava souboru .htaccess, který se nachází v kořenovém adresáři vašeho webu (pokud neexistuje, vytvořte jej).

Úplně nahoře v tomto souboru vložte:

Php_value max_execution_time 300

Význam " 300 „Taky si to změň na svůj.

Poznámka, že ve všech případech je doba provedení skriptu uvedena v sekundách. Kromě toho může hodnota parametru ve všech metodách trvat „ 0 “, což znamená neomezenou dobu provádění.

Jak zjistím, kolik času je vyhrazeno pro spuštění PHP skriptu?

Poté, co jste se jednou z metod pokusili změnit dobu provádění skriptu, musíte zjistit, zda jste skutečně uspěli.

Chcete-li to provést, vytvořte soubor PHP v kořenovém adresáři vašeho webu, kde vypíšete hodnotu nastaveného času:

Pokud se čas rovná tomu, co jste uvedli, gratulujeme, dosáhli jste požadovaného cíle. V opačném případě si článek přečtěte znovu, napište do komentářů svůj problém nebo jej přepošlete svému poskytovateli hostingu.

Pokud vyvíjíte velký projekt, může zpracování některých dat zabrat hodně času. Různé hostingové weby mají své vlastní limity na takové akce, a pokud vás sem přivedla potřeba zvýšit tento čas, pak vám podrobně řeknu, jak to lze provést.

Abyste pochopili, o čem mluvíme, uvedu malý příklad. Pokud překročíte nastavený časový rámec, může se zobrazit následující chyba:

Závažná chyba: Překročena maximální doba provádění 30 sekund v pandoge_com.php na řádku 19

Řeknu vám o 4 způsobech, jak se toho zbavit.

Ale stojí za to začít s tím, že v každém jednotlivém případě nemusí všechny uvedené metody fungovat, protože někteří poskytovatelé hostingu sami zakazují změnu tohoto parametru.

Zvýšení doby provádění skriptu PHP prostřednictvím konfiguračního souboru php.ini

Jako první způsob, jak zvýšit dobu provádění skriptu, použijeme konfigurační soubor php.ini.

Chcete-li zjistit, kde přesně se tento soubor nachází, přečtěte si.

Otevřete jej způsobem, který vám vyhovuje, a vložte úplně dole:

Max_execution_time = 300;

kde" 300 "znamená 300 sekund (změňte na své). Tento soubor bohužel není k dispozici pro úpravy uživateli na všech hostitelských webech.

Zvýšení doby provádění skriptu PHP prostřednictvím vestavěné funkce „ini_set“.

Druhá metoda je založena na použití funkce " ini_set" Vložíte jej přímo do samotného souboru skriptu, nejlépe úplně nahoře. Příklad:

Zde je význam " 300 „Také se během několika sekund změníte na to, co potřebujete. Poznámkaže při použití PHP v nouzovém režimu tato funkce nebude dostupná.

Zvýšení doby provádění skriptu PHP pomocí vestavěné funkce „set_time_limit“

Třetí metodou, pravděpodobně jednou z nejpopulárnějších, je použití „ set_time_limit» změnit dobu provádění skriptu. Používá se také přímo v samotném souboru PHP. Příklad:

Tady " 300 "také se změníte na hodnotu, kterou potřebujete. Je vhodné vložit kód úplně nahoře.

Zvýšení doby provádění skriptu PHP prostřednictvím souboru .htaccess

Poslední možností je úprava souboru .htaccess, který se nachází v kořenovém adresáři vašeho webu (pokud neexistuje, vytvořte jej).

Úplně nahoře v tomto souboru vložte:

Php_value max_execution_time 300

Význam " 300 „Taky si to změň na svůj.

Poznámka, že ve všech případech je doba provedení skriptu uvedena v sekundách. Kromě toho může hodnota parametru ve všech metodách trvat „ 0 “, což znamená neomezenou dobu provádění.

Jak zjistím, kolik času je vyhrazeno pro spuštění PHP skriptu?

Poté, co jste se jednou z metod pokusili změnit dobu provádění skriptu, musíte zjistit, zda jste skutečně uspěli.

Chcete-li to provést, vytvořte soubor PHP v kořenovém adresáři vašeho webu, kde vypíšete hodnotu nastaveného času:

Pokud se čas rovná tomu, co jste uvedli, gratulujeme, dosáhli jste požadovaného cíle. V opačném případě si článek přečtěte znovu, napište do komentářů svůj problém nebo jej přepošlete svému poskytovateli hostingu.

Od autora: syna mého přítele zaujala chemie natolik, že začal doma provádět různé „testy“. Poté, co se lustr v kuchyni stal jejich „obětí“, jeho otec ho požádal, aby změnil své preference. Díky tomu se dítě začalo zajímat o statistiky a rozhodlo se vypočítat průměrnou dobu hoření jednoho zápasu. Výsledkem bylo, že celý byt málem začal hořet. Poradil jsem budoucímu vědci, aby začal programovat a nastavil čas provádění PHP skriptu.

Proč měření v programování?

Za prvé je to bezpečnější než chemie a statistika. Ve skutečnosti je však doba provádění programového kódu důležitým parametrem, který ovlivňuje výkon celého zdroje a jeho jednotlivých modulů. Tento parametr je více žádaný při optimalizaci a testování.

Pojďme si to trochu představit. Představme si, že existuje nějaký „doma psaný“ engine, který si vývojář „nahrál“ na dobrý hosting a spustil (na jeho základě) svůj web. Ale z nějakého důvodu je načítání zdroje na straně uživatele velmi pomalé.

V takové situaci zpočátku všechny hrboly dopadnou na hostitele. S největší pravděpodobností vzteklý programátor podá stížnost na službu podpory hostingu. Říkají, že podmínky smlouvy se neplní, stránka je sotva „naživu“...

Ale ve skutečnosti může být problém pomalého načítání stránek dynamického zdroje skrytý v samotném enginu. A abychom později nevypadali jako „atrapa“, zkušený vývojář vždy před dodáním projektu změří dobu provádění PHP skriptu.

Vlastnosti PHP

Vždy jsem to nazýval jedním z nejpohodlnějších programovacích jazyků. Aby mohl vývojář sledovat dobu běhu kódu, nemusí psát dlouhé „talmudy“, aby zachytil každý řádek skriptu. Tato technologie implementuje několik specializovaných nástrojů. Tou hlavní je funkce microtime(). Vrací čas (v milisekundách), který uplynul od začátku roku 1970. Takzvaný „začátek éry Unixu“. Pokud funkci předáte parametr get_as_float s hodnotou true, vrátí časové období ve formě celých sekund a zlomků milisekund.

Princip použití microtime() je následující: funkce je volána na začátku skriptu a na jeho konci. Poté se počáteční hodnota odečte od poslední hodnoty. Zde je návod, jak vypočítat dobu provádění skriptu:

"; $last=microtime(true); $value=$last-$first; echo "Skript je spuštěn v: ".$value; ?>

Změna doby běhu kódu

V PHP lze hodnotu doby běhu skriptu omezit programově (snížit nebo zvýšit). K tomu slouží několik funkcí, z nichž každá přepíše sadu parametrů v konfiguračním souboru (php.ini).
Nejprve upravíme náš kód a zvýšíme počet iterací smyček 20krát na 200 milionů. Pokud je vše v pořádku, po spuštění skriptu byste měli obdržet fatální chybovou zprávu.

To znamená, že v nastavení je parametr max_execution_time nastaven na výchozí hodnotu (30 sekund). Zvyšme maximální dobu provádění skriptu v PHP 3krát.

set_time_limit(90);

Nyní neobdržíme žádné chybové zprávy.