Resolver problemas
Registar erros do PHP para um ficheiro concreto
Em aplicações em produção, a apresentação de erros deve permanecer desativada para não revelar caminhos, consultas nem outros dados internos aos visitantes.
Faça a depuração de preferência num ambiente de staging que reproduza o problema. Se, excecionalmente, tiver de diagnosticar um ficheiro em produção e o PHP chegar a executá-lo, mantenha display_errors desativado e envie os erros para um registo privado fora de public_html:
error_reporting(E_ALL); ini_set('display_errors', '0'); ini_set('log_errors', '1'); ini_set('error_log', '/home/CPANEL_USUARIO/logs/php-debug.log');
error_reporting define os erros que serão registados e E_ALL aplica o nível máximo.
Estas diretivas aplicam-se durante a execução. Não conseguem registar um erro de sintaxe ou de compilação do mesmo ficheiro se esse erro impedir que o PHP chegue a executá-las. Nesse caso, ative primeiro o registo para a versão efetiva do PHP a partir do cPanel ou utilize um ficheiro auxiliar válido que aplique estas diretivas e depois inclua o ficheiro que quer verificar.
Antes de testar, crie o diretório fora da raiz web e proteja o ficheiro com permissões 0600. Limite a captura ao tempo indispensável e evite registar dados sensíveis.
Ao terminar, elimine estas linhas do ficheiro, verifique que display_errors continua desativado e apague o registo quando já não for necessário para o diagnóstico.
Alcance real destas linhas
Mesmo que as coloque num ficheiro concreto, as definições afetam o resto dessa execução PHP, incluindo ficheiros carregados depois; não filtram o registo para que apareçam apenas erros desse ficheiro. Se precisar de delimitar o teste, utilize um pedido controlado e filtre as suas entradas por hora e caminho.
Acrescente o código numa posição válida do PHP: uma declaração declare(strict_types=1) ou um namespace pode ter requisitos de posição. Não anteponha instruções automaticamente a qualquer ficheiro. Valide a sintaxe com a mesma versão do PHP antes de reproduzir o erro.
Também lhe pode ser útil
- Ativar o registo de erros do PHP a partir do ficheiro .htaccess Configure o .htaccess para registar temporariamente os erros PHP fora de public_html, sem os revelar...
- Ativar o registo e a apresentação de erros do PHP Guarde os erros do PHP num ficheiro error_log ou mostre-os no ecrã para encontrar a causa de uma pág...
- Depurar erros em aplicações ou ficheiros PHP Diagnostique um ecrã em branco ou um erro 500 reproduzindo a falha e consultando primeiro o registo...
- Xdebug: depurar código PHP remotamente com o PhpStorm ou o NetBeans Ative o Xdebug 3 no cPanel, abra um túnel SSH inverso a partir de Linux, macOS ou Windows (PuTTY) e...
Algo não bate certo ou mudou? Diga-nos e revemos.