현재 위치: > 최신 기사 목록> [set_time_limit 함수는 Apache 및 Nginx 서버 환경에서 어떻게 다르게 작동합니까?

[set_time_limit 함수는 Apache 및 Nginx 서버 환경에서 어떻게 다르게 작동합니까?

gitbox 2025-06-20

1. SET_TIME_LIMIT 함수의 기본 함수

SET_TIME_LIMIT () 함수의 기능은 스크립트의 긴 실행 시간으로 인해 과도한 서버 리소스를 피하기 위해 PHP 스크립트의 최대 실행 시간을 조정하는 것입니다. 기본 구문은 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">set_time_limit</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$seconds</span></span><span>);
</span></span>

여기서 $ 초는 최대 실행 시간의 초 수입니다. 0으로 설정하면 무제한 시간을 의미합니다.

예를 들어:

 <span><span><span class="hljs-title function_ invoke__">set_time_limit</span></span><span>(</span><span><span class="hljs-number">30</span></span><span>);  </span><span><span class="hljs-comment">// 스크립트가 최대를 실행하도록 허용하십시오 30 두번째</span></span><span>
</span></span>

기본적으로 PHP는 일반적으로 php 구성 파일의 max_execution_time 값을 set_time_limit () 함수를 호출하지 않은 최대 실행 시간으로 사용합니다. 이 값은 일반적으로 기본적으로 30 초입니다.

2. 아파치 환경의 성능

Apache는 가장 일반적으로 사용되는 웹 서버 중 하나이며 일반적으로 PHP가있는 모듈 식 서버로 사용됩니다. Apache에서 PHP는 모듈 (mod_php)으로 실행되므로 PHP 스크립트는 Apache 프로세스에서 직접 실행됩니다. 따라서 set_time_limit () 함수는 PHP 스크립트의 실행에 직접적인 영향을 미칩니다.

  • 기본 동작 : Apache 환경에서 SET_TIME_LIMIT ()는 현재 PHP 스크립트의 최대 실행 시간을 수정합니다. 스크립트 실행 시간 이이 제한을 초과하면 PHP는 스크립트를 자동으로 종료하고 오류를 반환합니다.

  • 조치 범위 : set_time_limit () 는 현재 PHP 요청에만 영향을 주지만 다른 동시 요청에는 영향을 미치지 않습니다.

Apache에서 PHP는 모듈로 직접로드되므로 다른 서버 구성 또는 설정에 의해 방해받지 않고 각 PHP 스크립트의 실행 시간을 직접 제어 할 수 있습니다.

3. Nginx 환경의 성능

Nginx는 일반적으로 PHP-FPM (PHP FASTCGI 프로세스 관리자)과 함께 작동하는 가벼운 웹 서버입니다. PHP는 서버 프로세스에 직접 포함되지 않고 Nginx 환경에서 FASTCGI 프로토콜을 통해 NGINX와 통신합니다. 따라서 NGINX 환경에서 PHP 스크립트의 실행은 PHP-FPM 프로세스에 의해 관리됩니다.

  • 기본 동작 : NGINX 환경에서 SET_TIME_LIMIT ()는 Apache와 다르게 행동 할 수 있습니다. 이 함수는 여전히 스크립트의 최대 실행 시간을 설정할 수 있지만 PHP는 PHP-FPM을 통해 실행되므로 SET_TIME_LIMIT () 는 PHP-FPM 구성 파일의 Max_Execution_Timerequest_terminate_timeout 매개 변수의 영향을받을 수 있습니다. 이러한 구성 항목은 때때로 Set_Time_Limit () 에 의해 설정된 시간 제한과 덮어 쓰거나 충돌합니다.

  • PHP-FPM 구성의 영향 : NGINX 환경에서의 PHP 실행 시간은 PHP 구성 파일의 Max_Execution_Time 매개 변수에 의해 제어 될뿐만 아니라 PHP-FPM 구성 파일의 request_terminate_timeout 설정의 영향을받을 수도 있습니다. SET_TIME_LIMIT ()가 더 긴 실행 시간을 설정하더라도 PHP-FPM의 request_terminate_timeout 값이 짧은 경우 PHP 스크립트가 종료 될 수 있습니다.

  • 작업 범위 : PHP 프로세스는 PHP-FPM에 의해 관리되므로 SET_TIME_LIMIT () 는 현재 요청의 PHP 실행에만 영향을 미치며 NGINX의 다른 요청에 영향을 미치지 않습니다. Apache 환경과 유사하게 Nginx 서버의 동시 요청은 서로 영향을 미치지 않습니다.

4. Apache와 Nginx의 구성 차이

  • Apache 구성 : Apache 환경에서 PHP의 실행 시간은 Apache의 구성과 관련이 없으며 주로 php.iniset_time_limit () 에 의해 제어됩니다. php.inimax_execution_time이 더 작은 시간 제한으로 설정되면 set_time_limit () 가이 한계를 효과적으로 무시할 수있어 스크립트에 충분한 실행 시간이 있는지 확인할 수 있습니다.

  • NGINX 구성 : NGINX 환경에서 SET_TIME_LIMIT () 의 효과는 PHP-FPM 구성 파일의 관련 설정의 영향을받을 수 있습니다. 특히 request_terminate_timeoutmax_execution_time 의 설정은 PHP 스크립트의 실행 시간을 강력하게 제어 할 수 있습니다.

5. 성능 고려 사항 및 조정 제안

Apache이든 nginx이든 Set_time_limit () 함수의 설정에는 응용 프로그램 시나리오가 있습니다. 서버를 구성 할 때 개발자는 서버의 리소스 상황 및 비즈니스 로직과 결합 된 실제 요구에 따라 스크립트 실행 시간을 합리적으로 구성해야합니다.

  • Apache Tuning : Apache에서 set_time_limit ()을 사용하는 경우 php.inimax_execution_time 설정이 set_time_limit () 와의 충돌을 피할 수있을 정도로 충분히 커지는 것이 좋습니다. 다른 Apache 모듈 (예 : mod_security 또는 mod_rewrite)이 PHP의 실행 시간에 영향을 줄 수있는 경우 개발자는 관련 구성에 특별한주의를 기울여야합니다.

  • NGINX TUNING : NGINX에서는 특히 장기 실행 스크립트에서 PHP-FPM ( request_terminate_timeout )의 구성을 조정하는 것이 매우 중요합니다. 예를 들어, set_time_limit ()가 유효한지 확인하기 위해 적절한 request_terminate_timeout 값을 설정하십시오.

6. 요약

Apache 및 Nginx 환경에서 Set_time_limit () 의 기본 기능은 동일하며 둘 다 PHP 스크립트의 최대 실행 시간을 제한하는 데 사용됩니다. 그러나 다른 서버 아키텍처 및 PHP 처리 방법으로 인해 특정 성능도 다릅니다. Apache 환경에서 Set_time_limit () 는 비교적 독립적이며 스크립트 실행 시간에 직접 영향을 미칩니다. NGINX 환경에서 PHP가 PHP-FPM을 통해 실행되기 때문에 SET_TIME_LIMIT ()는 PHP-FPM 구성의 영향을받을 수 있으므로 실행 동작이 다릅니다.

이러한 차이를 이해하고 다양한 서버 환경을 기반으로 해당 구성 최적화를 수행하면 PHP 스크립트가 제한된 시간 내에 효율적으로 실행될 수 있으며 스크립트를 장기간 실행하여 서버 리소스를 낭비하지 않도록합니다.