Dagdagan ang oras ng pagpapatupad ng script. Tumaas na oras ng pagpapatupad ng PHP script na may Nginx. Bakit ang mga sukat sa programming?

Kung mayroon kang malaking proyekto o server na may limitadong mapagkukunan, madalas mong makikita ang error na "504 Gateway Time-out".

Maaari mong sundin ang mga hakbang sa ibaba upang taasan ang halaga ng timeout. Sa PHP ang default ay 30 segundo.

Mga pagbabago sa php.ini

Kung gusto mong baguhin ang maximum na oras ng pagpapatupad para sa mga script ng PHP mula 30 segundo (default) hanggang 300 segundo.

Nano /etc/php5/fpm/php.ini

I-install...

Max_execution_time = 300

Sa Apache PHP ay tumatakbo bilang isang module, ang mga pagbabagong ito ay magiging sapat. Ngunit sa aming kaso, kailangan naming gumawa ng mga pagbabago sa ilang higit pang mga lugar.

Mga pagbabago sa PHP-FPM

Ito ay kinakailangan kung inalis mo sa komento ang parameter na request_terminate_timeout nang mas maaga. Bilang default, ito ay nagkomento at kinukuha ang max_execution_time found value mula sa php.ini

Binubuksan...

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

Ini-install...

Request_terminate_timeout = 300

Mga pagbabago sa Nginx Config

Pagtaas ng limitasyon sa oras para sa isang domain example.com

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

Kung gusto mong taasan ang limitasyon sa oras para sa lahat ng domain sa iyong server, maaari mong i-edit ang pangunahing nginx.conf configuration file:

Nano /etc/nginx/nginx.conf

Idagdag ang sumusunod na parameter sa seksyong http(..).

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

Nakatanggap ka na ba ng error Fatal Error: Lumampas ang maximum na oras ng pagpapatupad na 30 segundo sa WordPress? Ang error na ito ay nangangahulugan na ang tumatakbong PHP script ay nangangailangan ng mas maraming oras upang makumpleto kaysa sa limitasyon na itinakda at ang script ay nahinto dahil dito. Tutulungan ka ng gabay na ito na maunawaan ang tanong kung paano dagdagan ang oras ng pagpapatupad ng script sa PHP at sa gayon ay malutas ang error na lumitaw.

Bago simulan ang gabay na ito, suriin kung mayroon kang:

  • Access sa Administrative Console ng iyong WordPress site (English)

Hakbang 1 – I-install ang WP Maximum Execution Time Exeeded Plugin

Ang WordPress ay may malaking komunidad, kaya mayroong isang madaling gamitin na plugin o marami para sa bawat pag-andar na kailangan mo. Ang aming sitwasyon ay walang pagbubukod; upang madagdagan ang oras ng pagpapatupad ng script sa PHP, maaari mong gamitin ang WP Maximum Execution Time Exeeded plugin at ayusin ang error na lumitaw. Ang mga detalyadong tagubilin sa kung paano i-install ang WordPress plugin ay matatagpuan.

Ang plugin na ito ay gumagawa ng mga pagbabago sa .htaccess file at pinapataas ang mga limitasyon sa oras ng pagpapatupad ng script. Pagkatapos i-install ang plugin, hindi mo na kailangang gumawa ng iba pa, ang lahat ay tapos na ng plugin. Walang pahina ng mga setting ang plugin, kaya kung gusto mong ibalik ang mga nakaraang setting, tanggalin lang ang plugin at ibabalik ang .htaccess sa orihinal nitong anyo.

Hakbang 2 – Manu-manong pag-edit ng .htaccess file

Kung marami ka nang naka-install na plugin at ayaw mong gumamit ng karagdagang isa o hindi lang ito nakatulong sa iyo na maalis ang error, maaari kang gumawa ng mga pagbabago sa .htaccess file nang manu-mano upang mapataas ang maximum execution takdang oras. Ang pinakamadaling paraan upang gamitin Tagapamahala ng file matatagpuan sa iyong Control Panel. Kung hindi mo alam kung paano hanapin ang .htaccess file, mangyaring sumangguni sa mga detalyadong tagubilin. Kakailanganin mong ilagay ang sumusunod na code sa .htaccess file sa ibaba at i-save ito sa pamamagitan ng pag-click I-save:

Php_value max_execution_time 60

Dadagdagan nito ang halaga ng max_execution_time na parameter at, para sa PHP, ang oras ng pagpapatupad ng script sa 60 segundo (1 minuto). Kung makukuha mo pa rin ang error na ito, subukang pataasin pa ito - hanggang 120/180 segundo at iba pa.

Hakbang 3 – Pagbabago sa halaga ng max_execution_time sa cPanel

