Cyfeiriadur Erthygl
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:
- Addasu'r ffeil ffurfweddu php ffeil php.ini
- Gan ddefnyddio'r ffwythiant ini_set().
- 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.ini
Gosodwch modd_saff i'w ddiffodd yn . - neu newid
php.ini
terfyn 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!
📚 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!