Növelje a szkript végrehajtási idejét. Egy PHP szkript megnövelt végrehajtási ideje az Nginx segítségével. Miért a mérések a programozásban?

Ha nagy projektje vagy korlátozott erőforrásokkal rendelkező szervere van, akkor gyakran megjelenik az „504 Gateway Time-out” hibaüzenet.

Az alábbi lépéseket követve növelheti az időtúllépés értékét. PHP-ben az alapértelmezett 30 másodperc.

Változások a php.ini-ben

Ha módosítani szeretné a PHP szkriptek maximális végrehajtási idejét 30 másodpercről (alapértelmezett) 300 másodpercre.

Nano /etc/php5/fpm/php.ini

Telepítés...

Maximális_végrehajtási_idő = 300

Az Apache-ban a PHP modulként fut, ezek a változtatások elegendőek lesznek. De esetünkben még több helyen kell változtatásokat végrehajtanunk.

Változások a PHP-FPM-ben

Erre akkor van szükség, ha korábban törölte a request_terminate_timeout paraméter megjegyzését. Alapértelmezés szerint ki van írva, és átveszi a max_execution_time found értéket a php.ini fájlból

Nyítás...

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

Telepítés...

Request_terminate_timeout = 300

Változások az Nginx Config-ban

Egy domain időkorlátjának növelése example.com

Nano /etc/nginx/sites-available/example.com hely ~ \.php$ ( tartalmazza az /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_read_timeout 300; }

Ha meg szeretné növelni az időkorlátot a szerverén lévő összes tartományra vonatkozóan, szerkesztheti a fő nginx.conf konfigurációs fájlt:

Nano /etc/nginx/nginx.conf

Adja hozzá a következő paramétert a http(..) szakaszhoz

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

Kapott-e valaha hibát Végzetes hiba: A maximális 30 másodperces végrehajtási idő túllépve a WordPressben? Ez a hiba azt jelenti, hogy a futó PHP szkriptnek több időre volt szüksége a beállított korlátnál, és a szkript emiatt leállt. Ez az útmutató segít megérteni azt a kérdést, hogy hogyan lehet megnövelni a szkript végrehajtási idejét PHP-ben, és ezáltal megoldani a felmerült hibát.

Mielőtt elkezdené ezt az útmutatót, ellenőrizze, hogy rendelkezik-e:

  • Hozzáférés a WordPress webhely Adminisztrációs konzoljához (angol)

1. lépés – Telepítse a WP Maximum Execution Time Exceeded plugint

A WordPress hatalmas közösséggel rendelkezik, így minden szükséges funkcióhoz van egy praktikus bővítmény vagy több. A mi helyzetünk sem kivétel, a PHP-ben a szkript végrehajtási idejének növeléséhez használhatja a WP Maximum Execution Time Exceeded plugint, és javíthatja ki a felmerült hibát. A WordPress beépülő modul telepítésének részletes leírása megtalálható.

Ez a beépülő modul módosítja a .htaccess fájlt, és megnöveli a szkript végrehajtási időkorlátját. A plugin telepítése után nem kell mást tennie, mindent a plugin már elvégez. A bővítménynek nincs beállítási oldala, így ha vissza akarja állítani a korábbi beállításokat, egyszerűen törölje a beépülő modult, és a .htaccess visszaáll az eredeti formájába.

2. lépés – A .htaccess fájl manuális szerkesztése

Ha már sok beépülő modul van telepítve, és nem szeretne további bővítményt használni, vagy az nem segített a hiba megszüntetésében, akkor manuálisan módosíthatja a .htaccess fájlt a maximális végrehajtás érdekében. határidő. A használat legegyszerűbb módja Fájl kezelő a Vezérlőpulton található. Ha nem tudja, hogyan találja meg a .htaccess fájlt, kérjük, olvassa el a részletes utasításokat. Az alul található .htaccess fájlba be kell írnia a következő kódot, és a kattintással mentenie kell Megment:

Php_value max_execution_time 60

