Desactivar os avisos e notificações de descontinuação do PHP

4

Eu tenho usado e configurado o PHP, mas agora estou presa em um problema estranho, então vou pedir ajuda a vocês.

Eu não quero ver Avisos e Avisos de Descontinuação em um servidor de produção, no entanto, gostaria de ver outras mensagens de erro, como Erros de Sintaxe, por exemplo.

Estou executando o PHP 5.3.3-1ubuntu9.3 com o Suhosin-Patch no Ubuntu 10.10

No meu /etc/php5/apache2/php.ini tenho a seguinte linha:

error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_NOTICE

Eu reiniciei o servidor. Na configuração do host virtual não há nenhum php_admin_value mexendo nessa configuração, na pasta não existe nenhum arquivo .htaccess.

No entanto, avisos e avisos de descontinuação ainda são exibidos.

Alguém pode ajudar? Obrigado antecipadamente!

    
por stivlo 25.04.2011 / 18:49

2 respostas

8
Primeiro de tudo, quero agradecer a binfalse por responder a esta pergunta, no entanto, o meu problema não foi resolvido com a sua sugestão e avisos continuaram a mostrar.

Isso ocorre porque o PHP tem vários lugares onde a configuração pode ser definida. Embora eu tivesse uma idéia da precedência dessas configurações, decidi testá-las experimentalmente para ter certeza do que vou dizer nesta resposta.

Então, aqui está uma lista desses lugares, do mais global ao mais específico. Cada configuração abaixo da lista pode substituir uma configuração anterior.

  1. O arquivo de configuração do php.ini . No caso do Ubuntu existem dois deles, o /etc/php5/apache2/php.ini é o usado para o módulo php apache. Isso terá um efeito global em todos os hosts virtuais.

  2. O diretório conf.d . Na verdade, nem todas as instalações terão essa configuração modularizada, mas no caso do Ubuntu está localizado em /etc/php5/apache2/conf.d para o módulo do apache. Qualquer arquivo adicionado neste diretório será adicionado à configuração principal do php.ini com maior precedência do que o php.ini. Em outras palavras, qualquer configuração aqui irá sobrescrever as configurações no php.ini - eu testei adicionando um error.ini. Isso terá um efeito global em todos os hosts vituais.

  3. Configuração do host virtual Apache . Geralmente configurado em / etc / apache2 / sites-available, cada host virtual pode ter configurações diferentes. Dentro da tag VirtualHost é possível incluir "php_value error_reporting", onde value é o resultado numérico das operações booleanas nas constantes. Nesta configuração, na verdade, não é permitido usar as constantes mnemônicas, mas apenas um valor numérico. Isso afetará apenas um único host virtual. Ele substituirá as configurações acima.

  4. .htaccess . Também é possível definir valores de configuração e, em particular, a configuração error_reporting também em .htaccess, com a mesma sintaxe descrita em 3. Ela afetará apenas o diretório no qual o .htaccess está localizado e todos os subdiretórios. Ele irá sobrescrever as configurações acima, neste caso não é necessário reiniciar o Apache.

  5. Código-fonte . O último lugar onde esta configuração pode ser alterada é diretamente na fonte PHP executada. Se usado, irá substituir todas as configurações anteriores, e é exatamente isso que eu estava enfrentando. Pode ser definido chamando a função "error_reporting ()" ou com "ini_set (" error_reporting ",)". Os erros de compilação ainda podem ser exibidos, porque o script não será executado nesse caso.

por 03.05.2011 / 16:19
4

Defina a variável em /etc/php5/apache2/php.ini para

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

isso só mostrará erros.

    
por 25.04.2011 / 19:00