Datrys y gwall y mae php yn ei annog Wedi rhagori ar yr amser gweithredu mwyaf o 30 eiliad

llawer oMarchnata rhyngrwyddysgu newbieGwefan WordPress, mae'r dudalen PHP yn wag am amser hir.

Yna mae'r neges gwall ganlynol yn ymddangos:

Fatal error: Maximum execution time of 30 seconds exceeded in ......

Yn syml iawn, mae'n golygu bod amser gweithredu PHP yn fwy na'r terfyn 30 eiliad.

Chen WeiliangDaethpwyd ar draws y gwall hwn o'r blaen hefyd, ac mae'r erthygl hon yn crynhoi'r dull trin gwallau.

Sut i drwsio'r gwall?

Yn y bôn, mae yna 3 ffordd o drin y gwall hwn:

  1. Addasu'r ffeil ffurfweddu php ffeil php.ini
  2. Gan ddefnyddio'r ffwythiant ini_set().
  3. Gan ddefnyddio'r swyddogaeth set_time_limit().

1) Addasu'r ffeil ffurfweddu php ffeil php.ini

Dewch o hyd i'r ffeil php.ini a dod o hyd iddo yn y ffeil hon:

max_execution_time = 30 ;

Yn y llinell hon, gosodwch y rhif 30 i'r gwerth a ddymunir (mewn eiliadau).

Gellir ei addasu'n uniongyrchol hefyd i:

max_execution_time = 0; //无限制

Sylwch fod angen ailgychwyn ar ôl ei addasuLinuxgweinydd.

2) Defnyddiwch y swyddogaeth ini_set().

I'r rhai na allant addasu php.inicyfryngau newyddPobl, yn gallu defnyddio'r swyddogaeth ini_set() i newid y terfyn amser gweithredu uchaf.

Ychwanegwch y cod canlynol ar frig y rhaglen:

ini_set('max_execution_time','100');
  • Y gosodiad uchod yw 100 eiliad, gallwch hefyd ei osod i 0, sy'n golygu nad yw'n gyfyngedig i amser gweithredu.

3) Defnyddiwch y swyddogaeth set_time_limit().

Ar frig y rhaglen ychwanegwch:

set_time_limit(100);
  • Mae hyn yn golygu bod yr uchafswm amser gweithredu wedi'i osod i 100 eiliad.
  • Wrth gwrs, gellir gosod y paramedr hefyd i 0, sy'n golygudiderfyn∞。

disgrifiad swyddogaeth set_time_limit:

void set_time_limit ( int $seconds )

Yr hyn y mae'r swyddogaeth hon yn ei wneud yw gosod yr amser (mewn eiliadau) y caniateir i'r sgript redeg.

  • Os eir y tu hwnt i'r gosodiad hwn, bydd y sgript yn dychwelyd gwall angheuol.
  • Y rhagosodiad yw 30 eiliad, os yw'r gwerth hwn yn bodoli, dyma'r gwerth a ddiffinnir yn max_execution_time yn php.ini.
  • Pan elwir y swyddogaeth hon, bydd set_time_limit() yn ailgychwyn y rhifydd terfyn amser o sero.

Mewn geiriau eraill, os yw'r terfyn amser yn rhagosodedig i 30 eiliad, a phan fydd y sgript yn rhedeg am 25 eiliad, ffoniwchset_time_limit(20), gall y sgript redeg am gyfanswm o 45 eiliad cyn yr amseru.

Nid yw hyn yn gweithio pan fydd php yn rhedeg yn y modd diogel.

Gellir diffodd Modd Diogel:

  • php.iniGosodwch modd_saff i'w ddiffodd yn .
  • neu newidphp.initerfyn amser yn .

gosod_terfyn_amser enghraifft

Os na chaiff Modd Diogel ei droi ymlaen, bydd y gosodwr yn rhedeg am 25 eiliad.

E.g:

<?php
if(!ini_get('safe_mode')){
set_time_limit(25);
}

Blog Chen Weiliang Gobeithio ( https://www.chenweiliang.com/ ) wedi'i rannu "Datrys y Gwall Cyflawni Uchafswm Amser Cyflawni o 30 eiliad wedi rhagori yn PHP", sy'n ddefnyddiol i chi.

Croeso i chi rannu dolen yr erthygl hon:https://www.chenweiliang.com/cwl-1481.html

Croeso i sianel Telegram o blog Chen Weiliang i gael y diweddariadau diweddaraf!

🔔 Byddwch y cyntaf i gael y "Canllaw Defnydd Offer AI Marchnata Cynnwys ChatGPT" gwerthfawr yng nghyfeiriadur uchaf y sianel! 🌟
📚 Mae'r canllaw hwn yn cynnwys gwerth enfawr, 🌟Mae hwn yn gyfle prin, peidiwch â'i golli! ⏰⌛💨
Rhannwch a hoffwch os hoffech chi!
Eich rhannu a'ch hoff bethau yw ein cymhelliant parhaus!

 

发表 评论

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. 必填 项 已 用 * Label

sgroliwch i'r brig