web-dev-qa-db-fra.com

Erreur Apache "Impossible de déterminer de manière fiable le nom de domaine complet du serveur"

Lorsque je redémarre mon serveur Apache à l'aide de la commande

Sudo /etc/init.d/Apache2 restart

Je reçois l'erreur suivante:

Restarting web server Apache2
Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting Apache2:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Le serveur utilise-t-il 127.0.1.1 au lieu de 127.0.0.1? Qu'est-ce qui cause cette erreur?

423
Deepu

13.04 et plus

Ceci est juste un avertissement amical et pas vraiment un problème (car quelque chose ne fonctionne pas).

Si vous insérez un

ServerName localhost   

dans httpd.conf ou Apache2.conf dans /etc/Apache2 et redémarrez Apache, la notification disparaîtra.

Si vous avez un nom dans /etc/hostname, vous pouvez également utiliser ce nom au lieu de localhost.


Et il utilise 127.0.1.1 s'il se trouve dans votre /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

Méthode préférée

Dépannage d'Apache

Si vous obtenez cette erreur:

Apache2: Could not determine the server's fully qualified domain name, 
using 127.0.0.1 for ServerName

utilisez ensuite un éditeur de texte tel que "Sudo nano" sur la ligne de commande ou "gksudo gedit" sur le bureau pour créer un nouveau fichier,

Sudo nano /etc/Apache2/conf.d/fqdn

ou

gksu "gedit /etc/Apache2/conf.d/fqdn"

puis ajouter

ServerName localhost

dans le fichier et enregistrez. Tout cela peut être fait en une seule commande avec ce qui suit:

 echo "ServerName localhost" | Sudo tee /etc/Apache2/conf.d/fqdn

Mais sur Ubuntu 14.04:

 echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/fqdn.conf
 Sudo a2enconf fqdn

N'oubliez pas le ".conf" (sans cela ne fonctionnera pas).

501
Rinzwind

13.10 ou plus récent

À partir d'Apache 2.4, disponible par défaut à partir de 13.10, vous ne pouvez pas utiliser la méthode permettant d'ajouter un fichier de configuration dans le répertoire conf.d.

Apache n'utilise plus le répertoire conf.d. Tous les fichiers de configuration sont stockés dans le répertoire /etc/Apache2/conf-available et tous les fichiers de configuration doivent maintenant porter l’extension .conf.

Afin de résoudre ce message dans Apache 2.4, nous devons créer un fichier de configuration dans le répertoire conf-available. Par exemple servername.conf.

Sudo vi /etc/Apache2/conf-available/servername.conf

Et à l'intérieur de cela, nous avons juste besoin d'ajouter une ligne

ServerName localhost

Vous pouvez combiner les deux commandes précédentes en une avec:

echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/servername.conf

Si vous souhaitez utiliser un nom de domaine ou tout autre nom en fonction de vos besoins, remplacez simplement localhostpar tout ce dont vous avez besoin. Ensuite, vous devez activer cette configuration. Pour cela, vous devez exécuter la commande suivante:

Sudo a2enconf servername

a2enconf est une commande permettant d'activer un fichier de configuration dans Apaches 2.4. Notez également que servernamede la commande ci-dessus provient du nom du fichier de configuration servername.conf. Si votre fichier de configuration était ngenericserver.conf, vous devrez écrire Sudo a2enconf ngenericserver.

Après cela, rechargez le serveur et le message ci-dessus ne vous posera plus de problèmes.

Sudo service Apache2 reload

ou

Sudo Apache2ctl graceful

Maintenant, vous verrez que le message ne sera plus affiché et que le problème sera résolu.

171
Starx

Apache2 peut également obtenir le nom de domaine complet d'un nom d'hôte système correctement configuré plutôt que codé en dur dans le fichier de configuration Apache. Le codage en dur causera également de la confusion si le nom d’hôte change. En réalité, vous n'avez besoin d'aucune directive ServerName dans httpd.conf ni de fichiers de configuration Apache.

Mettez ce qui suit dans /etc/hosts:

# IPv4 and IPv6 localhost aliases
127.0.0.1 hostname.domainname.com  hostname  localhost
::1       hostname.domainname.com  hostname  localhost

hostname.domainname.com est le nom de domaine complet de votre ordinateur.

Avec un nom d’hôte correctement configuré dans /etc/hostname/ ou avec hostnamectl, cela aidera également les autres services de votre ordinateur à fonctionner correctement (c.-à-d. L’invite de connexion, affichant This is hostname.domainname.com au lieu de This is hostname.unknown_domain.)

27
Andrew Mao
  • Ouvrir un terminal
  • Ouvrez le fichier /etc/Apache2/httpd.conf:

    Sudo editor /etc/Apache2/httpd.conf # [1]
    
  • Par défaut, ce serait vide. Ajoutez simplement la ligne suivante:

    ServerName localhost
    
  • Enregistrez le fichier et quittez

  • Redémarrez le serveur

    Sudo service Apache2 restart
    

