Pergunta

Eu queria saber se alguém conhecia um método para configurar o Apache para voltar a retornar uma página HTML estática, ele (Apache) deveria ser capaz de determinar que o PHP morreu?Isso forneceria ao desenvolvedor uma solução elegante para exibir uma página de erro e não (na pior das hipóteses) o código-fonte da página PHP que deveria ter sido executada.

Obrigado.

Foi útil?

Solução

O código fonte do PHP só é exibido quando o apache não está configurado corretamente para lidar com arquivos php.Isto é, quando um manipulador adequado não foi definido.

Em caso de erros, o que é mostrado pode ser configurado no php.ini, principalmente a variável display_errors.Isso deve ser desativado e log_errors ativado em um ambiente de produção.

Se o php realmente morrer, o apache retornará o código de status HTTP apropriado (geralmente 500) com a página definida pela diretiva ErrorDocument.Se não morreu, mas ficou preso em um loop, não há muito que você possa fazer, pelo que eu sei.

Você pode especificar uma página diferente para diferentes códigos de erro.

Outras dicas

Eu diria que isso normalmente resulta em um erro 500, e você pode configurar o manipulador 500 do Apache para mostrar uma página estática:

Documento de erro 500 /500error.html

Você também pode ler sobre manipuladores de erros em site de documentação do apaches

O verdadeiro problema é que erros fatais do PHP não fazem com que o Apache retorne um código 500.Erros, exceto E_FATAL e E_PARSE pode ser tratado como você quiser usando set_error_handler().

Existem 2 maneiras de usar PHP e Apache.

1. Install PHP as an Apache module: this way the PHP execution is a thread inside the apache process. So if PHP execution fails, then Apache process fails too. there is no fallback strategy.

2. Install PHP as a CGI script handler: this way Apache will start a new PHP process for each request. If the PHP execution fails, then Apache will know that, and there might be a way to handle the error.

independentemente da maneira como você instala o PHP, quando a execução do PHP falha, você pode lidar com erros no php.ini arquivo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top