Outils personnels
Vous êtes ici : Accueil GNU / Linux Debian Mettre en place une notification par email des erreurs PHP
Actions sur le document
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Mettre en place une notification par email des erreurs PHP

Par Pierre-Yves Landuré - Dernière modification 10/11/2010 16:30

Dans certaines conditions, il peut être souhaitable d'être notifié rapidement des erreurs PHP qui peuvent apparaître sur un serveur. Ce guide vous propose une solution pour mettre en place de telles notifications.

Installez le Simple Event Correlator :

command apt-get install sec

Créez un dossier destiné à contenir vos fichiers de configuration :

command mkdir --parent "/etc/sec"

Créez le fichier de configuration de la notification par e-mail des erreurs PHP pour Apache 2 :

command echo '# Capture error lines and store them in php-errors
type=Single
ptype=RegExp
pattern=^\[.+\] \[error\] \[client .+\] PHP .+$
desc=PHP error or warning
action=add php-errors $0
 
# Report errors every minute if php-errors is set
type=Calendar
time=* * * * *
desc=Mail PHP errors
context=php-errors
action=report php-errors /usr/bin/mail -s "PHP errors" root@localhost; delete php-errors;
' > "/etc/sec/apache2-php-errors.conf"

Créez le fichier de configuration de la notification par e-mail des erreurs PHP pour LigHTTPd :

command echo '# Capture error lines and store them in php-errors
type=Single
ptype=RegExp
pattern=^.+: \(mod_fastcgi\.c\..+\) .+$
desc=PHP error or warning
action=add php-errors $0
 
# Report errors every minute if php-errors is set
type=Calendar
time=* * * * *
desc=Mail PHP errors
context=php-errors
action=report php-errors /usr/bin/mail -s "PHP errors" root@localhost; delete php-errors;
' > "/etc/sec/lighttpd-php-errors.conf"

Configurez le démon de notification (pour Apache 2 ou Lighttpd) :

if [ -d "/var/log/apache2" ]; then
  command echo '
# PHP monitoring defaults
RUN_DAEMON="yes"
DAEMON_ARGS="-conf=/etc/sec/apache2-php-errors.conf -input=/var/log/apache2/*error.log -pid=/var/run/sec.pid -detach -syslog=daemon"
' >> "/etc/default/sec"
elif [ -d "/var/log/lighttpd" ]; then
  command echo '
# PHP monitoring defaults
RUN_DAEMON="yes"
DAEMON_ARGS="-conf=/etc/sec/lighttpd-php-errors.conf -input=/var/log/lighttpd/*error.log -pid=/var/run/sec.pid -detach -syslog=daemon"
' >> "/etc/default/sec"
fi

Lancez le démon :

/etc/init.d/sec start

Vous recevrez maintenant les notifications à l'adresse recevant les mails du compte root de votre serveur.

Remerciements

BlogBang
Navigation
 

Réalisé avec Plone

Ce site respecte les normes suivantes :

Wikio