치명적인 오류 : 최대 실행 시간 300 초를 초과했습니다.


89

이 PHP 오류가 계속 발생합니다.

치명적인 오류 : 최대 실행 시간 300 초를 초과했습니다.

내 설정을 시도 max_execution_timemax_input_timephp.ini 설정 (아파치 및 CLI 모두)에 0, -1그리고 4000초 각각.

그리고 여전히 다음과 같은 오류가 발생합니다.

치명적인 오류 : 최대 실행 시간 300 초를 초과했습니다.

이 메시지를 받기 전에 스크립트가 300 초 이상 실행됩니다.

명령 줄을 통해 스크립트를 실행하고 있습니다.

나는 또한 나의 체크 phpinfo()하는 그래서 참조 php.ini내가 사용하고 있습니다.

더 흥미로운 것은 5 초로 설정 max_execution_timemax_input_time설정을 시도 했으며 스크립트는 다음을 얻기 전에 5 초 이상 실행됩니다.

치명적인 오류 : 최대 실행 시간 300 초를 초과했습니다.


어떤 종류의 서버 설정을하고 있습니까?
Pekka 2011 년

1
아파치 2.4.18과 PHP 7에서 동일한 문제가 발생하는 것이 너무 이상합니다. PHPMyAdmin을 사용하여 sql .. phpinfo (); 다른 시간을보고합니다 .. 내가 추측하는 ini 설정을 시도 할 것입니다 :(
Michael Fever

같은 문제로 set_time_limit (3603); ini_set ( 'max_execution_time', 3604); 하지만 둘 다 효과가 없으며 최대 실행 시간은 여전히 ​​360입니다.
Infor Mat

답변:


68

스크립트 시작 부분에 추가 할 수 있습니다.

ini_set('MAX_EXECUTION_TIME', '-1');

2
PHP 파일 맨 위에 추가
Tules

2
이 코드 줄은 코드의 최대 실행 시간 제한을 삭제하여 PHP 코드가 (이론적으로) 영원히 실행되도록합니다.
Technotronic 2015 년

2
어떤 스크립트에서?
Sagar Kodte

또는 set_time_limit(0);= 동일합니다.
Íhor Mé

99

WAMP를 사용하는 경우 다음으로 이동하십시오.

을 증가 max_execution_time에서 php.ini다음으로 이동

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (설치에 따라 경로 변경)

config.default.php대한 값을 열고 $cfg['ExecTimeLimit']0으로 변경 :

$cfg['ExecTimeLimit'] = 0;

이렇게하면 PhpMyAdmin 가져 오기 문제가 해결됩니다.


@Vipin, 당신은 솔루션, 특히 그 config.default.php ;-) 저를 도왔다
리시 Kulshreshtha을

도와 줄 수있어서 기뻐 ! 건배 :)
비핀 Dubey

감사합니다. 500MB DB를 최신 버전의 무들로 업그레이드하려고 노력하는 좌절의 시간 끝에 ... 성공했습니다. 특히 무들 2.2-2.6.
jamesTheProgrammer 2014-04-04

2
이 답변에 감사드립니다! php.ini에서 최대 실행 시간을 설정하는 것이 충분하지 않다는 것을 깨닫고 내 문제를 해결했습니다!
Rimble 2014 년

1
config.default.php편집하지 않는 것에 대해 매우 명시 적이며 config.inc.php대신 편집하라고 말합니다 . 나는 그것을 찾으려고 노력했지만 찾을 수 없었기 때문에 직접 만들고 <?php $cfg['ExecTimeLimit'] = 3000; ?>. 이것은 아무것도하지 않았다. 나는 그것을 시도하고 그것을하기로 결정 config.default.php했고 그것은 효과가 있었다 !! 우리는 어떻게 config.inc.php작업을해야합니까?!?
BillyNair

67

Xampp 사용자

  1. 이동 xampp\phpMyAdmin\
  2. config.inc.php를 엽니 다.
  3. 검색 $cfg['ExecTimeLimit'] = 300;
  4. 더 큰 값을 설정 하거나 무제한의 경우 0으로 변경 하십시오.
  5. 찾을없는 경우 추가 $cfg['ExecTimeLimit'] = 0;(또는 더 큰 값)
  6. 파일을 저장하고 서버를 다시 시작하십시오.

