2013-03-19 4 views
2

내 Plesk 11, PHP 5.4.7. 아파치/2.4.3 시스템, 내가 cron 작업을 만들 때 error.log 파일에서이 오류가 발생합니다.PHP 최대 실행 시간

echo ini_get('max_execution_time'); 

내가이 값을 가지고 :

[Tue Mar 19 21:33:18 2013] [warn] [client 88.44.55.66] mod_fcgid: read data timeout in 45 seconds 
[Tue Mar 19 21:33:18 2013] [error] [client 88.44.55.66] Premature end of script headers: index.php 

그래서 나는이와 실행 시간을 검사 그것은 시간 제한 문제를 보이지 않는다 1560000

을하지만 난 시간 제한 오류가?

다음 참조 용 답변 :
vim을 사용하여 /etc/httpd/conf.d/fcgid.conf 파일을 편집하십시오.
FcgidIOTimeout 45에서 FcgidIOTimeout 600으로 변경하십시오.
Apache를 다시 시작하십시오. 그런 다음 빠른 CGI 시간 초과가 해결됩니다.

+0

cron 작업 인 경우 HTTP 서버 대신 PHP 실행 파일을 사용하여 시스템의 'crond'에 의해 실행되어야합니다. – rid

+0

@rid 불행히도, 많은 사람들은 cron 작업을 작성하여 wget/curl이있는 페이지를 요청합니다. – datasage

답변

8

PHP 시간 초과가 아니라 mod_fcgid 시간 초과입니다. mod_fcgid documentation을보고 변경하는 방법을 찾으십시오 (특히 FcgidIOTimeout).

+1

만약 누군가를 돕기 위해 : fcgid.conf에서 FcgidIOTimeout 값을 늘리고 Apache를 다시 시작하십시오. CentOS : /etc/httpd/conf.d/fcgid.conf Debian : /etc/apache2/mods-enabled/fcgid.conf –

1

cronjob에서 http를 통해 액세스하면 웹 페이지 요청으로 작동하고 apache가 프로세스에 참여하기 때문에 apache timeout의 영향을받을 수 있습니다. 당신은 아파치를 우회하기 위해 PHP 인터프리터를 사용하여 절대 경로로 직접 PHP 스크립트를 실행할 수 있습니다.

+0

당신은 아파치를 우회하는 PHP 인터프리터를 사용하여 절대 경로로 직접 PHP 스크립트를 실행할 수 있습니다 어떻게 할 수 있습니까 ?? –

5

아파치를 통해 빌드를 올바르게 실행하면 안된다. 당신의 오류는 당신이 mod_fcgi에 의해 설정된 타임 아웃으로 실행 중임을 보여줍니다.

+0

빌드가 올바르다면 Cron 스크립트가 아파치를 통해 실행되어서는 안됩니다. 그래서 우리는 cron 스크립트를 실행해야합니까 ?? –

+0

@FoysalVai'php/path/to/php/script.php'와 같은 콘솔을 통해 콘솔 – datasage