Ebatzi php-k eskatzen duen errorea 30 segundoko gehienezko exekuzio denbora gainditu da

Online marketinean hasiberri askok PHP orrialde hutsekin denbora luzez egiten dute topo WordPress erabiliz webguneak eraikitzen ikasten dutenean.

Ondoren, errore-mezu hau agertzen da:

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

Besterik gabe, horrek esan nahi du PHP exekuzio-denborak 30 segundoko muga gainditzen duela.

Chen Weiliang-ek lehenago ere izan zuen akats hau, eta artikulu honek laburbiltzen du nola konpondu.

Nola konpondu errorea?

Funtsean, errore hau kudeatzeko 3 modu daude:

  1. Aldatu php konfigurazio fitxategia php.ini fitxategia
  2. Erabili ini_set() funtzioa
  3. Erabili set_time_limit() funtzioa

1) Aldatu php konfigurazio fitxategia php.ini fitxategia

Bilatu php.ini fitxategia eta aurkitu fitxategi honetan:

max_execution_time = 30 ;

Lerro honetan, ezarri 30 zenbakia segundotan nahi duzun balioa.

Zuzenean ere alda daiteke:

max_execution_time = 0; //无限制

Kontuan izan aldaketak egin ondoren Linux zerbitzaria berrabiarazi behar duzula.

2) Erabili ini_set() funtzioa

php.ini fitxategia aldatu ezin duten komunikabide berrietako profesionalentzat , ini_set() funtzioa erabil daiteke exekuzio-denbora maximoa aldatzeko.

Gehitu hurrengo kodea programaren goialdean:

ini_set('max_execution_time','100');
  • Goiko ezarpena 100 segundokoa da, 0 ere ezar dezakezu, hau da, ez dago exekuzio denborara mugatuta.

3) Erabili set_time_limit() funtzioa

Programaren goialdean gehitu:

set_time_limit(100);
  • Horrek esan nahi du gehienezko exekuzio-denbora 100 segundotan ezartzen dela.
  • Jakina, parametroa 0-n ere ezarri daiteke, hau damugagabea∞.

set_time_limit funtzioaren deskribapena:

void set_time_limit ( int $seconds )

Funtzio honen funtzioa script-ak exekutatzen uzten duen denbora segundotan ezartzea da.

  • Ezarpen hau gainditzen bada, script-ak errore larri bat itzultzen du.
  • Balio lehenetsia 30 segundokoa da, balio hori existitzen bada, php.ini-n max_execution_time-n definitutako balioa da.
  • Funtzio honi deitzen zaionean, set_time_limit() denbora-muga-kontagailua zerotik berrabiaraziko du.

Beste era batera esanda, denbora-muga 30 segundokoa bada eta scripta 25 segundoz exekutatzen denean, deituset_time_limit(20), scripta guztira 45 segundo exekutatu daiteke denbora-muga baino lehen.

Ezaugarri honek ez du funtzionatzen php modu seguruan exekutatzen ari denean.

Modu segurua desaktibatu daiteke:

  • 在php.iniEzarri safe_mode gisa desaktibatuta.
  • edo aldatuphp.inidenbora muga barruan.

ezarri_denbora_muga adibidea

Modu segurua aktibatuta ez badago, instalatzailea 25 segundoz abiaraziko da.

adib:

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

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Igo korrituko