Kung gumagamit ka ng cPanel, maaari mong dagdagan ang max_execution_time na parameter nang direkta sa pamamagitan ng cPanel. Pumunta sa seksyon Piliin ang Bersyon ng PHP (Piliin ang bersyon ng PHP).

Dagdagan ang halaga na nakikita mo sa linya max_execution_time. Karaniwan, ito ay nakatakda sa 30 segundo bilang default, sa aming halimbawa ay dinagdagan namin ito sa 60 segundo. I-click Mag-apply(Ilapat) upang i-save ang mga pagbabago.

Iyon lang, matagumpay mong nadagdagan ang halaga ng parameter ng limitasyon max_execution_time para sa iyong website.

Konklusyon

Sa pamamagitan ng pagsunod sa gabay na ito, natutunan mo ang 3 paraan upang madagdagan max_execution_time para sa WordPress, upang baguhin ang oras ng pagpapatupad ng script sa PHP at alisin ang error Fatal Error: Lumampas ang maximum na oras ng pagpapatupad. Kung gumagamit ka ng nakabahaging pagho-host at wala sa mga solusyon ang gumagana para sa iyo, pagkatapos ay makipag-ugnayan sa iyong hosting provider upang suriin kung ano ang iyong mga aktwal na paghihigpit at kung maaari silang baguhin.

Kung gumagawa ka ng isang malaking proyekto, maaaring tumagal ng maraming oras upang maproseso ang ilang data. Ang iba't ibang mga hosting site ay may sariling mga limitasyon sa mga naturang aksyon, at kung ang pangangailangan na dagdagan ang oras na ito ay nagdala sa iyo dito, pagkatapos ay sasabihin ko sa iyo nang detalyado kung paano ito magagawa.

Upang maunawaan mo ang pinag-uusapan natin, magbibigay ako ng isang maliit na halimbawa. Kung lalampas ka sa itinakdang time frame, maaari mong matanggap ang sumusunod na error:

Malalang error: Lumampas ang maximum na oras ng pagpapatupad na 30 segundo sa site.php sa linya 19

Sasabihin ko sa iyo ang tungkol sa 4 na paraan upang maalis ito.

Ngunit sulit na magsimula sa katotohanan na sa bawat indibidwal na kaso, maaaring hindi gumana ang lahat ng nakalistang pamamaraan, dahil ipinagbabawal ng ilang provider ng hosting na baguhin ang parameter na ito sa kanilang sarili.

Ang pagtaas ng oras ng pagpapatupad ng PHP script sa pamamagitan ng php.ini configuration file

Bilang unang paraan upang madagdagan ang oras ng pagpapatupad ng script, gagamitin namin ang configuration file php.ini.

Upang malaman kung saan eksakto ang file na ito, basahin.

Buksan ito sa paraang maginhawa para sa iyo at ilagay sa pinakailalim:

Max_execution_time = 300;

saan" 300 "nangangahulugang 300 segundo (palitan sa iyo). Ang file na ito, sa kasamaang-palad, ay hindi magagamit para sa pag-edit ng mga user sa lahat ng hosting site.

Ang pagpapataas ng oras ng pagpapatupad ng PHP script sa pamamagitan ng built-in na “ini_set” function

Ang pangalawang paraan ay batay sa paggamit ng function na " ini_set" Direktang ipasok mo ito sa mismong script file, mas mabuti sa pinakatuktok. Halimbawa:

Narito ang kahulugan ay " 300 "Magbabago ka rin sa kailangan mo sa ilang segundo. tala na kapag gumagamit ng PHP sa safe mode, hindi magiging available ang function na ito.

Ang pagtaas ng oras ng pagpapatupad ng script ng PHP sa pamamagitan ng built-in na function na "set_time_limit"

Ang ikatlong paraan, marahil ang isa sa pinakasikat, ay ang paggamit ng " set_time_limit» upang baguhin ang oras ng pagpapatupad ng script. Direkta ring ginagamit sa PHP file mismo. Halimbawa:

dito" 300 "magbabago ka rin sa halagang kailangan mo. Maipapayo na ipasok ang code sa pinakatuktok.

Ang pagpapataas ng oras ng pagpapatupad ng PHP script sa pamamagitan ng .htaccess file

Ang huling opsyon ay i-edit ang file .htaccess, na matatagpuan sa ugat ng iyong site (kung wala ito, gawin ito).

Sa pinakatuktok ng file na ito i-paste:

Php_value max_execution_time 300

Ibig sabihin" 300 "Ibahin mo rin sa iyo.

tala, na sa lahat ng kaso ang oras ng pagpapatupad ng script ay ipinahiwatig sa mga segundo. Bilang karagdagan, ang halaga ng parameter sa lahat ng mga pamamaraan ay maaaring tumagal ng " 0 ", na nangangahulugang walang limitasyong oras ng pagpapatupad.

