Maison > Article > développement back-end > Comment nginx php-fpm génère le journal des erreurs php
Méthode de configuration pour l'erreur de sortie php fpm : Ouvrez d'abord le fichier "php-fpm.conf" ; puis ajoutez le contenu "error_log = log/error_log" puis ouvrez le fichier "php.ini" et ajoutez le contenu. contenu " log_errors = On » ; enfin redémarrer.
Recommandé : "Tutoriel vidéo PHP"
Comme introduit dans cet article, dans le serveur nginx , configurez Les amis intéressés peuvent se référer à la méthode de sortie du journal des erreurs php-fpm. J'espère que cela sera utile à tout le monde.
Puisque nginx n'est qu'un serveur Web, le journal d'accès de nginx enregistre uniquement les pages consultées, et il n'y aura pas de php informations du journal des erreurs.
nginx envoie la requête php au processus php-fpm fastcgi pour traitement. Le php-fpm par défaut affichera uniquement le message d'erreur de php-fpm dans les erreurs de php-fpm. Vous ne pouvez pas non plus voir le journal des erreurs de php dans le journal
Raison :
Le fichier de configuration de php-fpm, php-fpm.conf, ferme par défaut la sortie d'erreur du processus de travail et les redirige directement vers /dev/ null, donc nous sommes en erreur nginx
Ni le journal ni le journal des erreurs de php-fpm ne peuvent voir le journal des erreurs de php.
Comment résoudre le problème selon lequel php-fpm n'enregistre pas les journaux d'erreurs php sous nginx :
1. Modifiez la configuration dans php-fpm.conf et ajoutez
catch_workers_output = yes error_log = log/error_log
2 .Modifiez la configuration dans php.ini, sinon ajoutez
log_errors = On error_log = "/usr/local/lnmp/php/var/log/error_log" error_reporting=E_ALL&~E_NOTICE
3. Redémarrez php-fpm,
Lorsque PHP exécute une erreur, vous pouvez voir le journal des erreurs dans "/usr/local/lnmp /php/var/log/error_log"
Veuillez noter :
1. Le paramètre php_admin_value[error_log] dans php-fpm.conf écrasera le paramètre error_log dans php. ini
donc assurez-vous que le fichier error_log final que vous voyez dans phpinfo() dispose d'autorisations d'écriture et ne définit pas le paramètre php_admin_value[error_log], sinon le journal des erreurs sera affiché dans le journal des erreurs de php-fpm.
2. L'emplacement de php.ini est introuvable, utilisez phpinfo() de php pour afficher les résultats
3 Comment modifier. le journal des erreurs PHP Sortie sur la page ou l'écran
Modifier php.ini
display_errors = off //不显示错误信息(不输出到页面或屏幕上) log_errors = on //记录错误信息(保存到日志文件中) error_reporting = E_ALL //捕获所有错误信息 error_log = //设置日志文件名
Modifier la configuration ci-dessus dans le programme
ini_set("display_errors",0) ini_set("error_reporting",E_ALL); //这个值好像是个PHP的常量 ini_set("error_log","<日志文件名>") ini_set("log_errors",1);
4. Comment afficher le journal des erreurs php sur Journal des erreurs nginx
Dans PHP 5.3.8 et versions antérieures, lorsque PHP s'exécute via FastCGI et qu'une erreur se produit lors de l'accès utilisateur, elle sera d'abord écrite dans le journal des erreurs de PHP
Si le journal des erreurs de PHP ne peut pas être écrit, il le fera. le contenu est renvoyé à l'interface FastCGI, puis nginx l'enregistre dans le journal des erreurs nginx après avoir reçu le retour d'erreur de FastCGI
Dans PHP 5.3.9 et versions ultérieures, PHP essaie d'écrire dans le journal des erreurs PHP uniquement après qu'une erreur se produit. S'il échoue, il ne reviendra pas à FastCGI et le journal des erreurs sera affiché dans le journal des erreurs de php-fpm.
Donc, si vous souhaitez afficher le journal des erreurs php dans le journal des erreurs nginx, vous devez utiliser une version antérieure à php5.3.8, et le error_log de php dans le fichier de configuration n'est pas accessible en écriture par le processus de travail php.
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!