IIS7에서 PHP 오류를 표시하고 기록하는 방법


29

IIS 7 서버에서 PHP 5.2.5를 실행 중이고 PHP 오류를 표시하는 데 문제가 있습니다 ... PHP 오류가 발생할 때마다 서버는 "페이지를 볼 수 없습니다. 내부 서버 오류가 발생하여 표시되었습니다. "

이것은 프로덕션 웹 사이트에 좋은 설정 일 수 있지만 개발 서버에서는 다소 성가신 일입니다 ... ;-)

php.ini화면에 오류를 표시하고 특정 폴더에 오류를 표시 하도록 구성하려고 시도했지만 서버가 이전에 모든 오류를 포착하고 PHP로 처리 및 방지하는 것 같습니다 ...

누군가 IIS가 PHP 오류를 화면에 표시하게하려면 어떻게해야하는지 알고 있습니까? 주제에 대한 모든 링크, 팁 또는 자습서를 주시면 감사하겠습니다!


첫째, 당신이이 있는지 확인 : log_errors=1, error_reporting=-1, log_errors_max_len=0.
Pacerier

ini_set("display_errors", "on");PHP 파일 에이 줄을 추가하십시오.
엘리트

답변:


35

그냥 한 번 확인에, 당신이 세트를 기록했다 할 error_reporting = E_ALL, 그리고 display_errors = On당신을에 php.ini? 일반적으로 IIS 7에서 이러한 오류를 표시하기에 충분합니다.

다음으로, IIS 설정을 살펴보십시오. 오류 메시지 만 로컬로 표시하도록 설정되어있을 수 있습니다. IIS 7 구성 편집기에서 이것은 system.webServer-> httpErrors에 있습니다. DetailedLocalOnly에서 errorMode를 Detailed로 변경해야합니다. 분명히 이것은 이제 귀하의 사이트를 탐색하는 모든 사람이 오류를 볼 수 있음을 의미합니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

또는 로컬로 유지하려면 원격 데스크톱을 사용하여 서버에 로그인하고 가능한 경우 앱을 실행할 수 있습니다.


1
예, 확인했는데 모두 올바르게 구성되었습니다.
Ben

추가 문제 해결 정보 추가
Sam Cogan

1
"DetailedLocalOnly"에서 errorMode를 "Detailed"로 변경하면 트릭을 수행 할 수 있습니다. 감사!
Ben

1
system.webServer에서 HTTP 오류 모음을 제거해야했습니다. 내가 할 때까지 PHP로 작동하지 않았습니다.

1
system.webServer혈액으로 강조 표시하고 "예, 콤보가 있습니다"라는 메모를 추가하십시오.
DiGi

2

"existingResponse"를 "PassThrough"로 설정해야한다고 덧붙였습니다. 추가 설정이 없으면 실제 오류 메시지가 표시되지 않습니다.


1
이 설정은 어디에 있습니까?
Eugene Mala

0

IIS 관리자 GUI를 사용하여이 작업을 쉽게 수행 할 수 있습니다. 사이트를 선택하고 오류 페이지를 두 번 클릭하십시오. 그런 다음 '기능 설정 편집 ...'을 누르고 기본 '로컬 요청에 대한 세부 오류 및 원격 요청에 대한 사용자 정의 오류 페이지'대신 '상세 오류'옵션을 선택하십시오. Voilà, 그렇게 간단합니다!


그러면 로그와 오류를 어디에 표시 할 수 있습니까?
JukEboX

0

웹 서버의 설정으로 PHP 구성으로 이동해야했으며 오류보고에 대한 설정이 있으며 기본적으로 프로덕션으로 설정되어 있습니다. php.ini와 제안을 변경 한 후에도 개발로 변경해야했습니다. 2008 R2에서 iis 7.5를 사용하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.