Paano ko malalaman kung gaano karaming oras ang inilalaan para magsagawa ng PHP script?

Pagkatapos mong subukang baguhin ang oras ng pagpapatupad ng script gamit ang isa sa mga pamamaraan, kailangan mong malaman kung talagang nagtagumpay ka.

Upang gawin ito, lumikha ng PHP file sa ugat ng iyong site, kung saan ilalabas mo ang halaga ng itinakdang oras:

Kung ang oras ay katumbas ng iyong ipinahiwatig, binabati kita, naabot mo ang iyong ninanais na layunin. Kung hindi, basahin muli ang artikulo, sumulat sa mga komento tungkol sa iyong problema o ipasa ito sa iyong hosting provider.

Kung gumagawa ka ng isang malaking proyekto, maaaring tumagal ng maraming oras upang maproseso ang ilang data. Ang iba't ibang mga hosting site ay may sariling mga limitasyon sa mga naturang aksyon, at kung ang pangangailangan na dagdagan ang oras na ito ay nagdala sa iyo dito, pagkatapos ay sasabihin ko sa iyo nang detalyado kung paano ito magagawa.

Upang maunawaan mo ang pinag-uusapan natin, magbibigay ako ng isang maliit na halimbawa. Kung lalampas ka sa itinakdang time frame, maaari mong matanggap ang sumusunod na error:

Malalang error: Lumampas ang maximum na oras ng pagpapatupad na 30 segundo sa pandoge_com.php sa linya 19

Sasabihin ko sa iyo ang tungkol sa 4 na paraan upang maalis ito.

Ngunit sulit na magsimula sa katotohanan na sa bawat indibidwal na kaso, maaaring hindi gumana ang lahat ng nakalistang pamamaraan, dahil ipinagbabawal ng ilang provider ng hosting na baguhin ang parameter na ito sa kanilang sarili.

Ang pagtaas ng oras ng pagpapatupad ng PHP script sa pamamagitan ng php.ini configuration file

Bilang unang paraan upang madagdagan ang oras ng pagpapatupad ng script, gagamitin namin ang configuration file php.ini.

Upang malaman kung saan eksakto ang file na ito, basahin.

Buksan ito sa paraang maginhawa para sa iyo at ilagay sa pinakailalim:

Max_execution_time = 300;

saan" 300 "nangangahulugang 300 segundo (palitan sa iyo). Ang file na ito, sa kasamaang-palad, ay hindi magagamit para sa pag-edit ng mga user sa lahat ng hosting site.

Ang pagpapataas ng oras ng pagpapatupad ng PHP script sa pamamagitan ng built-in na “ini_set” function

Ang pangalawang paraan ay batay sa paggamit ng function na " ini_set" Direktang ipasok mo ito sa mismong script file, mas mabuti sa pinakatuktok. Halimbawa:

Narito ang kahulugan ay " 300 "Magbabago ka rin sa kailangan mo sa ilang segundo. tala na kapag gumagamit ng PHP sa safe mode, hindi magiging available ang function na ito.

Ang pagtaas ng oras ng pagpapatupad ng script ng PHP sa pamamagitan ng built-in na function na "set_time_limit"

Ang ikatlong paraan, marahil ang isa sa pinakasikat, ay ang paggamit ng " set_time_limit» upang baguhin ang oras ng pagpapatupad ng script. Direkta ring ginagamit sa PHP file mismo. Halimbawa:

dito" 300 "magbabago ka rin sa halagang kailangan mo. Maipapayo na ipasok ang code sa pinakatuktok.

Ang pagpapataas ng oras ng pagpapatupad ng PHP script sa pamamagitan ng .htaccess file

Ang huling opsyon ay i-edit ang file .htaccess, na matatagpuan sa ugat ng iyong site (kung wala ito, gawin ito).

Sa pinakatuktok ng file na ito i-paste:

Php_value max_execution_time 300

Ibig sabihin" 300 "Ibahin mo rin sa iyo.

tala, na sa lahat ng kaso ang oras ng pagpapatupad ng script ay ipinahiwatig sa mga segundo. Bilang karagdagan, ang halaga ng parameter sa lahat ng mga pamamaraan ay maaaring tumagal ng " 0 ", na nangangahulugang walang limitasyong oras ng pagpapatupad.

Paano ko malalaman kung gaano karaming oras ang inilalaan para magsagawa ng PHP script?

Pagkatapos mong subukang baguhin ang oras ng pagpapatupad ng script gamit ang isa sa mga pamamaraan, kailangan mong malaman kung talagang nagtagumpay ka.

