>  기사  >  데이터 베이스  >  안전 모드가 활성화된 원격 서버에서 `set_time_limit` 및 `ini_set(\'max_execution_time\')`이 효과가 없는 이유는 무엇입니까?

안전 모드가 활성화된 원격 서버에서 `set_time_limit` 및 `ini_set(\'max_execution_time\')`이 효과가 없는 이유는 무엇입니까?

DDD
DDD원래의
2024-10-31 09:45:02631검색

Why are `set_time_limit` and `ini_set('max_execution_time')` ineffective on my remote server with safe mode enabled?

원격 서버에서는 PHP 시간 제한 기능이 적용되지 않음

set_time_limit(50) 또는 ini_set('max_execution_time', 50)을 사용하여 시간 제한을 설정할 때 로컬에서 max_execution_time을 검색하면 원하는 값이 생성됩니다. 하지만 다른 서버에서는 기본값(30초)으로 돌아가서 이러한 기능이 무효화됩니다.

설명

이 문제는 안전 모드 원격 서버의 설정. PHP의 안전 모드에서는 ini_set()을 사용하여 max_execution_time 설정을 수정할 수 없습니다. 이 제한은 set_time_limit()에도 적용됩니다.

해결 방법

이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.

  1. 안전 모드 비활성화: 이는 서버 구성을 수정하여 수행할 수 있습니다. 그러나 일반적으로 보안 문제로 인해 권장되지 않습니다.
  2. php.ini 수정: 원격 서버에서 php.ini 파일을 편집하고 max_execution_time을 원하는 값으로 설정합니다.

안전 모드 제한 이유

안전 모드는 스크립트로 수행할 수 있는 특정 작업을 제한하여 보안을 강화하기 위해 PHP에 도입되었습니다. 스크립트가 무기한 실행되는 것을 방지하는 것이 이러한 보안 조치 중 하나입니다.

참고: PHP 매뉴얼에는 안전할 때 set_time_limit() 및 ini_set('max_execution_time', 50) 둘 다 아무런 효과가 없다고 명시되어 있습니다. 모드가 활성화되었습니다. 유일한 해결 방법은 안전 모드를 비활성화하거나 php.ini 파일에서 시간 제한을 조정하는 것입니다.

위 내용은 안전 모드가 활성화된 원격 서버에서 `set_time_limit` 및 `ini_set(\'max_execution_time\')`이 효과가 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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