Como posso exibir e registrar erros de PHP no IIS7?

Como posso exibir e registrar erros de PHP no IIS7?

Estamos executando o PHP 5.2.5 em um servidor IIS 7 e estamos tendo problemas para tornar visíveis os erros do PHP... No momento, sempre que temos um erro de PHP, o servidor envia de volta um erro 500 com a mensagem "A página não pode ser exibido porque ocorreu um erro interno do servidor."

Esta pode ser uma boa configuração para sites de produção, mas é bastante irritante em um servidor de desenvolvimento... ;-)

Tentei configurar php.inipara exibir erros na tela bem como registrá-los em uma pasta específica mas parece que o Servidor pega todos os erros antes e previne e trata por PHP...

Alguém sabe o que precisamos fazer para que o IIS exiba erros de PHP na tela? Quaisquer links, dicas ou tutoriais sobre o assunto serão apreciados!

Responder1

Só para verificar, você tem o log definido como error_reporting = E_ALLe display_errors = Onno seu php.ini? Geralmente isso é suficiente para exibir esses erros no IIS 7.

A seguir, dê uma olhada nas configurações do IIS, pois elas podem estar configuradas para mostrar apenas mensagens de erro localmente. No editor de configuração do IIS 7, isso está em system.webServer->httpErrors. Você precisará alterar errorMode para Detalhado de DetalhadoLocalOnly. Obviamente, isso agora significa que qualquer pessoa que navegar em seu site poderá ver o erro.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Alternativamente, se quiser mantê-los locais, você pode usar a Área de Trabalho Remota para fazer login no servidor e executar o aplicativo a partir daí, se puder.

Responder2

Só queria acrescentar que "existentResponse" deve ser definido como "PassThrough". Não recebi nenhuma mensagem de erro real sem essa configuração adicional.

Responder3

Você pode fazer isso facilmente usando a GUI do Gerenciador do IIS. Selecione seu site e clique duas vezes em Páginas de erro. Em seguida, clique em 'Editar configurações de recursos...' e selecione a opção 'erros detalhados' em vez do padrão 'erros detalhados para solicitações locais e páginas de erro personalizadas para solicitações remotas'. Voilà, simples assim!

Responder4

Eu tentei isso e não funcionou. Especificamente no "Editor de configuração", eu precisava manter a "Resposta existente" como "automático".

No entanto, descobri que se você usar FastCGI, precisará entrar no gerenciador IIS -> site padrão -> FastCGI-> e selecionar c:\php\php-cgi-.exee "editar ..".

Em "Modo de erro padrão", você precisa mudar ReturnGeneric500paraReturnStdErrIn500

Isso exibirá os erros de PHP se eles estiverem ativados no PHP.INI ou por meio de configurações no código PHP.

informação relacionada