Ez 60 másodpercre (1 percre) növeli a max_execution_time paraméter értékét, és PHP esetén a szkript végrehajtási idejét. Ha továbbra is ez a hibaüzenet jelenik meg, próbálja meg még tovább növelni – 120/180 másodpercig és így tovább.

3. lépés – A max_execution_time érték módosítása a cPanelben

Ha cPanel-t használ, akkor a max_execution_time paramétert közvetlenül a cPanel segítségével növelheti. Ugrás a szakaszra Válassza a PHP verziót (Válassza ki a PHP verzióját).

Növelje a sorban látható értéket max_execution_time. Általában alapértelmezés szerint 30 másodpercre van beállítva, példánkban 60 másodpercre növeltük. Kattintson Alkalmaz(Alkalmaz) a módosítások mentéséhez.

Ez minden, sikeresen megnövelte a határparaméter értékét max_execution_time webhelyéhez.

Következtetés

Az útmutató követésével 3 módszert tanult meg a növelés érdekében max_execution_time WordPress esetén a szkript végrehajtási idejének megváltoztatása PHP-ben és a hiba elhárítása Végzetes hiba: Túllépte a maximális végrehajtási időt. Ha megosztott tárhelyet használ, és egyik megoldás sem működik az Ön számára, forduljon tárhelyszolgáltatójához, és ellenőrizze, mik a tényleges korlátozások, és hogy egyáltalán módosíthatók-e.

Ha nagy projektet fejleszt, akkor bizonyos adatok feldolgozása sok időt vehet igénybe. A különböző tárhelyoldalaknak megvannak a maguk korlátai az ilyen műveletekre vonatkozóan, és ha az idő növelésének szükségessége hozta ide, akkor részletesen elmondom, hogyan lehet ezt megtenni.

Hogy megértsd, miről beszélünk, mondok egy kis példát. Ha túllépi a beállított időkeretet, a következő hibaüzenet jelenhet meg:

Végzetes hiba: Túllépte a maximális 30 másodperces végrehajtási időt a site.php 19. sorában

Elmondok neked 4 módot, hogy megszabadulj tőle.

De érdemes azzal a ténnyel kezdeni, hogy minden egyes esetben előfordulhat, hogy a felsorolt ​​módszerek mindegyike nem működik, mivel egyes tárhelyszolgáltatók megtiltják ennek a paraméternek a megváltoztatását.

PHP szkript végrehajtási idejének növelése a php.ini konfigurációs fájlon keresztül

A szkript végrehajtási idejének növelésének első módjaként a konfigurációs fájlt fogjuk használni php.ini.

Ha meg szeretné tudni, hogy pontosan hol található ez a fájl, olvassa el.

Nyissa ki az Ön számára kényelmes módon, és helyezze be a legalul:

Max_végrehajtási_idő = 300;

Ahol " 300 "300 másodpercet jelent (válts a tiédre). Ezt a fájlt sajnos nem minden tárhelyen szerkeszthetik a felhasználók.

PHP szkript végrehajtási idejének növelése a beépített „ini_set” függvényen keresztül

A második módszer a " függvény használatán alapul ini_set" Közvetlenül magába a szkriptfájlba szúrja be, lehetőleg a legfelül. Példa:

Itt a jelentése " 300 „Te is pillanatok alatt váltasz arra, amire szükséged van. jegyzet hogy a PHP csökkentett módban történő használatakor ez a funkció nem lesz elérhető.

PHP szkript végrehajtási idejének növelése a beépített „set_time_limit” függvényen keresztül

A harmadik módszer, amely valószínűleg az egyik legnépszerűbb, a „ set_time_limit» a szkript végrehajtási idejének módosításához. Közvetlenül magában a PHP fájlban is használatos. Példa:

Itt " 300 „Te is változtatsz a szükséges értékre. Célszerű a kódot a legfelül beszúrni.

PHP szkript végrehajtási idejének növelése a .htaccess fájlon keresztül

Az utolsó lehetőség a fájl szerkesztése .htaccess, amely a webhelye gyökerében található (ha nem létezik, hozza létre).

A fájl legtetejére illessze be:

Php_value max_execution_time 300

jelentése " 300 – Te is megváltoztatod a tiédre.