8
이것은 말 그대로 나를 위해 일한 유일한 것입니다. 게시 해 주셔서 감사합니다. 내 설정에서 $ cfg [ 'ExecTimeLimit'] = 300; config.inc.php에 존재하지 않았기 때문에 config.default.php의 값을 변경하지 않고 거기에 추가했습니다. 해당 파일의 코드를 건드리지 말라는 다소 큰 메시지가 있습니다.)
Ian

4
서버를 다시 시작해 주셔서 감사 합니다 . 잊을 수있는 가장 중요한 포인트.
Pradeep Kumar Prabaharan

4
config.default.php 파일에 "No !! Do Not Edit"라는 메모가 있습니다. $ cfg [ 'ExecTimeLimit'] = 0을 추가했습니다. 내 config.inc.php 파일이 존재하지 않았고 작동하는 것처럼 보였기 때문에.
brandozz

1
이 게시물은 내 하루를 저장하고 두 번째로 나를 도왔습니다 !!! 3 개월 후에 어떻게 더하기를 할 수 있습니까 ???
saber tabatabaee yazdi

24

비슷한 상황이 발생했는데 Codeigniter (내가 사용하고있는 PHP 프레임 워크)가 실제로 자체 시간 제한을 설정하는 것으로 나타났습니다.

system / core / Codeigniter.php에서 버전 2.1.3의 106 행은 다음과 같습니다.

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);
}

코어 파일 변경을 피할 수있는 다른 방법이 없었기 때문에 php.ini를 통한 구성을 허용하고 CLI 요청에 대해 무한한 최대 실행 시간을 제공하기 위해 제거했습니다.

그러나 향후 CI 버전 업그레이드의 경우 어딘가에이 변경 사항을 기록하는 것이 좋습니다.


7
오. 나의. 선량. 나는 이것을 믿을 수 없다. 피의 세계가 이미 존재하는 다른 모든 실행 시간 제한 위에 실행 시간을 제한하는 이유는 무엇입니까? 나는 이것에 시간을 낭비했다. 게시 해 주셔서 감사합니다.
fool4jesus

1
믿을 수가 없네요. 라인을 주석 처리하고 작동합니다! CI가 기본 PHP 기본값을 덮어 쓰고 문서를 제공하지 않는 이유는 무엇입니까?!
Phil Cross

이 글을 읽고 있고 (CodeIgniter에 구축 된) ExpressionEngine을 사용하고 있다면 ... 음-추측 해보세요-EE가 CI의 재정의를 재정의합니다! /system/codeigniter/system/core/Codeigniter.php 라인 106과 /system/expressionengine/libraries/Core.php, 라인 64를 모두 편집해야합니다. 그 사실을 발견하는 것은 제 인생의 3 시간 동안 즐거웠습니다 .. .

@PhilCross 더 많은 시간을 실행해야하는 함수를 알고 있다면 Jess의 제안을 사용하여 set_time_limit(0);해당 함수 안에 배치 할 수 있습니다 . 코어를 변경할 필요가 없습니다.이 명령은 시간 제한을 재설정하므로 특정 기능을 실행하는 동안 코어 또는 다른 패키지의 다른 줄에 대해 걱정할 필요가 없습니다.
Armfoot

9

스크립트에서 다음과 같이 시도하십시오.

set_time_limit(1200);

3
set_time_limit(0);스크립트가 영원히 실행되도록합니다.
Jonathon 2011 년

23
set_time_limit(0); 스크립트가 영원히 실행합니다.
Jess Telford

6

이것이 정답입니다.

이동

c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php

찾아서 설정

$cfg['ExecTimeLimit'] = 0;

모든 서비스를 다시 시작하고 완료하십시오.


완벽한 대답, 감사의 @llioor
kach

5

xampp / phpmyadmin / libraries / config.default.php로 이동합니다.

다음과 같이 변경하십시오.

from  $cfg['ExecTimeLimit'] = ’300′;
to  $cfg['ExecTimeLimit'] = ’0′;

3

Xampp 사용자의 경우

1. Go to C:\xampp\phpMyAdmin\libraries
2. Open config.default.php
3. Search for $cfg['ExecTimeLimit'] = 300;
4. Change to the Value 300 to 0 or set a larger value
5. Save the file and restart the server
6. OR Set the ini_set('MAX_EXECUTION_TIME', '-1'); at the beginning of your script you can add.

