web-dev-qa-db-fra.com

Apache2 ne parvient pas à démarrer au démarrage avec Ubuntu 16.04

Je viens de créer un nouveau serveur Ubuntu 16.04 (sur Digital Ocean, si cela compte). J'ai configuré Apache2 et il fonctionne correctement, mais à chaque redémarrage, le démarrage échoue.

Je reçois les informations suivantes de statut systemctl:

root@twl-ubuntu-2gb-sgp1-01:~# systemctl status Apache2.service 
● Apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/Apache2; static; vendor preset: enabled)
  Drop-In: /lib/systemd/system/Apache2.service.d
           └─Apache2-systemd.conf
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)

Si je lance systemctl est activé je reçois "statique":

root@twl-ubuntu-2gb-sgp1-01:~# systemctl is-enabled Apache2.service 
static

Même après avoir lancé systemctl enable cela ne change pas:

root@twl-ubuntu-2gb-sgp1-01:~# systemctl enable Apache2.service 
Synchronizing state of Apache2.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable Apache2
root@twl-ubuntu-2gb-sgp1-01:~# systemctl is-enabled Apache2.service 
static

Mais Apache n’a aucun problème à démarrer. Quand je lance systemctl start manuellement cela fonctionne très bien:

root@twl-ubuntu-2gb-sgp1-01:~# systemctl start Apache2.service 
root@twl-ubuntu-2gb-sgp1-01:~# systemctl status Apache2.service 
● Apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/Apache2; static; vendor preset: enabled)
  Drop-In: /lib/systemd/system/Apache2.service.d
           └─Apache2-systemd.conf
   Active: active (running) since Sat 2016-07-09 07:33:30 EDT; 8s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1847 ExecStart=/etc/init.d/Apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 7
   Memory: 22.5M
      CPU: 455ms
   CGroup: /system.slice/Apache2.service
           ├─1871 /usr/sbin/Apache2 -k start
           ├─1875 /usr/sbin/Apache2 -k start
           ├─1876 /usr/sbin/Apache2 -k start
           ├─1877 /usr/sbin/Apache2 -k start
           ├─1878 /usr/sbin/Apache2 -k start
           └─1879 /usr/sbin/Apache2 -k start

Jul 09 07:33:28 twl-ubuntu-2gb-sgp1-01 systemd[1]: Starting LSB: Apache2 web server...
Jul 09 07:33:28 twl-ubuntu-2gb-sgp1-01 Apache2[1847]:  * Starting Apache httpd web server Apache2
Jul 09 07:33:29 twl-ubuntu-2gb-sgp1-01 Apache2[1847]: AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set t
Jul 09 07:33:30 twl-ubuntu-2gb-sgp1-01 Apache2[1847]:  *
Jul 09 07:33:30 twl-ubuntu-2gb-sgp1-01 systemd[1]: Started LSB: Apache2 web server.

Je suis nouveau à SystemD, récemment mis à jour à 16.04 à partir de 14.04. Où vais-je mal, ou peut-être, que puis-je faire pour déboguer pourquoi Apache2 refuse de démarrer?

Mise à jour 1 (2016-07-14)

Il se trouve qu'Apache est en cours de chargement, mais reçoit un SIGTERM dès son lancement. La seule ligne du fichier journal est la suivante:

[Wed Jul 13 21:37:15.730331 2016] [mpm_prefork:notice] [pid 1871] AH00169: caught SIGTERM, shutting down

Des idées pour obtenir un meilleur message d'erreur? Comme je l'ai mentionné, exécuter systemctl start Apache2 immédiatement après le démarrage du système commence parfaitement.

Mise à jour 2 (2016-07-15)

Il s’avère que Sigterm a été tué lorsque j’ai exécuté Sudo reboot. Il n'y avait aucun message de journal dans /var/log/Apache2/error.log. Si j’exécute journalctl j’obtiens ces lignes lors du processus de démarrage, il semble donc fonctionner correctement ou du moins aucune erreur n’est consignée:

Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 systemd[1]: Starting LSB: Apache2 web server...
Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 Apache2[1800]:  * Starting Apache httpd web server Apache2
Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 Apache2[1800]: AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set t
Jul 13 21:38:05 twl-ubuntu-2gb-sgp1-01 Apache2[1800]:  *
Jul 13 21:38:05 twl-ubuntu-2gb-sgp1-01 systemd[1]: Started LSB: Apache2 web server.

Mais alors le service n'est jamais accessible, et systemctl status Apache2.service le signale toujours comme "inactif (mort)"

2
Jason O'Neil

Je leva les yeux ce que signifiait l'état static de is-enabled et trouvai que:

Dans ce contexte, statique signifie que le fichier d'unité ne contient pas de section "installer", utilisée pour activer une unité. En tant que tels, ces unités ne peuvent pas être activées.

De plus, j'ai trouvé que le paquet Apache2 ne contient qu'un fichier d'inclusion systemd, pas un fichier complet:

 # /lib/systemd/system/Apache2.service.d/Apache2-systemd.conf
 [Service]
 Type=forking
 RemainAfterExit=no

Il semble que le reste de la logique de gestion du processus Apache2 provient de l'utilisation d'un shim qui permet à systemd d'exécuter des scripts SysVinit. Essayez donc d'activer Apache2 pour qu'il s'exécute au démarrage en utilisant un lien symbolique dans un répertoire SysVinit:

ln -s /etc/init.d/Apache2 /etc/rc5.d/S02Apache2

Cela ressemble à un bogue ou au moins à une fonctionnalité manquante indiquant qu'Apache2 n'est pas fourni avec un fichier système complet 'service' sous Ubuntu 16.04.

2
Mark Stosberg

S'il vous plaît essayez :

ln -s /etc/systemd/system/Apache2.service /etc/systemd/system/multi-user.target.wants/Apache2.service
0
ivanllc