Ubuntu Apache2 DefaultRuntimeDir doit être un répertoire valide, absolu ou relatif à ServerRoot

J’ai un serveur Web sous Ubuntu 17.04 que je tente de configurer avec Apache . Tout fonctionnait bien jusqu’à ce que je décide d’héberger deux sites Web sur une seule machine via virtualHosts. apache refuse maintenant de démarrer avec un seul hôte activé. Chaque fois que j’essaie de démarrer Apache j’obtiens cette erreur:

 apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot. 

Aucune de mes tentatives pour résoudre ce problème n’a abouti, y compris:

 apt purge apache2 && rm -r /etc/apache2 

La ligne 80 du message d’erreur m’indique que DefaultRuntimeDir ${APACHE_RUN_DIR} .

Et à aucun moment je ne vois où et comment APACHE_RUN_DIR est déclaré.

Est-ce que quelqu’un peut m’aider?

Apache2 utilise /etc/apache2/envvars pour définir les variables d’environnement. Vous pouvez utiliser ces informations pour vous assurer que le répertoire ${APACHE_RUN_DIR} est valide.

Je rencontrais le même problème lors de la mise à niveau de 14.04 à 17.04. Le problème était le suivant: ${APACHE_RUN_DIR} était défini sur /var/run/apache2 , mais le dossier apache2 était manquant dans /var/run .

Le correctif pour moi était: mkdir /var/run/apache2

Il manque une mise à jour dans “man apache2”, au moins pour l’option -V;

Aujourd’hui, on devrait utiliser “apachectl” ou “apache2ctl” au lieu de

“apache2” pour au moins certaines options, comme indiqué dans

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879571

La commande

 source /etc/apache2/envvars 

réglé mon problème (après avoir essayé TOUS les autres).

Pour vérifier si tout va bien ou pas, utilisez la commande

 apache2 -S 

J’ai trouvé que c’était plus rapide que d’utiliser mes enregistrements DNS.