jegyzet, hogy a szkript végrehajtási ideje minden esetben másodpercben van megadva. Ezenkívül a paraméter értéke minden módszerben „ 0 ", ami korlátlan végrehajtási időt jelent.

Hogyan tudhatom meg, hogy mennyi idő áll rendelkezésre egy PHP szkript végrehajtására?

Miután megpróbálta megváltoztatni a szkript végrehajtási idejét az egyik módszerrel, meg kell találnia, hogy valóban sikerült-e.

Ehhez hozzon létre egy PHP fájlt a webhelye gyökerében, ahol kiírja a beállított idő értékét:

Ha az idő megegyezik azzal, amit jeleztél, gratulálunk, elérte a kívánt célt. Ellenkező esetben olvassa el újra a cikket, írja meg a megjegyzésekben a problémáját, vagy továbbítsa a tárhelyszolgáltatójának.

Ha nagy projektet fejleszt, akkor bizonyos adatok feldolgozása sok időt vehet igénybe. A különböző tárhelyoldalaknak megvannak a maguk korlátai az ilyen műveletekre vonatkozóan, és ha az idő növelésének szükségessége hozta ide, akkor részletesen elmondom, hogyan lehet ezt megtenni.

Hogy megértsd, miről beszélünk, mondok egy kis példát. Ha túllépi a beállított időkeretet, a következő hibaüzenet jelenhet meg:

Végzetes hiba: A maximális 30 másodperces végrehajtási idő túllépése a pandoge_com.php 19. sorában

Elmondok neked 4 módot, hogy megszabadulj tőle.

De érdemes azzal a ténnyel kezdeni, hogy minden egyes esetben előfordulhat, hogy a felsorolt ​​módszerek mindegyike nem működik, mivel egyes tárhelyszolgáltatók megtiltják ennek a paraméternek a megváltoztatását.

PHP szkript végrehajtási idejének növelése a php.ini konfigurációs fájlon keresztül

A szkript végrehajtási idejének növelésének első módjaként a konfigurációs fájlt fogjuk használni php.ini.

Ha meg szeretné tudni, hogy pontosan hol található ez a fájl, olvassa el.

Nyissa ki az Ön számára kényelmes módon, és helyezze be a legalul:

Max_végrehajtási_idő = 300;

Ahol " 300 "300 másodpercet jelent (válts a tiédre). Ezt a fájlt sajnos nem minden tárhelyen szerkeszthetik a felhasználók.

PHP szkript végrehajtási idejének növelése a beépített „ini_set” függvényen keresztül

A második módszer a " függvény használatán alapul ini_set" Közvetlenül magába a szkriptfájlba szúrja be, lehetőleg a legfelül. Példa:

Itt a jelentése " 300 „Te is pillanatok alatt váltasz arra, amire szükséged van. jegyzet hogy a PHP csökkentett módban történő használatakor ez a funkció nem lesz elérhető.

PHP szkript végrehajtási idejének növelése a beépített „set_time_limit” függvényen keresztül

A harmadik módszer, amely valószínűleg az egyik legnépszerűbb, a „ set_time_limit» a szkript végrehajtási idejének módosításához. Közvetlenül magában a PHP fájlban is használatos. Példa:

Itt " 300 „Te is változtatsz a szükséges értékre. Célszerű a kódot a legfelül beszúrni.

PHP szkript végrehajtási idejének növelése a .htaccess fájlon keresztül

Az utolsó lehetőség a fájl szerkesztése .htaccess, amely a webhelye gyökerében található (ha nem létezik, hozza létre).

A fájl legtetejére illessze be:

Php_value max_execution_time 300

jelentése " 300 – Te is megváltoztatod a tiédre.

jegyzet, hogy a szkript végrehajtási ideje minden esetben másodpercben van megadva. Ezenkívül a paraméter értéke minden módszerben „ 0 ", ami korlátlan végrehajtási időt jelent.

Hogyan tudhatom meg, hogy mennyi idő áll rendelkezésre egy PHP szkript végrehajtására?

Miután megpróbálta megváltoztatni a szkript végrehajtási idejét az egyik módszerrel, meg kell találnia, hogy valóban sikerült-e.

