Povećajte vrijeme izvršavanja skripte. Povećano vrijeme izvršavanja PHP skripte sa Nginxom. Zašto mjerenja u programiranju?

Ako imate veliki projekat ili server sa ograničenim resursima, često ćete videti grešku „504 Gateway Time-out“.

Možete pratiti donje korake da povećate vrijednost vremenskog ograničenja. U PHP-u je zadana vrijednost 30 sekundi.

Promjene u php.ini

Ako želite da promenite maksimalno vreme izvršavanja za PHP skripte sa 30 sekundi (podrazumevano) na 300 sekundi.

Nano /etc/php5/fpm/php.ini

Instaliraj...

Max_execution_time = 300

U Apache PHP-u koji radi kao modul, ove promjene će biti dovoljne. Ali u našem slučaju, moramo napraviti promjene na još nekoliko mjesta.

Promjene u PHP-FPM-u

Ovo je neophodno ako ste ranije dekomentirali parametar request_terminate_timeout. Po defaultu je komentarisan i uzima pronađenu vrijednost max_execution_time iz php.ini

Otvaranje...

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

Instaliranje...

Request_terminate_timeout = 300

Promjene u Nginx konfiguraciji

Povećanje vremenskog ograničenja za jednu domenu example.com

Nano /etc/nginx/sites-available/example.com lokacija ~ \.php$ (uključuje /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_read_timeout 300; }

Ako želite povećati vremensko ograničenje za sve domene na vašem serveru, možete urediti glavnu konfiguracijsku datoteku nginx.conf:

Nano /etc/nginx/nginx.conf

Dodajte sljedeći parametar u http(..) odjeljak

