
Quando se constrói uma pagina Web, se trabalharmos numa forma dinâmica e utilizamos o PHP no nosso trabalho, na fase de produção o ideal é ver todos os erros e avisos, mas quando já está na fase em que o publico têm acesso, a visualização de um erro pode ser fatal se for enviada informação que o utilizador não poderá ver, mas ao mesmo tempo o programador deverá ter acesso a esses erros.
Infelizmente alguns programadores não possuem o servidor completo e apenas o alojamento. Nesse caso não têm acesso ao ficheiro ini do PHP, o ficheiro de configuração.
Isto pode ser contornado através do ficheiro htaccess.
Prevenir que seja mostrado ao publico os erros através do htaccess
php_flag display_startup_errors off php_flag display_errors off php_flag html_errors off php_value docref_root 0 php_value docref_ext 0
Preservar que a informação dos erros seja guardada
php_flag log_errors on
php_value error_log /home/path/public_html/domain/PHP_errors.log
Protect your site’s PHP error log via htaccess
Prevenir o acesso não autorizado ao ficherio dos logs
Order allow,deny Deny from all Satisfy All
Já que estamos a trabalhar com o PHP e o htaccess vamos tirar o maior proveito disso.
Quando temos um erro no script este é constantemente repetido, se for então numa loop, é repetido varias vezes na mesma execução. O ideal é recolher a informação de um erro apenas uma vez para que seja mais fácil a leitura do log.
php_flag ignore_repeated_errors on php_flag ignore_repeated_source on
Vamos agora juntar tudo para que fique tudo pronto e limpo no htaccess
# PHP error handling php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on php_flag log_errors on php_flag ignore_repeated_errors off php_flag ignore_repeated_source off php_flag report_memleaks on php_flag track_errors on php_value docref_root 0 php_value docref_ext 0 php_value error_log /home/path/public_html/domain/PHP_errors.log php_value error_reporting 999999999 php_value error_reporting -1 php_value log_errors_max_len 0
Order allow,deny Deny from all Satisfy All