Ehhez hozzon létre egy PHP fájlt a webhelye gyökerében, ahol kiírja a beállított idő értékét:

Ha az idő megegyezik azzal, amit jeleztél, gratulálunk, elérte a kívánt célt. Ellenkező esetben olvassa el újra a cikket, írja meg a megjegyzésekben a problémáját, vagy továbbítsa a tárhelyszolgáltatójának.

A szerzőtől: a barátom fia annyira érdeklődni kezdett a kémia iránt, hogy különféle „teszteket” kezdett végezni otthon. Miután a konyhában lévő csillár az „áldozatuk” lett, apja megkérte, hogy változtassa meg a preferenciáit. Ennek eredményeként a gyermek érdeklődni kezdett a statisztikák iránt, és úgy döntött, hogy kiszámítja egy gyufa átlagos égési idejét. Ennek az lett az eredménye, hogy az egész lakás majdnem kigyulladt. Azt tanácsoltam a leendő tudósnak, hogy kezdje el a programozást és állítsa be a PHP szkript végrehajtási idejét.

Miért a mérések a programozásban?

Először is biztonságosabb, mint a kémia és a statisztika. Valójában azonban a programkód végrehajtási ideje egy fontos paraméter, amely befolyásolja a teljes erőforrás és az egyes modulok teljesítményét. Erre a paraméterre nagyobb az igény az optimalizálás és a tesztelés során.

Képzeljük el egy kicsit. Képzeljük el, hogy van valami „házilag írt” motor, amit a fejlesztő „feltöltött” egy jó tárhelyre, és elindította (ez alapján) a weboldalát. De valamiért nagyon lassú az erőforrás felhasználói oldalon történő betöltése.

Ilyen helyzetben kezdetben minden ütés a házigazdára esik. Valószínűleg egy dühös programozó panaszt tesz a tárhely-támogatási szolgálatnál. Azt mondják, nem teljesülnek a szerződésben foglaltak, alig „él” az oldal...

Valójában azonban a dinamikus erőforrás oldalainak lassú betöltésének problémája magában a motorban rejtőzhet. És annak érdekében, hogy később ne tűnjön „bábunak”, egy tapasztalt fejlesztő mindig megméri egy PHP-szkript végrehajtási idejét, mielőtt átadná a projektet.

PHP jellemzők

Mindig is az egyik legkényelmesebb programozási nyelvnek neveztem. A kód futási idejének nyomon követéséhez a fejlesztőnek nem kell hosszú „talmudokat” írnia, hogy elfogja a szkript minden sorát. Ez a technológia számos speciális eszközt valósít meg. A legfontosabb a microtime() függvény. Az 1970 eleje óta eltelt időt adja vissza (ezredmásodpercben). Az úgynevezett „Unix-korszak kezdete”. Ha a get_as_float paramétert igaz értékkel adjuk át a függvénynek, akkor az egész másodpercben és töredék ezredmásodpercben adja vissza az időtartamot.

A microtime() használatának elve a következő: a függvényt a szkript elején és a végén hívják meg. Ezután a kezdeti értéket kivonjuk az utolsó értékből. A következőképpen számíthatja ki a szkript végrehajtási idejét:

"; $last=microtime(true); $value=$last-$first; echo "A szkript a következőben fut le: ".$value; ?>

A kód futási idejének megváltoztatása

PHP-ben a szkript futási idejének értéke programozottan korlátozható (csökkenthető vagy növelhető). Ehhez több függvényt használnak, amelyek mindegyike felülír egy paraméterkészletet a konfigurációs fájlban (php.ini).
Először is módosítsuk a kódunkat, és növeljük a hurok iterációinak számát 20-szorosára 200 millióra. Ha minden rendben van, akkor a szkript futtatása után végzetes hibaüzenetet kell kapnia.

Ez azt jelenti, hogy a beállításokban a max_execution_time paraméter az alapértelmezett értékre (30 másodperc) van beállítva. Növeljük háromszorosára egy script maximális végrehajtási idejét PHP-ben.

set_time_limit(90);

Most már nem kapunk hibaüzenetet.