Résoudre les problèmes
Enregistrer les erreurs PHP pour un fichier précis
Dans les applications en production, l'affichage des erreurs doit rester désactivé pour ne pas révéler de chemins, de requêtes ni d'autres données internes aux visiteurs.
Faites le débogage de préférence dans un environnement de staging qui reproduit le problème. Si vous devez exceptionnellement diagnostiquer un fichier en production et que PHP parvient à l'exécuter, gardez display_errors désactivé et envoyez les erreurs vers un journal privé en dehors 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 définit les erreurs qui seront enregistrées et E_ALL applique le niveau maximal.
Ces directives s'appliquent pendant l'exécution. Elles ne peuvent pas enregistrer une erreur de syntaxe ou de compilation du même fichier si cette erreur empêche PHP de les exécuter. Dans ce cas, activez d'abord le journal pour la version effective de PHP depuis cPanel, ou utilisez un fichier auxiliaire valide qui applique ces directives puis inclut le fichier à vérifier.
Avant le test, créez le répertoire en dehors de la racine web et protégez le fichier avec les permissions 0600. Limitez la capture au temps strictement nécessaire et évitez d'enregistrer des données sensibles.
À la fin, supprimez ces lignes du fichier, vérifiez que display_errors est toujours désactivé et effacez le journal lorsqu'il n'est plus nécessaire au diagnostic.
Portée réelle de ces lignes
Même si vous les placez dans un fichier précis, les réglages s'appliquent au reste de cette exécution PHP, y compris aux fichiers chargés ensuite ; ils ne filtrent pas le journal pour n'y faire apparaître que les erreurs de ce fichier. Si vous devez circonscrire le test, utilisez une requête contrôlée et filtrez ses entrées par heure et par chemin.
Ajoutez le code à un emplacement valide pour PHP : une déclaration declare(strict_types=1) ou un namespace peut imposer une position. N'ajoutez pas automatiquement des instructions au début de n'importe quel fichier. Validez la syntaxe avec la même version de PHP avant de reproduire l'erreur.
Cela peut aussi vous aider
- Activer la journalisation et l'affichage des erreurs PHP Enregistrez les erreurs PHP dans un fichier error_log ou affichez-les à l'écran pour trouver la caus...
- Activer le journal des erreurs PHP depuis le fichier .htaccess Configurez .htaccess pour enregistrer temporairement les erreurs PHP en dehors de public_html, sans...
- Déboguer les erreurs dans les applications ou fichiers PHP Diagnostiquez une page blanche ou une erreur 500 en reproduisant l'échec et en consultant d'abord le...
- Xdebug : déboguer du code PHP à distance avec PhpStorm ou NetBeans Activez Xdebug 3 dans cPanel, ouvrez un tunnel SSH inverse depuis Linux, macOS ou Windows (PuTTY) et...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.