HTTP(#... fastcgi_read_timeout 300; #... }

Da li ste ikada dobili grešku Fatalna greška: Prekoračeno je maksimalno vrijeme izvršenja od 30 sekundi u WordPressu? Ova greška znači da je pokrenuta PHP skripta zahtijevala više vremena da se završi od postavljenog ograničenja i da je skripta zaustavljena zbog toga. Ovaj vodič će vam pomoći da shvatite pitanje kako povećati vrijeme izvršavanja skripte u PHP-u i time riješiti grešku koja je nastala.

Prije nego započnete ovaj vodič, provjerite imate li:

  • Pristup administrativnoj konzoli vaše WordPress stranice (engleski)

Korak 1 – Instalirajte WP dodatak za prekoračenje maksimalnog vremena izvršavanja

WordPress ima ogromnu zajednicu, tako da postoji zgodan dodatak ili nekoliko njih za svaku funkcionalnost koja vam je potrebna. Naša situacija nije izuzetak; da biste povećali vrijeme izvršavanja skripte u PHP-u, možete koristiti dodatak WP Maximum Execution Time Exceeded i ispraviti grešku koja je nastala. Detaljna uputstva o tome kako da instalirate WordPress dodatak možete pronaći.

Ovaj dodatak pravi promjene u .htaccess fajlu i povećava vremenska ograničenja za izvršavanje skripte. Nakon instaliranja dodatka, ne morate ništa drugo raditi, sve je već urađeno od strane dodatka. Dodatak nema stranicu sa podešavanjima, tako da ako želite da vratite prethodne postavke, jednostavno obrišite dodatak i .htaccess će biti vraćen u prvobitni oblik.

Korak 2 – Ručno uređivanje .htaccess datoteke

Ako već imate instalirano puno dodataka i ne želite koristiti dodatni ili vam jednostavno nije pomoglo da se riješite greške, tada možete ručno napraviti promjene u .htaccess fajlu kako biste povećali maksimalno izvršenje rok. Najlakši način za korištenje File manager koji se nalazi na vašoj kontrolnoj tabli. Ako ne znate kako pronaći .htaccess datoteku, pogledajte detaljna uputstva. Moraćete da unesete sledeći kod u .htaccess fajl na dnu i da ga sačuvate klikom Sačuvaj:

Php_value max_execution_time 60

Ovo će povećati vrijednost parametra max_execution_time i, za PHP, vrijeme izvršenja skripte na 60 sekundi (1 minut). Ako i dalje dobijete ovu grešku, pokušajte je povećati još više - do 120/180 sekundi i tako dalje.

Korak 3 – Promjena vrijednosti max_execution_time u cPanelu

Ako koristite cPanel, tada možete povećati parametar max_execution_time direktno kroz cPanel. Idi na odjeljak Odaberite verziju PHP-a (Odaberite verziju PHP-a).

Povećajte vrijednost koju vidite u liniji max_execution_time. Obično je po defaultu postavljeno na 30 sekundi, u našem primjeru smo ga povećali na 60 sekundi. Kliknite Prijavite se(Primijeni) da sačuvate promjene.

To je sve, uspješno ste povećali vrijednost graničnog parametra max_execution_time za vašu web stranicu.

Zaključak

Prateći ovaj vodič, naučili ste 3 načina za povećanje max_execution_time za WordPress, da promijenite vrijeme izvršavanja skripte u PHP-u i riješite se greške Fatalna greška: Prekoračeno je maksimalno vrijeme izvršenja. Ako koristite dijeljeni hosting i nijedno od rješenja ne radi za vas, kontaktirajte svog hosting provajdera da provjerite koja su vaša stvarna ograničenja i mogu li se ona uopće promijeniti.

Ako razvijate veliki projekat, može potrajati dosta vremena za obradu nekih podataka. Različite hosting stranice imaju svoja ograničenja za takve radnje, a ako vas je potreba za povećanjem ovog vremena dovela ovdje, onda ću vam detaljno reći kako se to može učiniti.

Da biste razumjeli o čemu govorimo, dat ću mali primjer. Ako prekoračite postavljeni vremenski okvir, možete dobiti sljedeću grešku:

Fatalna greška: Maksimalno vrijeme izvršenja od 30 sekundi je premašeno u site.php na liniji 19

Reći ću vam o 4 načina da ga se riješite.

Ali vrijedi početi s činjenicom da u svakom pojedinačnom slučaju sve navedene metode možda neće raditi, jer neki hosting provajderi zabranjuju sami promjenu ovog parametra.

Povećanje vremena izvršavanja PHP skripte kroz konfiguracioni fajl php.ini

Kao prvi način da povećamo vrijeme izvršavanja skripte, koristit ćemo konfiguracijski fajl php.ini.

Da biste saznali gdje se tačno nalazi ovaj fajl, pročitajte.

Otvorite ga na način koji vam odgovara i umetnite na samom dnu:

Max_execution_time = 300;

gdje " 300 "znači 300 sekundi (promijenite na svoje). Ova datoteka, nažalost, nije dostupna za uređivanje od strane korisnika na svim hosting stranicama.

Povećanje vremena izvršavanja PHP skripte kroz ugrađenu funkciju “ini_set”.

Druga metoda se temelji na korištenju funkcije " ini_set" Ubacujete ga direktno u samu datoteku skripte, po mogućnosti na samom vrhu. primjer:

Ovdje je značenje " 300 „Takođe se menjate na ono što vam je potrebno za nekoliko sekundi. Bilješka da kada koristite PHP u sigurnom načinu rada, ova funkcija neće biti dostupna.

Povećanje vremena izvršavanja PHP skripte kroz ugrađenu funkciju “set_time_limit”

Treća metoda, vjerovatno jedna od najpopularnijih, je korištenje “ set_time_limit» da promijenite vrijeme izvršavanja skripte. Takođe se koristi direktno u samom PHP fajlu. primjer:

ovdje " 300 "također mijenjate vrijednost koja vam je potrebna. Preporučljivo je umetnuti kod na samom vrhu.

Povećanje vremena izvršavanja PHP skripte kroz .htaccess datoteku

Posljednja opcija je uređivanje datoteke .htaccess, koji se nalazi u korijenu vaše stranice (ako ne postoji, kreirajte ga).

Na samom vrhu ove datoteke zalijepite:

Php_value max_execution_time 300

značenje " 300 „Ti je takođe promeniš u svoju.

Bilješka, da je u svim slučajevima vrijeme izvršenja skripte naznačeno u sekundama. Osim toga, vrijednost parametra u svim metodama može uzeti " 0 “, što znači neograničeno vrijeme izvršenja.

Kako mogu saznati koliko je vremena dodijeljeno za izvršavanje PHP skripte?

Nakon što ste jednom od metoda pokušali promijeniti vrijeme izvršavanja skripte, morate saznati da li ste zaista uspjeli.

Da biste to učinili, kreirajte PHP datoteku u korijenu vaše stranice, gdje ćete ispisati vrijednost postavljenog vremena:

Ako je vrijeme jednako onome što ste naveli, čestitamo, postigli ste željeni cilj. U suprotnom, pročitajte članak ponovo, napišite u komentarima o svom problemu ili ga proslijedite svom hosting provajderu.

Ako razvijate veliki projekat, može potrajati dosta vremena za obradu nekih podataka. Različite hosting stranice imaju svoja ograničenja za takve radnje, a ako vas je potreba za povećanjem ovog vremena dovela ovdje, onda ću vam detaljno reći kako se to može učiniti.

Da biste razumjeli o čemu govorimo, dat ću mali primjer. Ako prekoračite postavljeni vremenski okvir, možete dobiti sljedeću grešku:

Fatalna greška: Maksimalno vrijeme izvršenja od 30 sekundi je premašeno u pandoge_com.php na liniji 19

Reći ću vam o 4 načina da ga se riješite.

Ali vrijedi početi s činjenicom da u svakom pojedinačnom slučaju sve navedene metode možda neće raditi, jer neki hosting provajderi zabranjuju sami promjenu ovog parametra.

Povećanje vremena izvršavanja PHP skripte kroz konfiguracioni fajl php.ini

Kao prvi način da povećamo vrijeme izvršavanja skripte, koristit ćemo konfiguracijski fajl php.ini.

Da biste saznali gdje se tačno nalazi ovaj fajl, pročitajte.

Otvorite ga na način koji vam odgovara i umetnite na samom dnu:

Max_execution_time = 300;

gdje " 300 "znači 300 sekundi (promijenite na svoje). Ova datoteka, nažalost, nije dostupna za uređivanje od strane korisnika na svim hosting stranicama.

Povećanje vremena izvršavanja PHP skripte kroz ugrađenu funkciju “ini_set”.

Druga metoda se temelji na korištenju funkcije " ini_set" Ubacujete ga direktno u samu datoteku skripte, po mogućnosti na samom vrhu. primjer:

Ovdje je značenje " 300 „Takođe se menjate na ono što vam je potrebno za nekoliko sekundi. Bilješka da kada koristite PHP u sigurnom načinu rada, ova funkcija neće biti dostupna.

Povećanje vremena izvršavanja PHP skripte kroz ugrađenu funkciju “set_time_limit”

Treća metoda, vjerovatno jedna od najpopularnijih, je korištenje “ set_time_limit» da promijenite vrijeme izvršavanja skripte. Takođe se koristi direktno u samom PHP fajlu. primjer:

ovdje " 300 "također mijenjate vrijednost koja vam je potrebna. Preporučljivo je umetnuti kod na samom vrhu.

Povećanje vremena izvršavanja PHP skripte kroz .htaccess datoteku

Posljednja opcija je uređivanje datoteke .htaccess, koji se nalazi u korijenu vaše stranice (ako ne postoji, kreirajte ga).

Na samom vrhu ove datoteke zalijepite:

Php_value max_execution_time 300

značenje " 300 „Ti je takođe promeniš u svoju.

Bilješka, da je u svim slučajevima vrijeme izvršenja skripte naznačeno u sekundama. Osim toga, vrijednost parametra u svim metodama može uzeti " 0 “, što znači neograničeno vrijeme izvršenja.

Kako mogu saznati koliko je vremena dodijeljeno za izvršavanje PHP skripte?

Nakon što ste jednom od metoda pokušali promijeniti vrijeme izvršavanja skripte, morate saznati da li ste zaista uspjeli.

Da biste to učinili, kreirajte PHP datoteku u korijenu vaše stranice, gdje ćete ispisati vrijednost postavljenog vremena:

Ako je vrijeme jednako onome što ste naveli, čestitamo, postigli ste željeni cilj. U suprotnom, pročitajte članak ponovo, napišite u komentarima o svom problemu ili ga proslijedite svom hosting provajderu.

Od autora: sin mog prijatelja se toliko zainteresovao za hemiju da je počeo da provodi razne "testove" kod kuće. Nakon što je luster u kuhinji postao njihova "žrtva", otac ga je zamolio da promijeni svoje preferencije. Kao rezultat toga, dijete se zainteresiralo za statistiku i odlučilo izračunati prosječno vrijeme gorenja jedne šibice. Rezultat je bio da se cijeli stan zamalo zapalio. Savjetovao sam budućeg naučnika da počne programirati i podesiti vrijeme izvršavanja PHP skripte.

Zašto mjerenja u programiranju?

Prije svega, sigurnije je od hemije i statistike. Ali u stvari, vrijeme izvršavanja programskog koda je važan parametar koji utječe na performanse cijelog resursa i njegovih pojedinačnih modula. Ovaj parametar je traženiji tokom optimizacije i testiranja.

Hajde da se malo zamislimo. Zamislimo da postoji neka vrsta „kućno pisanog“ motora, koji je programer „prebacio“ na dobar hosting i pokrenuo (na osnovu njega) svoju web stranicu. Ali iz nekog razloga, učitavanje resursa na strani korisnika je vrlo sporo.

U takvoj situaciji u početku će sve neravnine pasti na hostera. Najvjerovatnije će ljutiti programer podnijeti žalbu službi za podršku hostinga. Kažu da se uslovi ugovora ne ispunjavaju, sajt jedva "živi"...

Ali zapravo, problem sporog učitavanja stranica dinamičkog resursa može biti skriven u samom motoru. A kako kasnije ne bi izgledali kao "budala", iskusni programer uvijek mjeri vrijeme izvršavanja PHP skripte prije nego što isporuči projekat.

PHP karakteristike

Uvek sam ga nazivao jednim od najpogodnijih programskih jezika. Da bi pratio vrijeme rada koda, programer ne mora pisati duge „talmude“ da bi presreo svaki red skripte. Ova tehnologija implementira nekoliko specijalizovanih alata. Glavna je funkcija microtime(). Vraća vrijeme (u milisekundama) koje je prošlo od početka 1970. godine. Takozvani “početak Unix ere”. Ako proslijedite parametar get_as_float funkciji sa vrijednošću true, tada će ona vratiti vremenski period u obliku cijelih sekundi i razlomaka milisekundi.

Princip korištenja microtime() je sljedeći: funkcija se poziva na početku skripte i na njenom kraju. Tada se početna vrijednost oduzima od posljednje vrijednosti. Evo kako izračunati vrijeme izvršavanja skripte:

"; $last=microtime(true); $value=$last-$first; echo "Skripta se izvršava u: ".$value; ?>

Promjena vremena rada koda

U PHP-u, vrijednost vremena izvođenja skripte može biti programski ograničena (smanjenje ili povećanje). Za to se koristi nekoliko funkcija, od kojih svaka prepisuje skup parametara u konfiguracijskoj datoteci (php.ini).
Prvo, modificirajmo naš kod i povećamo broj iteracija petlje za 20 puta na 200 miliona. Ako je sve u redu, tada bi nakon pokretanja skripte trebala dobiti fatalnu poruku o grešci.

To znači da je u postavkama parametar max_execution_time postavljen na zadanu vrijednost (30 sekundi). Hajde da povećamo maksimalno vreme izvršavanja skripte u PHP-u za 3 puta.

set_time_limit(90);

Sada ne primamo nijednu poruku o grešci.