Configurer le superviseur pour exécuter le serveur web Apache2 sur Ubuntu/Debian Linux
L’idée de démarrer vos services sous la supervision du superviseur est de pouvoir exécuter plusieurs services sous un seul démon. Selon la configuration du superviseur, il sera capable de démarrer, d’arrêter ou de redémarrer n’importe quel service donné en tant que processus enfant. Dans cette configuration, nous montrons comment exécuterapache2 en tant que service supervisé (utile pour les images docker, etc.) sur Ubuntu/Debian Linux.
Tout d’abord, installez supervisor :
apt-get install supervisor
Incluez la configuration du superviseur d’apache2 dans /etc/supervisor/conf.d/. Le superviseur choisira tous les fichiers de configuration de ce répertoire où la seule exigence est l’extension de fichier *.conf. Par exemple, insérez les lignes suivantes dans un nouveau fichier /etc/supervisor/conf.d/apache2.conf :
[program:apache2]
command=/usr/sbin/apache2ctl -DFOREGROUND
Une fois que vous avez inclus le fichier de configuration ci-dessus, arrêtez le serveur web apache2 s’il est en cours d’exécution :
/etc/init.d/apache2 stop
[ ok ] Stopping web server: apache2.
root@4e004b451a98:/# /etc/init.d/apache2 status
[FAIL] apache2 is not running ... failed!
et redémarrez le superviseur :
/etc/init.d/supervisor restart
Restarting supervisor: supervisord.
Une fois que vous avez redémarré le superviseur, le serveur web apache2 doit également être démarré. Vérifiez que le serveur web apache2 est en cours d’exécution :
/etc/init.d/apache2 status
[ ok ] apache2 is running.
Dépannage
Si, pour une raison quelconque, vous ne pouvez pas faire fonctionner votre Apache sous Supervisor Run Supervisor en mode Nodaemon :
/etc/init.d/supervisor stop
Stopping supervisor: supervisord.
supervisord -n
Message d'erreur:
/usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
'Supervisord is running as root and it is searching '
2015-05-07 01:21:00,849 CRIT Supervisor running as root (no user in config file)
2015-05-07 01:21:00,849 WARN Included extra file "/etc/supervisor/conf.d/apache2.conf" during parsing
2015-05-07 01:21:00,858 INFO RPC interface 'supervisor' initialized
2015-05-07 01:21:00,858 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2015-05-07 01:21:00,858 INFO supervisord started with pid 542
2015-05-07 01:21:01,862 INFO spawned: 'apache2' with pid 545
2015-05-07 01:21:01,914 INFO exited: apache2 (exit status 0; not expected)
2015-05-07 01:21:02,918 INFO spawned: 'apache2' with pid 548
2015-05-07 01:21:02,970 INFO exited: apache2 (exit status 0; not expected)
2015-05-07 01:21:04,975 INFO spawned: 'apache2' with pid 551
2015-05-07 01:21:05,025 INFO exited: apache2 (exit status 0; not expected)
2015-05-07 01:21:08,031 INFO spawned: 'apache2' with pid 554
2015-05-07 01:21:08,078 INFO exited: apache2 (exit status 0; not expected)
2015-05-07 01:21:09,079 INFO gave up: apache2 entered FATAL state, too many start retries too quickly
Si vous voyez le message d’erreur ci-dessus, assurez-vous que votre serveur Web Apache n’est pas déjà en cours d’exécution.
Un autre message d’erreur que vous pouvez voir est :
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
C’est parce que vous essayez d’exécuter directement la commande apache2. Vous pouvez essayer d’exécuter apache2ctl à la place.