web-dev-qa-db-fra.com

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. Désormais, Apache refuse de démarrer même 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 me dit que c'est DefaultRuntimeDir ${Apache_RUN_DIR}.

Et à aucun moment je ne vois où ni comment Apache_RUN_DIR est déclaré.

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

10
timhyd

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.

8
ianm

Apache2 utilise /etc/Apache2/envvars pour définir les variables d'environnement. Vous pouvez utiliser ces informations pour vous assurer que le répertoire que ${Apache_RUN_DIR} désigne 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

6
Niyol

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

5
Rocdufer

dans mon cas, il s'agissait de la ligne "Exiger tous les interdits" dans le fichier Apache2.conf qui (à nouveau) a été saisie dans mon cas comme étant simplement "Exiger refusée"

Reenebling php5.6 Le module Apache aide à résoudre ce problème.

Presse Ctrl+Alt+T et tapez ces:

Sudo a2dismod php5.6
Sudo a2enmod php5.6

Puis redémarrez le service Apache2:

Sudo service Apache2 restart
0
Vladimir Ch