J'utilise Apache avec une configuration assez personnalisée.
J'ai remarqué que service Apache2 start
et systemctl start Apache2.service
ne fonctionnent pas, alors que Apache2ctl start
fonctionne bien.
Le message d'erreur de systemctl status Apache2.service
est "L'instance Apache2 n'a pas démarré dans les 20 secondes." mais je suis sûr que c'est le cas lorsque j'utilise Apache2ctl. Étrangement, le processus Apache est démarré après l'erreur et le site Web fonctionne correctement. Je ne peux plus utiliser les commandes pour arrêter ou recharger ...
Comment puis-je déboguer pourquoi les deux premiers ne fonctionnent pas? Comment déterminent-ils si Apache a commencé?
Mon Apache2.conf avait une ligne
PidFile /var/run/httpd2.pid
mais Ubuntu 16.04 s'attend à ce que le fichier pid apparaisse comme /var/run/Apache2/Apache2.pid
.
Donc, mon Apache a bien démarré, mais la fonction Apache_wait_start () de /etc/init.d/Apache2
utilisée par service Apache2 start
n'a jamais vu un fichier pid et pensait que le processus n'avait pas démarré.
Apache2ctl
apparemment ne vérifie pas s'il existe un fichier pid (ou lit peut-être le fichier Apache2.conf à l'emplacement actuel).
Après avoir corrigé le nom du fichier, tout fonctionne bien maintenant.