2012-11-26 3 views
0

말, 아파치에서 PHP를 실행하고 있습니다. 누군가가 클라이언트 요청을하면 (어떻게 상관이 없다), 클라이언트가 기다릴 시간을 정의하는 스크립트가 실행됩니까? 이 옵션은 Apache, PHP 또는 클라이언트가 직접 정의한 것입니까? 또한 스크립트가 curl을 통해 호출되는 경우 어떻게해야합니까?PHP에서 타임 아웃 기간을 정의하는 것은 무엇입니까?

+1

http://php.net/manual/en/function.set-time-limit.php – honyovk

+0

당신은 그 의미를 알고 있으므로 클라이언트가 그렇게하도록 허용하면 해커가 많은 젖은 것을 즐기기에 충분할 것입니다. 꿈. – thatidiotguy

답변

1

참조 PHP set_time_limit()

설정 스크립트 실행이 허용되는 시간 (초). 이 값에 도달하면 스크립트에서 치명적인 오류를 반환합니다. 기본 제한은 30 초이거나, 존재하는 경우 max_execution_time 값이 php.ini에 정의되어 있습니다.

참고 :

이 기능은 PHP가 안전 모드에서 실행되면 아무 효과가 없습니다. php.ini에서 안전 모드를 끄거나 제한 시간을 변경하는 것 이외의 다른 해결 방법은 없습니다.

당신은 또한 (php.ini 파일을 통해 설정) max_input_time

이 스크립트는 POST와 같은 입력 데이터를 분석하고 GET에 허용하는 최대 시간을 설정에 관심이있을 수 있습니다. 이 값은 서버의 모든 데이터를받는 순간부터 스크립트 실행 시작까지 측정됩니다.

0

php.ini에 정의되어 있으며 매개 변수는 max_execution_time입니다.

set_time_limit, ini_set 또는 php.ini으로 직접 변경할 수 있습니다.

하지만, 실제로 클라이언트가 대기하는 시간에 대한

양을 요구하고, 스크립트는

를 실행하고 IMHO, 그것은 무한하다. 나는 서버가 스크립트를 실행하고 브라우저가 기다리는 것을 거부했을 때 그런 순간을 보지 못했다. 스크립트를 서버에서 계속 실행하는 것이 주 요입니다.

+0

스크립트가 curl을 통해 호출되는 경우는 어떻게됩니까? – nicks

+0

@NikaGamkrelidze,'max_execution_time'도 CURL에 영향을줍니다. CURL을 사용하여 서버 B에서 서버 A로 데이터를 가져 오려면 서버 B가 스크립트를 실행하고 서버 A가 응답을 기다리고있는 경우 양쪽에 'max_execution_time'을 설정해야합니다. CURL이 서버 B에서 너무 큰 데이터를 얻었지만 이번에는 서버 B가 스크립트를 실행하지 않으면 서버 A에서만 제한을 변경하면 도움이됩니다. – F0G

+0

@nikoloz :)'max_execution_time'은 사용자 측이 아니라 서버 측 한계임을 이해해야합니다. 어쨌든 스크립트가 호출되면'max_execution_time'에 도달 할 때까지 실행됩니다. – F0G