>  기사  >  백엔드 개발  >  PHP에서 시간 초과 대기 시간을 설정하는 방법

PHP에서 시간 초과 대기 시간을 설정하는 방법

PHPz
PHPz원래의
2023-03-29 11:34:413474검색

PHP로 개발하다 보면 네트워크 요청, 데이터베이스 쿼리, 파일 작업 등과 같은 장기적인 작업을 수행해야 하는 경우가 있습니다. 이 경우, PHP의 기본 시간 제한은 이러한 작업을 완료하는 데 충분하지 않아 프로그램에 오류가 발생할 수 있습니다. 이 문제를 해결하기 위해서는 PHP의 타임아웃 대기 시간을 설정해야 합니다.

PHP의 타임아웃 대기 시간은 PHP 스크립트가 실행될 때의 최대 대기 시간을 의미하며, 이 시간을 초과하면 강제 종료됩니다. 기본적으로 PHP의 시간 초과 대기 시간은 30초이며 php.ini 파일을 수정하여 조정할 수 있습니다.

  1. php.ini 파일 수정

먼저 php.ini 파일을 찾아야 합니다. Linux 시스템에서 php.ini는 일반적으로 /etc/php/[version]/cli/ 디렉터리에 있습니다. Windows 시스템에서 php.ini는 일반적으로 PHP 설치 디렉터리에 있습니다.

php.ini 파일을 열고 다음 두 매개변수를 찾으세요.

max_execution_time = 30
max_input_time = 60

그 중 max_execution_time은 PHP 스크립트의 최대 실행 시간(초)을 나타내며, 기본값은 30초입니다. GET, FILE 등. 데이터를 입력하는 최대 시간(초), 기본값은 60초입니다.

이 두 매개변수의 값을 필요한 값으로 수정할 수 있습니다. 예를 들면 다음과 같습니다.

max_execution_time = 60
max_input_time = 120

이렇게 하면 PHP 스크립트의 최대 실행 시간이 60초, 최대 입력 시간이 120초가 됩니다.

  1. 코드에서 시간 초과 설정

php.ini 파일을 수정하는 것 외에도 PHP 코드에서 시간 초과 대기 시간을 설정할 수도 있습니다. PHP에서는 set_time_limit 함수를 사용하여 스크립트의 최대 실행 시간을 설정할 수 있습니다.

예를 들어 다음 코드는 PHP 스크립트의 최대 실행 시간을 60초로 설정합니다.

set_time_limit(60);

코드에서 max_input_time 매개변수를 수정하려면 ini_set 함수를 사용할 수 있습니다.

예를 들어, 다음 코드는 PHP 스크립트가 입력을 수신하는 최대 시간을 120초로 설정합니다.

ini_set('max_input_time', 120);

이러한 설정은 현재 스크립트에서만 적용된다는 점에 유의해야 합니다. php.ini로 복원됩니다. 파일에 구성된 값입니다.

  1. ignore_user_abort 함수 사용

PHP는 클라이언트 연결이 끊어진 후에도 PHP 스크립트가 계속 실행될 수 있도록 하는ignore_user_abort 함수도 제공합니다. 이 기능은 장기 실행 스크립트 작업 시 매우 유용합니다.

예를 들어, 다음 코드는 클라이언트 연결이 끊어진 후에도 PHP 스크립트가 계속 실행되도록 설정합니다.

ignore_user_abort(true);

ignore_user_abort 함수를 설정한 후 클라이언트 연결이 끊어지면 PHP 스크립트는 계속 실행되지만 아무것도 실행되지 않습니다. 클라이언트로 출력할 수 있습니다.

요약

PHP 개발에서 타임아웃 대기 시간은 매우 중요한 문제로, 특정 상황에 맞게 설정해야 합니다. php.ini 파일을 수정하고, 코드에서 시간 초과 대기 시간을 설정하고,ignore_user_abort 함수를 사용하여 장기 실행 스크립트를 처리하는 등 PHP의 시간 초과 대기 시간을 조정할 수 있습니다.

위 내용은 PHP에서 시간 초과 대기 시간을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.