Upang gawin ito, lumikha ng PHP file sa ugat ng iyong site, kung saan ilalabas mo ang halaga ng itinakdang oras:

Kung ang oras ay katumbas ng iyong ipinahiwatig, binabati kita, naabot mo ang iyong ninanais na layunin. Kung hindi, basahin muli ang artikulo, sumulat sa mga komento tungkol sa iyong problema o ipasa ito sa iyong hosting provider.

Mula sa may-akda: naging interesado ang anak ng kaibigan ko sa chemistry kaya nagsimula siyang magsagawa ng iba't ibang "pagsusulit" sa bahay. Matapos maging “biktima” nila ang chandelier sa kusina, hiniling sa kanya ng kanyang ama na baguhin ang kanyang mga kagustuhan. Bilang resulta, naging interesado ang bata sa mga istatistika at nagpasya na kalkulahin ang average na oras ng pagsunog ng isang tugma. Ang resulta ay halos masunog ang buong apartment. Pinayuhan ko ang magiging scientist na simulan ang programming at itakda ang oras ng pagpapatupad ng PHP script.

Bakit ang mga sukat sa programming?

Una sa lahat, ito ay mas ligtas kaysa sa kimika at istatistika. Ngunit sa katunayan, ang oras ng pagpapatupad ng code ng programa ay isang mahalagang parameter na nakakaapekto sa pagganap ng buong mapagkukunan at mga indibidwal na module nito. Ang parameter na ito ay higit na hinihiling sa panahon ng pag-optimize at pagsubok.

Mag-imagine tayo ng kaunti. Isipin natin na mayroong ilang uri ng "home-written" na makina, na "na-upload" ng developer sa isang mahusay na pagho-host at inilunsad (batay dito) ang kanyang website. Ngunit sa ilang kadahilanan, ang paglo-load ng mapagkukunan sa gilid ng gumagamit ay napakabagal.

Sa ganoong sitwasyon, sa una lahat ng bumps ay mahuhulog sa hoster. Malamang, ang isang galit na programmer ay magsampa ng reklamo sa serbisyo ng suporta sa pagho-host. Sinasabi nila na ang mga tuntunin ng kontrata ay hindi natutupad, ang site ay halos "buhay" ...

Ngunit sa katunayan, ang problema ng mabagal na paglo-load ng mga pahina ng isang dinamikong mapagkukunan ay maaaring nakatago sa mismong makina. At upang hindi magmukhang "dummie" sa ibang pagkakataon, palaging sinusukat ng isang bihasang developer ang oras ng pagpapatupad ng script ng PHP bago maghatid ng proyekto.

Mga Tampok ng PHP

Palagi ko itong tinatawag na isa sa mga pinaka-maginhawang programming language. Upang subaybayan ang oras ng pagpapatakbo ng code, hindi kailangan ng developer na magsulat ng mahahabang "talmuds" upang ma-intercept ang bawat linya ng script. Ang teknolohiyang ito ay nagpapatupad ng ilang mga espesyal na tool. Ang pangunahing isa ay ang microtime() function. Ibinabalik nito ang oras (sa millisecond) na lumipas mula noong simula ng 1970. Ang tinatawag na "simula ng panahon ng Unix." Kung ipapasa mo ang get_as_float parameter sa function na may value na true, ibabalik nito ang yugto ng panahon sa anyo ng buong segundo at fractional millisecond.

Ang prinsipyo ng paggamit ng microtime() ay ang mga sumusunod: ang function ay tinatawag sa simula ng script at sa dulo nito. Pagkatapos ang paunang halaga ay ibabawas mula sa huling halaga. Narito kung paano kalkulahin ang oras ng pagpapatupad ng isang script:

"; $last=microtime(true); $value=$last-$first; echo "Ang script ay isinagawa sa: ".$value; ?>

Pagbabago sa oras ng pagpapatakbo ng code

Sa PHP, ang halaga ng oras ng pagpapatakbo ng script ay maaaring limitado sa programmatically (pagbaba o pagtaas). Upang gawin ito, maraming mga function ang ginagamit, na ang bawat isa ay nag-o-overwrite sa isang parameter na itinakda sa configuration file (php.ini).
Una, baguhin natin ang ating code at dagdagan ang bilang ng mga pag-ulit ng loop nang 20 beses hanggang 200 milyon. Kung maayos ang lahat, pagkatapos ay pagkatapos patakbuhin ang script dapat kang makatanggap ng isang nakamamatay na mensahe ng error.

Nangangahulugan ito na sa mga setting ang max_execution_time na parameter ay nakatakda sa default na halaga (30 segundo). Dagdagan natin ng 3 beses ang maximum execution time ng isang script sa PHP.

set_time_limit(90);

Ngayon, wala kaming natatanggap na anumang mensahe ng error.