web-dev-qa-db-fra.com

Démarrer Apache sur Ubuntu 16.04: le service ne fonctionne pas et Apache2ctl ne fonctionne

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é?

4
Gene Vincent

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.

0
Gene Vincent