Comment activer le journal des erreurs php apache : modifiez d'abord la configuration dans php-fpm.conf ; puis modifiez la configuration dans php.ini en "log_errors = On" ;
Recommandé : "Tutoriel vidéo PHP"
nginx et Apache activent la journalisation des erreurs PHP
L'environnement de développement LNMP récemment construit localement. Afin de ne pas affecter le développement normal du front-end pendant le développement, certains messages d'erreur dans le php.ini en PHP sont bloqués. Mais de cette façon, cela affecte certains problèmes dans le développement back-end, comme l'incapacité de déboguer certains problèmes de développement à temps
nginx est différent d'apache , dans Apache Vous pouvez spécifier directement le journal des erreurs PHP, de sorte que les informations sur les erreurs lors de l'exécution de PHP soient directement saisies dans le journal des erreurs PHP, qui peut être facilement interrogé.
Dans nginx, les choses deviennent comme ceci : nginx enregistre uniquement les journaux d'accès pour les visites de pages. Il n'y aura aucune information du journal des erreurs PHP. nginx envoie la demande de php au processus php-fpm fastcgi pour traitement. Le php-fpm par défaut affichera uniquement le message d'erreur de php-fpm, et le journal des erreurs de php ne peut pas être vu dans le journal des erreurs de php-fpm.
La raison est que le fichier de configuration php-fpm php-fpm.conf désactive par défaut la sortie d'erreur du processus de travail et les redirige directement vers /dev/null, nous utilisons donc le journal des erreurs de nginx et php - Le journal des erreurs de fpm ne peut pas voir le journal des erreurs de php.
Nous devons donc effectuer les réglages suivants pour voir comment php-fpm n'enregistre pas les journaux d'erreurs php sous nginx :
1 Modifiez la configuration dans php-fpm.conf, sinon s'il vous plaît. ajoutez :
[global] ; Note: the default prefix is /usr/local/php/var error_log = log/php_error_log [www] catch_workers_output = yes
2. Modifiez la configuration dans php.ini, sinon, ajoutez :
log_errors = On error_log = "/usr/local/php/var/log/error_log" error_reporting=E_ALL&~E_NOTICE
3. Redémarrez php-fpm
quand. PHP Lors de l'exécution d'une erreur, vous pouvez voir le journal des erreurs dans "/usr/local/lnmp/php/var/log/php_error_log"
S'il apparaît :
[root@localhost etc]# service php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm [17-Apr-2014 18:40:52] ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry 'catch_workers_ [17-Apr-2014 18:40:52] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf' [17-Apr-2014 18:40:52] ERROR: FPM initialization failed failed
Ensuite, veuillez écrire soigneusement la configuration dans le groupe correspondant dans la première étape, sinon l'erreur ci-dessus apparaîtra :
ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry ‘catch_workers_output' apache display_errors
écho d'erreur, couramment utilisé en mode développement, mais de nombreuses applications sont dans des environnements formels. J'ai également oublié de désactivez cette option. L'écho d'erreur peut exposer de nombreuses informations sensibles, ce qui facilite la prochaine attaque de l'attaquant. Il est recommandé de désactiver cette option.
display_errors = On
À l'état ouvert, si une erreur se produit, une erreur sera signalée et un message d'erreur apparaîtra
dispaly_errors = Off
À l'état fermé, si une erreur se produit, elle se produira. invite : erreur de serveur. Mais aucun message d'erreur n'apparaîtra
log_errors
Utilisez-le simplement dans un environnement formel et enregistrez le message d'erreur dans le journal. Juste à temps pour désactiver l'écho d'erreur.
Pour les développeurs PHP, une fois qu'un produit est mis en service, la première chose à faire est de désactiver l'option display_errors pour éviter d'être endommagé par le chemin, la connexion à la base de données, la table de données et d'autres informations divulguées par ces erreurs. .aux attaques de pirates.
Après la mise en service d'un produit, il y aura forcément des messages d'erreur. Alors comment enregistrer ces informations très utiles aux développeurs ?
Activez simplement les log_errors de PHP. Par défaut, ils sont enregistrés dans le fichier journal du serveur WEB, comme le fichier error.log d'Apache.
Bien sûr, vous pouvez également enregistrer les journaux d'erreurs dans le fichier spécifié.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!