최근에 PHP 5.6과 iis를 기반으로 웹사이트를 배포했을 때 오류 500이라는 매우 골치 아픈 문제에 직면했습니다. 끊임없는 디버깅과 노력 끝에 마침내 문제에 대한 해결책을 찾았으며, 전체 프로세스의 세부 단계는 다음과 같습니다.
1. php.ini 구성 파일을 확인하세요
먼저 php.ini 구성 파일을 확인해보니 이 웹사이트에 두 개의 서로 다른 구성 파일이 있습니다. 하나는 php 설치 디렉터리에 있고 다른 하나는 다음 위치에 있습니다. 웹사이트 루트. 이 두 파일에서 오류 500의 원인 중 하나인 error_reporting이라는 설정을 발견했습니다.
error_reporting은 PHP에서 보고할 오류 수준을 지정합니다. E_ALL로 설정된 경우 경고 및 프롬프트 수준 오류를 포함한 모든 오류가 표시되며 이로 인해 iis가 500 오류를 반환할 수 있습니다. 따라서 이 설정을 E_ERROR로 변경하여 php가 스크립트 종료를 유발하는 오류만 보고하고 오류 500 상황을 피하도록 했습니다.
2. iis FastCGI 설정을 확인하세요
그러나 php.ini 구성 파일을 변경했음에도 불구하고 웹사이트에 여전히 오류 500이 발생했습니다. 이때 FastCGI가 iis와 관련이 있다는 의심이 들기 시작했습니다.
문제를 최대한 파악하기 위해 각 사이트와 기본 사이트를 수정했습니다. 오류 500의 경우 다음 항목도 확인해야 합니다.
a. php.exe, php-cgi.exe 및 php.ini의 CGI 경로를 FastCGI 설정의 "환경 변수" 섹션에 추가해야 합니다.
b. "Handler Mapping"에서 FastCGIModule의 코드를 FastCGI로 변경합니다.
c. 각 웹사이트 또는 기본 웹사이트에 대해 FastCGI에서 설정한 구성 폴더 경로가 올바른지 확인하세요. 일반적인 방법은 구성 폴더 경로를 C:PHP로 설정하는 것이며, 이 경로는 PHP의 기본 설치 경로이기도 합니다. 길.
3. iis 로그 확인
동시에 iis 로그에서도 오류 내용을 확인했습니다. IIS 관리자의 "웹사이트" 섹션에서 웹사이트를 마우스 오른쪽 버튼으로 클릭하고 "웹사이트 관리" - "은행 로그" - "인증서"를 선택하여 IIS 로그 경로를 찾습니다. 이 로그 파일에서 "라이브러리 파일을 찾을 수 없기 때문에 프로세스를 시작할 수 없습니다"라는 중요한 오류 메시지를 발견했습니다.
이 오류는 일반적으로 iis가 잘못된 PHP 또는 FastCGI 프로세스를 시작했거나 런타임 중에 올바른 권한이 없거나 권한이 수정되었음을 의미합니다. 이 문제를 해결하기 위해 PHP를 다시 설치하고 IIS가 올바른 PHP 프로세스를 시작했는지 확인하고 권한이 올바르게 설정되었는지 확인했습니다.
요약
가능한 모든 문제를 해결한 후, 내 PHP 5.6 iis 웹사이트가 마침내 정상적으로 실행되었습니다. 이 문제 해결 과정은 길었지만 여전히 학습하고 성장하는 경험이었습니다.
환경과 설정에 따라 해결 방법이 다를 수 있지만, php.ini 구성 파일과 iis에 대한 FastCGI 설정을 확인하는 것이 항상 최우선입니다. 이 과정에서 단순히 문제만 보는 것이 아니라, PHP와 IIS가 어떻게 작동하는지 깊이 이해하고, 문제의 근본 원인을 지속적으로 디버깅하고 파헤쳐 PHP와 IIS 기반의 웹사이트를 개발하고 유지하는 것은 우리에게 매우 유익합니다. 표면.
위 내용은 PHP 5.6 iis 오류 500을 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!