[aman@aman-Inspiron-1440:~$ apache2
[Mon Apr 21 17:36:38.019213 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Mon Apr 21 17:36:38.019345 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Mon Apr 21 17:36:38.019370 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Mon Apr 21 17:36:38.019385 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Mon Apr 21 17:36:38.019414 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.028756 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029032 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029056 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
Ceci est le contenu du /etc/apache2/apache2.conf
fichier.
Réponses:
J'ai eu ce problème: la cause est dans le fichier
où la racine a changé:
avant la mise à niveau =
/var/www
après la mise à niveau =
/var/www/html
Alors éditez pour modifier ce fichier
Et redémarrez Apache
la source
000-default.conf
fichier.html
sous - dossier existe déjà, ce qui dans mon cas est en réalité sans importance puisque tous mes sites utilisent VirtualHostsDocumentRoot
paramètre.J'ai eu ce problème même si Apache travaillait pour moi. Je voulais simplement faire un rapide
pour trouver la valeur de
SERVER_CONFIG_FILE
. Parce que ce n'est pas la façon de démarrer apache2, cela échoue avec les erreurs que l'OP poste. Une solution simple et rapide consiste simplement à définir les variables d’envois manquantes en premier:Ceci définit la variable APACHE_LOCK_DIR et tout va bien (
-D SERVER_CONFIG_FILE="apache2.conf"
).la source
apache2 -S
échoué. Tout est réparé.apache2
tant que root corrige le problème.apache2ctl -V
Symptômes et solution
Dans de nombreux sites Web et forums de questions-réponses, les gens confondent symptômes et causes réelles. Je viens de mettre à niveau un serveur Ubuntu de 13.10 à 14.04.1 et j'ai rencontré exactement les mêmes symptômes que ceux décrits par l'OP, notamment:
1- Apache apparemment ne fonctionne pas. 2- Variable de configuration apache non définie. 3- l'erreur de syntaxe mentionnée par l'OP.
Le problème est que tous ces symptômes ne sont pas réellement liés au problème actuel et qu’ils ne font que distraire ceux qui s’efforcent de les aider.
Différents problèmes à la racine peuvent amener les administrateurs à accéder à des sites tels que celui-ci avec à peu près la même description: "J'ai mis à niveau le système d'exploitation et maintenant, Apache ne fonctionne plus ..."
Une cause spécifique
Ayant tous les mêmes symptômes apparents que le PO, j'ai été attiré par cette question. Malheureusement, la seule réponse qui contenait un indice valable sur la cause réelle de mon problème était un vote négatif (-1), posté par user1469291 avec un représentant de 1 !! J'ai donc cherché d'autres sites Web jusqu'à trouver une explication claire du problème (et donc de la solution).
La solution qui suit ne résoudra peut-être pas le vrai problème du PO, mais je suis certaine que cela aidera d’autres personnes qui pourraient être attirées par cette question pour les mêmes raisons que moi.
/etc/apache2/apache2.conf contient:
ce qui signifie que seuls les fichiers de configuration de site dans / etc / apache2 / sites-enabled / se terminant par .conf seront chargés. Les liens symboliques plus anciens dans ce répertoire seront ignorés.
Auparavant, il s'agissait simplement de sites / *. C'est pourquoi tous mes fichiers de configuration d'hôte virtuel que je nommais simplement ww1.example.com, ww2.example.com, etc. fonctionnaient, mais qui tout à coup et initialement inexplicablement ont cessé de fonctionner après la mise à niveau.
Donc, changez la directive ci-dessus et rechargez Apache, ou, comme je l’ai fait, supprimez manuellement tous les liens symboliques anciens de sites-enabled /, renommez tous les fichiers de sites-available / pour ajouter le suffixe .conf, puis réactivez-les chaque fois. site individuellement.
De plus, la directive par défaut dans apache.conf est plus stricte:
Donc, si vous hébergez vos sites virtuels dans / home / user / quelque part, veillez à remplacer la directive de manière appropriée.
la source
En regardant de près votre problème, vous ne faites que courir
apache2
. Pour démarrer apache sous Ubuntu, exécutez la commande suivante:La configuration d'Apache est divisée en plusieurs fichiers, l'un de ces fichiers étant des variables d'environnement. Lorsque vous exécutez simplement
apache2
, ces variables ne sont pas définies.Le script apache2ctl chargera les variables (et fera d’autres tâches si nécessaire) avant de démarrer apache avec
apache2 -k start
.la source
sudo apache2ctl restart
plutôt.Editez la configuration
sudo leafpad /etc/apache2/apache2.conf
:ou supprimer le fichier.
la source
La réponse d'augustin a fonctionné pour moi lorsque tous mes hôtes virtuels ont disparu suite à une mise à niveau du serveur de 12.04 LTS à 14.04 LTS. Je le reviendrais si j'avais la réputation de le faire.
La commande suivante ajoutera le
.conf
suffixe à tous les liens symboliques/etc/apache2/sites-enabled
qui ne l’ont pas déjà:De plus, l'utilisation de la syntaxe
Allow from
/ dans le module mod_authz_host a été modifiée ( voici le lien pour la documentation 2.2).Deny from
Require
La commande suivante éditera l'usage courant de "
Order allow, deny
suivi de" suiviAllow from all
de "être à laRequire all granted
place":la source
En fait, le docroot change entre précis et fiable de / var / www à / var / www / html. Il est faible que le script do-release-upgrade ne régresse pas le dossier racine.
A) Soit est valide, mais le HTML est plus conventionnel. CentOS est influent à cet égard. La page "ça marche" est plus mature maintenant aussi.
B) Vous n'êtes pas obligé d'utiliser / var / www / html, mais si vous le faites ...
C) Et il peut être plus facile de construire à partir de la base et de migrer.
D) Ce symptôme se produira si vous "Sudo Apache2 -k Gracieux" est prêt à l'emploi avec Trusty, que vous effectuez une mise à niveau ou non en raison de l'absence d'envars dans la portée?. Utilisez plutôt "sudo apache2ctl start / stop / restart".
la source
Dans mon cas:
html
sous-dossier at/var/www/
existait déjà mais j'avais quand même l'erreur:AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf
/home/{user}/sites/
place de l'adresse par défaut./var/www/html
apache2 -v
)Comment j'ai résolu le problème en cinq étapes faciles:
Dans
/etc/apache2/apache2.conf
j'ajouté , après la ligne 169:Je me suis assuré que ma configuration d'hôte virtuel nommée
website.conf
à/etc/apache2/sites-available
était copiée à partir de la configuration par défaut000-default.conf
et ressemblait à:J'ai rechargé mon site (
sudo a2dissite website && sudo a2ensite website
) et mon serveur et l'erreur initiale a disparu. WOOHOO! Mais un nouveau est apparu: "AH00035: accès à / refusé (chemin du système de fichiers '/ home / {utilisateur} / sites') car les autorisations de recherche sont manquantes sur un composant du chemin". J'ai résolu ce problème à l'étape 4.Le nouveau problème était dû aux autorisations, aussi je viens de définir chacun des répertoires menant au
website
dossierchmod 755
. Chacun! Lehome
dossier, le dossier {utilisateur}, le dossier de sites et même le dossier de mon site WebAprès avoir rafraîchi mon navigateur à
website.dev
tout chargé bien!PS j'avais déjà configuré
website.dev
dans mon/etc/hosts
fichier.Conseil bonus: pour vérifier les autorisations d'un dossier particulier, vous pouvez utiliser la commande
stat -c %a /path/to/file/or/folder
. Pour vérifier les autorisations de chaque partie d'un répertoire, utiliseznamei -m /path/to/final/folder
.la source