J'ai installé apache2 sur Ubuntu 13.10. Si j'essaie de le redémarrer en utilisant
sudo /etc/init.d/apache2 restart
Je reçois ce message:
AH00558: apache2: impossible de déterminer de manière fiable le nom de domaine complet du serveur à l'aide de 127.0.1.1. Définissez la directive 'ServerName' globalement pour supprimer ce message
Alors j'ai lu que je devrais éditer mon httpd.conf
fichier. Mais, comme je ne le trouve pas dans le /etc/apache2/
dossier, j'ai essayé de le localiser à l'aide de cette commande:
/usr/sbin/apache2 -V
Mais le résultat obtenu est le suivant:
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Fri Nov 29 17:35:43.942560 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Fri Nov 29 17:35:43.942602 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Fri Nov 29 17:35:43.942613 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Fri Nov 29 17:35:43.942627 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.947913 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948051 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948075 2013] [core:warn] [pid 14655] 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}
La ligne 74 de /etc/apache2/apache2.conf
est la suivante:
Mutex file:${APACHE_LOCK_DIR} default
J'ai jeté un coup d'œil à mon /etc/apache2/envvar
dossier, mais je ne sais pas quoi en faire.
Que devrais-je faire?
apache-2.2
ubuntu
Kurt Bourbaki
la source
la source
Réponses:
Ce message s'affiche car vous avez directement exécuté le binaire apache2. Dans Ubuntu / Debian, la configuration d’apache repose sur le fichier envvar qui n’est activé que.
Si vous démarrez Apache avec le script init ou apachectl.
Votre problème initial est que vous n’avez pas un nom d’hôte correct (fqdn) pour votre ordinateur.
Si vous ne pouvez pas le changer, changer la
ServerName
variable/etc/apache2/apache2.conf
pourlocalhost
ou votre FQDN preferred.la source
ServerName localhost
àapache2.conf
(carhttpd.conf
n’est pas toujours utilisé sur Ubuntu) et maintenant tout fonctionne comme il se doit. Pourriez-vous s'il vous plaît ajouter des détails à vos réponses, afin que je puisse le marquer comme accepté?apache2ctl
ne fonctionnait pas pour moi, je devais utiliser le service :sudo service apache2 restart
apache2
commandement en premier lieu?AH00558: apache2: Could not reliably determine the server's fully qualified domain name
mais ne résout pasConfig variable ${APACHE_LOCK_DIR} is not defined
.Source vos envvars en le lançant comme ceci:
puis
Tu devrais obtenir:
la source
/etc/apache2/envvars
n'existe pasapachectl -V
au lieu de charger dans les variables d'environnement manuellement.source /etc/apache2/envvars && sudo -E apache2 -V
ou connectez-vous commeroot
indiqué ci-dessus. Faire passer l’environnement apache2 à un utilisateur régulier qui doit ensuite utiliser sudo ne fonctionnera pas sans "-E". Les utilisateurs permanents ne peuvent pas lire le dossier privé du certificat parmi d'autres problèmes. Vous obtiendrez une erreur. Vous devez exécuter sudo -E ou exécuter le compte root complètement.CMD . /etc/apache2/envvars; /usr/sbin/apache2 -DFOREGROUND
Vérifiez votre
/etc/apache2/envvars
APACHE_LOCK_DIR. Dans mon Ubuntu 12.04,/var/lock/apache2$SUFFIX
SUFFIX est normalement vide.Vérifiez si le répertoire existe et est accessible en écriture.
Le fichier envvars n’est-il pas correctement acheté? Si vous regardez,
/etc/init.d/apache2
vous pouvez voir que cela provient.Mon (par défaut)
/etc/apache2/envvars
:Si rien ne fonctionne, je tenterais de réinstaller le (s) paquet (s).
la source
Comme autre dit, vous devez charger (source) votre environnement avant de l' exécuter directement Une autre option consiste à utiliser:
apache2ctl
par exemple ,sudo apache2ctl -S
vider mes hôtes
la source
TL; DR; Vous devriez commencer apache2 en utilisant ce que vous avez déjà:
Détaillé:
Ce message signifie que vous devez définir votre nom de serveur / nom de domaine. Il n'est pas essentiel de le faire pour un hôte local / des tests de production, vous n'avez pas à vous en préoccuper.
Lorsque vous essayez de l'exécuter dans l'autre sens, en utilisant uniquement
apache2
, vous obtiendrez ces messages d'erreur en raison de ce qui a été dit précédemment: les variables d'environnement sont définies lorsque vous commencez à utiliser le script par défaut dansinit.d
.la source
Peut-être que cela résoudra votre problème
la source
Vous devez mettre à jour DocumentRoot de
/var/www/html
à/var/www
Editez le fichier /etc/apache2/sites-available/000-default.conf comme suit
la source
Ça marche pour moi
la source