[1] Lancer l'éditeur par défaut, voir Sudo update-alternatives --config editor

25
green

Dans la nouvelle version d'Apache2, il suffit de suivre la commande comme ceci:

Sudo nano /etc/Apache2/Apache2.conf

Ajoutez la nouvelle ligne suivante à la fin du fichier:

ServerName localhost

Puis redémarrez Apache2:

Sudo service Apache2 restart

C'est fait.

18
empugandring

Je trouve qu'il est un peu mieux de créer un nouveau fichier dans /etc/conf.d que de modifier soit Apache2.conf ou httpd.conf.

C'est une préférence personnelle qui garde mes modifications de configuration séparées du package de distribution. Les mises à jour sont donc moins compliquées.

Je crée le fichier /etc/Apache2/conf.d/AAserverName et il ne contient que:

ServerName myhost.mycomain.tld

Les autres suggestions fonctionnent certainement aussi.

5
areeda

Dans Ubuntu 16.04:

Sudo -i

echo 'ServerName localhost' > /etc/Apache2/conf-available/server-name.conf
a2enconf server-name
2
Eduardo Cuomo

Ajouter ServerName localhost

À

 Sudo leafpad /etc/Apache2/Apache2.conf

 Sudo leafpad /etc/Apache2/httpd.conf

Ce n'est pas une erreur .. C'est juste un rappel à un ami

1
Serem

Pour ce faire, spécifiez ServerName localhost dans vos fichiers de configuration en dehors des sections de l'hôte virtuel.

Certaines autres réponses suggèrent que vous devriez modifier /etc/Apache2/httpd.conf. Ce fichier est écrasé quand Apache est mis à jour depuis apt. Pour la configuration Apache que vous ne souhaitez pas écraser, vous devez créer un nouveau fichier. Voici la "méthode Debian" pour modifier cette configuration:

# create the configuration file in the "available" section
echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
Sudo a2enconf servername
# restart the server
Sudo service Apache2 restart

C'est en gros la même chose que la réponse de Stark, mais dans un format facile à copier et coller. Je l'avais initialement posté dans une question qui a été marquée comme un doublon: https://askubuntu.com/a/432408

1

Sur buntu 16.04:

Ajoutez ServerName localhost au fichier httpd.conf en utilisant la commande suivante.

Sudo vi  /etc/Apache2/httpd.conf

Ensuite, incluez cette ligne Include httpd.conf à la fin de ce fichier

Sudo vi /etc/Apache2/Apache2.conf

Vérifier à nouveau les erreurs de syntaxe

Sudo Apache2ctl configtest

Vous devriez maintenant obtenir

Syntax OK

Vous pouvez maintenant redémarrer le serveur en rechargeant la configuration.

Sudo service Apache2 reload

ou tuer le processus et recommencer

Sudo service Apache2 restart
1
daumie

Sur Ubuntu 11.10, j'ai vu ce message, ainsi qu'un démarrage bloqué survenant parce que mon disque était plein. n des fichiers de log est devenu indésirable . Il n’ya probablement pas eu de problème avec Apache, mais ce message était le dernier indice donné avant le blocage du démarrage.

Pour résoudre le problème, je devais démarrer en mode de récupération et supprimer le fichier journal capricieux.

0
nobar

Exécutez la commande suivante:

apachectl -t -D DUMP_INCLUDES

pour déterminer le chemin d'accès à votre fichier de configuration httpd.conf, puis éditez ce fichier et décommentez/modifiez la ligne spécifiant la valeur de l'option ServerName, par exemple.

ServerName localhost

Pour le serveur Web, utilisez le nom DNS enregistré (par exemple, example.com).

Si votre hôte ne possède pas de nom DNS enregistré, entrez son adresse IP ici.

0
kenorb

Si vous utilisez bash et que vous voulez des dépendances minimales (et que vous souhaitiez juste une ligne pour votre script de point d'entrée si vous utilisez Docker comme moi), ces deux options devraient fonctionner.

Si vous voulez localhost:

echo "ServerName localhost" >> /etc/Apache2/Apache2.conf

Si vous voulez le nom d'hôte existant:

echo "ServerName $(cat /etc/hostname)" >> /etc/Apache2/Apache2.conf

Ceci utilise le opérateurs de redirection bash pour ajouter la chaîne à la fin du fichier. Echo insère automatiquement la nouvelle ligne, vous êtes donc prêt.

0
Andrew Odri

Sur buntu 16.04:

Ajoutez ServerName localhost au fichier httpd.conf en utilisant la commande suivante.

Sudo vi  /etc/Apache2/httpd.conf

Ensuite, incluez cette ligne Include httpd.conf à la fin de ce fichier

Sudo vi /etc/Apache2/Apache2.conf

Vérifier à nouveau les erreurs de syntaxe

Sudo Apache2ctl configtest

Vous devriez maintenant obtenir

Syntax OK

Vous pouvez maintenant redémarrer le serveur en rechargeant la configuration du service Sudo Apache2 restart

0
daumie