501 votes

Erreur Apache "Could not reliably determine the server's fully qualified domain name"

Quand je redémarre mon serveur Apache en utilisant la commande

sudo /etc/init.d/apache2 restart

Je reçois l'erreur suivante :

Redémarrage du serveur web apache2
apache2 : Impossible de déterminer de manière fiable le nom de domaine qualifié du serveur, en utilisant 127.0.1.1 pour ServerName
... en attente apache2 :
Impossible de déterminer de manière fiable le nom de domaine qualifié du serveur, en utilisant 127.0.1.1 pour ServerName

Est-ce que le serveur utilise 127.0.1.1 au lieu de 127.0.0.1 ? Quelle est la cause de cette erreur ?

601voto

Rinzwind Points 270388

13.04 et plus ancien

Ceci est juste un avertissement amical et pas vraiment un problème (c'est-à-dire que quelque chose ne fonctionne pas).

Si vous allez à:

/etc/apache2/apache2.conf

et insérez:

ServerName localhost   

et puis redémarrez apache en tapant dans le terminal:

sudo systemctl reload apache2

l'avis disparaîtra.

Si vous avez un nom à l'intérieur de /etc/hostname vous pouvez aussi utiliser ce nom à la place de localhost.


Et cela utilise 127.0.1.1 s'il est à l'intérieur de votre /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

Méthode préférée

Dépannage Apache

Si vous obtenez cette erreur:

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

puis utilisez un éditeur de texte tel que "sudo nano" en 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 ajoutez

ServerName localhost

au fichier et enregistrez. Tout cela peut être fait en une seule commande avec la suivante:

 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).

3 votes

Cela est également mentionné dans la documentation de configuration du LAMP Ubuntu pour Dépannage d'Apache. Ils recommandent là-bas de créer un fichier /etc/apache2/conf.d/fqdn avec ServerName localhost.

0 votes

Très bonne réponse - mais je recommanderais également de la mettre dans le répertoire conf.d :)

3 votes

/etc/apache2/conf.d/ n'existe pas après mon installation de lamp-server^ en 14.04

190voto

Drew Olson Points 1107

13.10 ou plus récent

À partir d'Apache 2.4 - qui est disponible par défaut à partir de 13.10 - vous ne pouvez pas utiliser la méthode d'ajout d'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 à l'intérieur du répertoire /etc/apache2/conf-available et tous les fichiers de configuration doivent maintenant avoir une extension .conf.

Pour résoudre ce message dans Apache 2.4, nous devons créer un fichier de configuration à l'intérieur du répertoire conf-available. Par exemple servername.conf.

sudo vi /etc/apache2/conf-available/servername.conf

Et à l'intérieur, nous devons juste ajouter une ligne

ServerName localhost

Vous pouvez combiner les deux commandes précédentes en une seule 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 des besoins, c'est bien, remplacez simplement localhost par ce que vous voulez. Ensuite, vous devez activer cette configuration. Pour cela, vous devez exécuter la commande suivante:

sudo a2enconf servername

a2enconf est une commande pour activer un fichier de configuration dans Apache 2.4. Notez également que servername dans la commande ci-dessus provient du nom du fichier de configuration servername.conf. Si votre fichier de configuration était ngenericserver.conf, alors vous auriez dû écrire sudo a2enconf ngenericserver.

Après cela, rechargez le serveur et le message ci-dessus ne vous dérangera plus.

sudo service apache2 reload

ou

sudo apache2ctl graceful

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

4 votes

Est-ce que quelqu'un sait comment faire dire à Apache quel fichier de configuration pose problème ? Je ne comprends pas pourquoi les développeurs ne pensent jamais à inclure cette information dans leurs messages d'erreur - cela ne prend pas beaucoup de code !

0 votes

Si j'ai un fqdm Internet pour ce serveur, est-ce l'endroit où le mettre? c'est-à-dire que je devrais remplacer localhost par myhost.org?

1 votes

@CPBL Ceci sera le nom de serveur par défaut pour tous les sites. Si vous avez seulement un site, alors c'est tout ce que vous avez à faire. Si vous avez plusieurs sites sur votre serveur, vous devrez également ajouter la directive servername pour chaque site dans leur configuration de hôte virtuel respective.

35voto

Andrew Mao Points 1601

Apache2 peut également obtenir le FQDN à partir d'un nom d'hôte système correctement configuré plutôt que codé en dur dans le fichier de configuration d'apache. Le codage en dur peut également causer de la confusion si le nom d'hôte change. Vous n'avez en fait pas besoin de directives ServerName dans httpd.conf ou dans tout fichier de configuration d'apache.

Placez ce qui suit dans /etc/hosts:

# Alias locaux pour localhost en IPv4 et IPv6
127.0.0.1 nomhote.nomdedomaine.com  nomhote  localhost
::1       nomhote.nomdedomaine.com  nomhote  localhost

nomdhotenomdedomaine.com est le FQDN de votre machine.

En plus d'un nom d'hôte correctement configuré dans /etc/hostname/ ou avec hostnamectl, cela aidera également les autres services de votre machine à fonctionner correctement (par exemple, l'invite de connexion affichera Ceci est nomhote.nomdedomaine.com au lieu de Ceci est nomhote.unknown_domain).

5 votes

+1 pour "un nom d'hôte système correctement configuré". Je voulais configurer le serveur correctement. Cela a également corrigé mon erreur dans le journal [warn] Le nom commun (CN) du certificat serveur RSA ne correspond PAS au nom du serveur !?

0 votes

Penses-tu que cela devrait fonctionner avec Apache 2.2.22? Je reçois toujours "Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName"

0 votes

Est-ce que hostname localhost est censé être monnomdeserveurubuntu localhost? Ou la chaîne littérale hostname localhost? Vous n'étiez pas clair dans votre réponse

29voto

green Points 13802
  • Ouvrez un terminal

  • Ouvrez le fichier /etc/apache2/httpd.conf :

    sudo editor /etc/apache2/httpd.conf # [1]
  • Par défaut, il sera vide. Ajoutez simplement la ligne suivante :

    ServerName localhost
  • Enregistrez le fichier et quittez

  • Redémarrez le serveur

    sudo service apache2 restart

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

0 votes

Après l'exécution de la dernière commande, l'erreur suivante se produit ** Redémarrage du serveur web apache2 /usr/sbin/apache2ctl: 87: ulimit: erreur de réglage de la limite (Opération non permise) /usr/sbin/apache2ctl: 87: ulimit: erreur de réglage de la limite (Opération non permise) (13)Permission refusée: make_sock: impossible de se lier à l'adresse 0.0.0.0:80 aucune socket d'écoute disponible, arrêt Impossible d'ouvrir les journaux L'action 'start' a échoué. Le journal d'erreurs Apache peut contenir plus d'informations. [échec] ** @green7

0 votes

Essayez 'sudo service apache2 restart'

25voto

empugandring Points 351

Dans la nouvelle version d'apache2, il vous suffit de suivre la commande suivante :

sudo nano /etc/apache2/apache2.conf

Ajoutez la nouvelle ligne suivante à la fin du fichier :

ServerName localhost

Ensuite redémarrez apache2 :

sudo service apache2 restart

C'est fait.

0 votes

A sauvé ma journée ;) ;)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X