wiki:Guias/HowTo/DebuggingPHP
Last modified 7 years ago Last modified on 10/23/11 11:06:28

Debugging com PHP

Funções de debug em arquivo

Estas funções são úteis para realizar o debug, em arquivo no servidor, de um código PHP:

<?php
function debug($str=''){
        $log = fopen('/tmp/1.log', 'a') or die('Nao foi possivel abrir o arquivo /tmp/1.log\n');
        fwrite($log, $str . "\n");
        fclose($log);
}
?>
<?php
function debug ($str=''){
        ob_start();
        print_r( $str);
        $output = ob_get_clean();
        file_put_contents( "/tmp/1.log",  $output , FILE_APPEND);
}
?>

Acompanhando os logs do servidor

Verificar e analisar as mensagens de logs dos serviços envolvidos no Expresso pode ajudar (e agilizar) a identificação e resolução de problemas. Para facilitar este trabalho, os logs relevantes estão concentrados em um único diretório, /var/log/expresso, contendo:

  • http-[ssl-]acess.log: Os registros de acesso, via HTTP ou HTTPS, dos clientes e seus respectivos navegadores, IPs e URLs acessadas;
  • http-[ssl-]error.log: Os registros de erro, de acordo com as requisições (URLs) e seus respectivos erros, como problema no código, mensagens de erro geradas pelo próprio Expresso, entre outras;
  • php.log: Mensagens referentes ao processamento do código PHP, como notificações sobre a sintaxe, formatação, uso indevido/incorreto de funções, código depreciado, warnings, e erros no código do próprio Expresso;
  • mail.log: Todos as mensagens envolvendo o serviço de e-mail, como login no cyrus (IMAP) e postfix (SMTP), envio/recebimento de e-mails, armazenamento e recuperação de mensagens (cyrus), entre outros;
  • openldap.log: Todas as mensagens envolvendo o serviço LDAP, como abertura e fechamento de conexões, adições/consultas/modificações e seus respectivos filtros/comandos;
  • postgresql.log: Todas as mensagens envolvendo o serviço de banco de dados, desde a abertura de conexões, execução das chamadas SQL até o encerramento das conexões.

Shell interativo

Esta é uma funcionalidade muito interessante, pois permite avaliar o comportamento de seu código PHP muito rapidamente. Veja mais na página do PHP.net.

Attachments