2011-02-02 3 views
17

내 스크립트는 2 개의 원본 트리를 비교하고 변경 가능한 파일의 맵을 만들고 MD5 해시를 비교하여 diff 패키지를 만듭니다.치명적인 오류 : 최대 실행 시간 0 초 초과

는 28000-29000 파일 후, PHP는 오류 스크립트를 종료 :

Fatal error: Maximum execution time of 0 seconds exceeded in /root/_PACKER-TESTER/core/diff.class.php on line 67 (standard in_array() call)

이미 높은 값 (또는 제로) max_input_time을 설정하려고 - 아무것도.

설정 max_execution_time ~ 99999999999999는 아무 것도 .... .... 같은 오류.

+0

귀하의 999..999 시간 제한 PHP에 의해보고 된 라인 수에 무엇을 조사 할 환경 변수가 아니라면 지금까지 위의 PHP의, 47 비트 번호에 대해 오는 32 비트 제한. –

+0

SafeMode에서 실행 중이십니까? ([docs for set_time_limit]) ... – ircmaxell

+0

Marc B -이 게시물에 대해서는 얼마나 많은 코드가 없는지 9 번을 눌러야합니다. Ofkz 코드에서 32 비트를 초과하지 않습니다. :) – kiler129

답변

9

문제, litespeed api (lsapi)php 빌드 시간 실행 최대를 결정하기 위해 추가 env 변수를 가지고 기본값은 300 초입니다.)

+0

다른 사람들을 돕기 위해 받아 들인대로 당신의 자신의 대답을 표시하십시오. 그리고 당신이 태그/질문에 CLI 환경을 추가하면 멋질 것이라고 생각합니다. –

+0

기본값은 300이지만 0으로 설정 되었습니까? – horatio

+1

MAX_PROCESS_TIME은 (는) PHP 설정 제한 시간과 다릅니다. litespeed tech가 최대 처리 시간을 추가하여 아무 것도하지 않는 동안 반복되는 악의적 인 스크립트를 방지합니다. [set_time_limit()는 실시간이 아닌 cpu 시간입니다.] LSAPI는 내부 php 타임 아웃 메커니즘을 트리거, 나는 LiteSpeed ​​기술로 그것을 reaported. 따라서 LSAPI_ * env 변수는 PHP 값보다 우선 순위가 높습니다. 공유 환경에서 너무 멋지므로 LiteSpeed ​​웹 서버 구성 파일이나 웹 패널 액세스 권한을 얻지 않는 한 사용자가 스크립트를 전역 제한을 초과하여 실행하지 마십시오. – kiler129

0

set_time_limit()을 시도하고 당신은 시간 제한을 설정할 수있는 경우) (은 phpinfo에서 확인 : - LSAPI_MAX_PROCESS_TIME를 (해결

set_time_limit(60*60);phpinfo();exit; 
+0

set_time_limit()이 도움이되지 않습니다. 전용 서버의 콘솔에서 스크립트를 실행하고 있습니다 (루트입니다). – kiler129

+0

이 제한은 CLI에서 유효하지 않습니다. – Mchl

+0

나는 그것을 알지 못했습니다 ... – Marc

19

max_input_time = -1php.ini에 설정하거나 set_time_limit(-1)을 사용해보십시오. 저를 위해 PHP를 재건하지 않고도 효과가있었습니다.

This article 잘 설명합니다.

+3

매력처럼 작동했습니다. 동일한 오류 및 설정 max_input_time = -1 작업을 않았다.감사합니다 – amertkara

+0

작동하지 않아야합니다 - LSAPI_ * 설정은 php.ini보다 높은 우선 순위를가집니다 - 관리자는 LSAPI에 의해 구현 된 제한으로 인해 php.ini의 일부 옵션에 대한 사용자 액세스 권한을 위험없이 부여 할 수 있습니다. – kiler129

+0

'0'또는 '-1'을 설정하면 같은 효과가 나타납니다. 고마워,'max_input_time' 업데이트가 필요했다. (코드에서'set_time_limit'을 사용하여 이미'0'으로 설정되어있는'max_execution_time'과 관련된 것처럼 보이지 않는다.) 오류 메시지는 실제로 'max_input_time'설정이 시간 초과를 트리거하고 있지만 'max_execution_time'이 설정되어 있더라도 출력하지 않는 것 같습니다. PHP 5.5.9 우분투에 14.04 – Programster

0

무한 루프로 들어가는 코드 때문에 "최대 실행 시간이 초과되었습니다"라는 오류가 발견되었습니다. 예를 들어

: 나를 위해

while (true) { ... } 

원인이 오류.

(앞서 언급 한 바와 같이) 그것이 내가 오류