mostra a mensagem de erro do php no IIS 7

7

Estou usando o IIS como um servidor da Web em minha máquina de desenvolvimento para o desenvolvimento web do PHP. Ou pelo menos estou tentando.

Quando há um erro de sintaxe em um script PHP e abro esse arquivo no meu navegador, acabei de receber um 503 "erro interno do servidor" e a página de erro padrão do IIS para esse erro. Alguns navegadores não abrem esse arquivo, possivelmente devido ao cabeçalho 503 HTTP Response.

Eu gostaria que o IIS agisse nesse caso como o servidor web apache: exiba o arquivo PHP com o erro de qualquer maneira, para que a mensagem de erro seja impressa.

Como isso pode ser feito?

EDITAR:

Configurações do PHP:

display_errors

está ativado e

error_reporting

está definido como E_ALL

    
por Max 30.09.2009 / 08:00

5 respostas

5

Com o IIS7, ele não passa os erros por padrão. É "existingResponse" que precisa ser definido.

Você pode configurá-lo executando o seguinte (substitua {sitename} pelo nome do seu site).

c:\windows\system32\inetsrv\appcmd.exe set config "{sitename}" -section:system.webServer/httpErrors /existingResponse:"PassThrough" /commit:apphost
    
por 01.10.2009 / 04:31
1

Para habilitar erros detalhados para PHP (e outros idiomas), execute este comando a partir da linha de comando:

%windir%\system32\inetsrv\appcmd.exe set config -Section:system.webServer/httpErrors -errorMode:Detailed

Então

IISReset
    
por 30.09.2009 / 10:34
1

Uma prática recomendada seria registrar "silenciosamente" em um arquivo.

Mas você pode ter ambos configurando o seguinte valor em seu arquivo php.ini para um arquivo de log

error_log=<File Location>
    
por 30.09.2009 / 14:39
1

Inclua as duas linhas seguintes no topo do seu script PHP

ini_set('display_errors','On');

error_reporting(E_ALL | E_STRICT);
    
por 24.01.2011 / 20:05
0

No seu conjunto de php.ini:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
display_errors = On

E se você quiser que eles sejam registrados:

log_errors = On
    
por 30.09.2009 / 08:18

Tags