1

PHP의 CLI의 기본 실행 시간은 무한합니다.

이는 파서에 의해 종료되기 전에 스크립트가 실행될 수있는 최대 시간 (초)을 설정합니다. 이렇게하면 잘못 작성된 스크립트가 서버를 묶는 것을 방지 할 수 있습니다. 기본 설정은 30입니다. 명령 줄에서 PHP를 실행할 때 기본 설정은 0입니다.

http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time

안전 모드에서 PHP를 실행하고 있는지 확인하십시오. 그럴 때 모든 시간 실행 설정을 무시하기 때문입니다.


1

로컬 AppServ의 경우

C : \ AppServ \ www \ phpMyAdmin \ libraries \ config.default.php로 이동합니다.

찾기 $cfg['ExecTimeLimit']값을 0으로 설정합니다.

그래서 그것은

$cfg['ExecTimeLimit'] = 0;

1

xampp에 있고 phpMyadmin을 사용하여 큰 SQL 파일을 가져오고 max_execution 시간, 최대 파일 업로드 제한 및 필요한 모든 것을 늘린 경우 위의 답변 중 어느 것도 작동하지 않는 경우 여기에옵니다.

xampp 폴더로 이동합니다. 제 경우에는 수정해야 할 파일의 상대 경로가 있습니다. C : \ xampp \ phpMyAdmin \ libraries \ config.default.php

/** * maximum execution time in seconds (0 for no limit) * * @global integer $cfg['ExecTimeLimit'] * by defautlt 300 is the value * change it to 0 for unlimited * time is seconds * Line 709 for me */ $cfg['ExecTimeLimit'] = 0;


작동 $ cfg [ 'ExecTimeLimit'] = 0; . 감사합니다
MindRoasterMir

0

WAMP 사용자 :

1) C : \ wamp \ apps \ phpmyadmin으로 이동합니다.

2) config.inc 열기

3) $ cfg [ 'ExecTimeLimit'] = '3600'추가; 파일에.

4) 파일을 저장하고 서버를 다시 시작하십시오.

이 파일은 php.ini를 덮어 쓰고 작동합니다!


0

제 경우에는 Phpmyadmin에서 오류가 발생했을 때 MySQL-Front를 시도했습니다. 하고 DB를 성공적으로 가져 .

참고 :이 질문에 제공된 솔루션을 사용하여 Phpmyadmin에서 문제를 해결할 수 있습니다.


하이어 gibt ES nichts 즈 sehen ... :-)
라훌

0

위의 답변이 작동하지 않으면 코드를 확인하십시오. 내 경험상 무한 루프가 발생하면 문제가 발생합니다. else if 문을 확인하십시오.


0

Codeignitor 버전 3.0.x에서 system / core / Codeigniter.php는 시간 제약과 삽입을 포함하지 않습니다.

ini_set('MAX_EXECUTION_TIME', -1);  

codeignitor가 자체 함수 set_time_limit ()으로 재정의하기 때문에 작동하지 않습니다. 따라서 codeignitor에서 해당 함수를 삭제하거나 간단히 삽입 할 수 있습니다.

set_time_limit('1000');

1000 초로 변경하려면 php 파일의 시작 부분에 있습니다. 원하는만큼 실행하려면 시간을 0 (영)으로 설정하십시오.


0

Xampp의 php.ini에서 mysql.connect_timeout도 확인해야합니다. 예를 들어 다음과 같이 변경하십시오.

mysql.connect_timeout = 3600

해당 시간은 항상 초 단위로 계산됩니다 (예에서는 1 시간).


0

php.ini를 편집하는 MAMP 사용자는이 문제를 해결합니다.

max_execution_time = 30; 각 스크립트의 최대 실행 시간 (초)

이 값을 더 높게 설정하면 효과가 있습니다.

파일은 php / php5.6.25 / conf / php.ini에 있습니다 (분명히 사용중인 php 버전에 대한 파일을 적셔야합니다. MAMP 환경 설정에서 찾을 수 있습니다.


-1

시간 제한을 설정할 수 있습니다.

ini_set('max_execution_time', 1000000000000000);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.