>  기사  >  백엔드 개발  >  php ini_set이 작동하지 않으면 어떻게 해야 할까요?

php ini_set이 작동하지 않으면 어떻게 해야 할까요?

PHPz
PHPz원래의
2023-04-26 10:23:22615검색

PHP 프로그래밍에서 ini_set은 PHP 구성 파일을 동적으로 수정하는 데 사용할 수 있는 매우 중요한 함수입니다. 그러나 때로는 함수를 올바르게 사용한 경우에도 ini_set 사용이 작동하지 않는 경우가 있습니다. 그렇다면 왜 이런가요? 이 기사에서는 이 문제를 살펴보고 몇 가지 해결 방법을 제공합니다.

  1. 원인 분석

우선 PHP 구성 파일이 어떻게 로드되는지 이해해야 합니다. PHP는 기본적으로 php.ini와 .htaccess라는 두 가지 구성 파일을 로드합니다. 그 중 php.ini는 전역 구성 파일이고 .htaccess는 로컬 구성 파일입니다. ini_set을 사용하여 옵션을 수정하면 구성 파일을 직접 수정하는 것이 아니라 실제로 PHP의 내부 설정을 변경하는 것입니다. 따라서 PHP가 구성 파일을 로드하기 전에 이러한 설정을 확인하면 ini_set이 실패합니다.

구체적으로 이 문제는 주로 다음 두 가지 상황에 해당합니다:

1.1. 실행 시간 제한

PHP는 기본적으로 스크립트가 이 시간을 초과하고 실행되지 않으면 PHP가 요청을 중단합니다. . 이 시간은 PHP 구성 파일의 max_execution_time 매개변수에 의해 결정됩니다. ini_set을 사용하여 이 매개변수의 값을 수정했지만 실제 효과가 변경되지 않으면 설정된 최대 실행 시간을 초과했을 가능성이 높습니다. 이 경우 .htaccess 파일에서 이 매개변수를 수정하여 이 문제를 해결할 수 있습니다.

1.2. 보안 제한

PHP는 일부 보안 시나리오에서 ini_set 기능의 사용을 금지합니다. 예를 들어, 웹 서버에서 PHP를 사용할 때 PHP는 suhosin 확장을 통해 보안을 강화할 수 있습니다. 기본적으로 이 확장은 ini_set 함수를 사용하여 시스템 전역 변수 수정과 같은 일부 위험한 작업을 수행하는 것을 금지합니다. 이런 경우에는 PHP 구성 파일에서 이 옵션을 활성화하여 문제를 해결할 수 있습니다.

  1. Solution

위의 두 가지 경우에는 PHP 구성 파일을 수정하여 문제를 해결할 수 있습니다. 구체적으로 두 가지 방법이 있습니다:

2.1. .htaccess 파일 수정

.htaccess 파일에서 PHP 구성 매개변수를 수정하여 PHP가 구성 파일을 로드하기 전에 설정을 확인하지 않도록 할 수 있습니다. 예를 들어, max_execution_time 매개변수를 수정하려면 .htaccess 파일에 다음 코드를 추가하면 됩니다.

php_value max_execution_time 300

여기서 300은 최대 실행 시간이 300초임을 의미합니다. 이러한 방식으로 PHP 구성 매개변수를 효과적으로 수정할 수 있습니다.

2.2.PHP 구성 파일 수정

보안 제한으로 인해 ini_set이 작동하지 않는 경우 PHP 구성 파일을 직접 수정하여 ini_set 기능 사용을 금지하는 옵션을 설정할 수 있습니다. 특히, 일반적으로 기본적으로 php.ini 파일인 PHP 구성 파일을 찾아야 합니다. 그런 다음 파일에서 수호신 확장 프로그램 관련 설정을 찾아 관련 제한을 해제하세요.

예를 들어 php.ini 파일에 다음 코드를 추가할 수 있습니다.

suhosin.simulation = off
suhosin.executor.func.blacklist = ""
suhosin.executor.disable_eval = off
suhosin.executor.include.whitelist = phar

이렇게 하면 suhosin의 보안 제한을 해제할 수 있어 ini_set 함수를 정상적으로 사용할 수 있습니다.

  1. 요약

일반적으로 ini_set 함수가 유효하지 않더라도 다른 방법으로 PHP 구성을 수정할 수 없다는 의미는 아닙니다. PHP 구성 파일을 분석하면 ini_set 실패 원인을 찾아내고 그에 따른 조치를 취하여 문제를 해결할 수 있습니다. 궁극적으로 우리는 특정 애플리케이션 시나리오를 기반으로 솔루션을 선택하고 구성 매개변수 수정 작업이 안전하고 신뢰할 수 있는지 확인해야 합니다.

위 내용은 php ini_set이 작동하지 않으면 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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