php7.0-fpm : error log file re-opened

Si vous aussi vous voyez dans le log /var/log/php7.0-fpm.log apparaître "NOTICE: error log file re-opened" à répétition, dans cet article nous allons voir comment contourner le problème facilement.

Cette erreur apparaît à chaque fois qu'il y a une rotation des logs. La raison est assez simple, c'est par que dans le fichier /etc/logrotate.d/php7.0-fpm qui définie les règles de rotation il y a ces trois lignes :

postrotate
    /usr/lib/php/php7.0-fpm-reopenlogs
endscript

Je n'ai pas encore réellement déterminé d'où sort cette erreur, mais pour la contourner j'ai remplacé les trois lignes ci-dessus par celle-ci :

postrotate \
    if [ -w /run/php/php7.0-fpm.pid ]; then \
    systemctl reload php7.0-fpm.service; \
    fi; \
endscript
NOTE : La commande systemctl est d'actualité sur les distributions qui utilisent "systemd" tel que Debian. Suivant votre distribution il faudra adapter cette commande.

La condition if va tester si le fichier /run/php/php7.0-fpm.pid existe et si il est accessible en écriture ce qui veut dire que le service "php7.0-fpm" est actif. Dans ce cas la commande systemctl reload php7.0-fpm.service va recharger le service et par la même occasion réouvrir son pointeur sur le log. Simple et efficace :)

Haut de page