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

J'obtiens l'erreur suivante:

Restarting web server apache2apache2: 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? Quelles sont les causes de cette erreur?

13.04 et plus

C'est juste un avertissement amical et pas vraiment un problème (comme si quelque chose ne fonctionnait pas).

Si vous allez à:

/etc/apache2/apache2.conf

et insérer:

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 /etc/hostname vous pouvez également utiliser ce nom au lieu de localhost.


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

127.0.0.1 localhost127.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

ensuite, utilisez un éditeur de texte tel que & quot; sudo nano & quot; 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 ajoutez

ServerName localhost

dans le fichier et enregistrez. Tout cela peut être fait en une seule commande avec les éléments suivants:

 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 ne fonctionnera pas).

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 conf.d répertoire.

Apache n'utilise plus le conf.d répertoire. Tous les fichiers de configuration sont stockés à l'intérieur /etc/apache2/conf-available le répertoire et tous les fichiers de configuration devraient maintenant avoir un .conf extension.

Afin de résoudre ce message dans Apache 2.4, nous devons créer un fichier de configuration dans le répertoire conf-available. 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 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 de l'exigence, il suffit de remplacer localhost avec 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 pour activer un fichier de configuration dans Apaches 2.4. Notez également que servername sur la commande ci-dessus provient du nom du fichier de configuration servername.conf. Si votre fichier de configuration était ngenericserver.conf ensuite, vous auriez à é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.

Apache2 peut également obtenir le nom de domaine complet à partir d'un nom d'hôte système correctement configuré plutôt que d'être 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 fait, vous n'en avez pas besoin ServerName directives en httpd.conf ou tout fichier de configuration apache.

Mettez ce qui suit dans /etc/hosts:

# IPv4 and IPv6 localhost aliases127.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 machine.

Avec un nom d'hôte correctement configuré dans /etc/hostname/ ou avec hostnamectl, cela aidera également d'autres services sur votre machine à fonctionner correctement (c'est-à-dire l'invite de connexion, montrant This is hostname.domainname.com au lieu de This is hostname.unknown_domain.)

  • Ouvrir un terminal
  • Ouvrez le /etc/apache2/httpd.conf fichier:

    sudo editor /etc/apache2/httpd.conf # [1]
  • Par défaut, il serait 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

Dans la nouvelle version d'apache2, vous venez de suivre une commande comme celle-ci:

sudo nano /etc/apache2/apache2.conf

Ajoutez la nouvelle ligne suivante à la fin du fichier:

ServerName localhost

Redémarrez ensuite apache2:

sudo service apache2 restart

C'est fait.

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 sépare mes modifications de configuration 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.

Dans Ubuntu 16.04:

sudo -iecho 'ServerName localhost' > /etc/apache2/conf-available/server-name.confa2enconf server-name

Sur Ubuntu 16.04:

Ajouter ServerName localhost vers le fichier httpd.conf utilisez la commande suivante.

sudo vi  /etc/apache2/httpd.conf

Incluez ensuite cette ligne Include httpd.conf a la fin de ce fichier

sudo vi /etc/apache2/apache2.conf

Vérifiez à nouveau les erreurs de syntaxe

sudo apache2ctl configtest

Vous devriez maintenant obtenir

Syntax OK

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

sudo service apache2 reload

ou tuez le processus et recommencez

sudo service apache2 restart

Ajouter ServerName localhost

De

 sudo leafpad /etc/apache2/apache2.conf sudo leafpad /etc/apache2/httpd.conf

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

Spécifier ServerName localhost dans vos fichiers de configuration en dehors des sections de l'hôte virtuel est la façon de le faire.

D'autres réponses suggèrent que vous devriez modifier /etc/apache2/httpd.conf. Ce fichier est écrasé lorsque Apache est mis à niveau à partir d'apt. Pour une configuration Apache que vous ne souhaitez pas écraser, vous devez créer un nouveau fichier. Voici la "manière Debian" de faire ce changement de configuration:

# create the configuration file in the "available" sectionecho "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf# enable it by creating a symlink to it from the "enabled" sectionsudo a2enconf servername# restart the serversudo service apache2 restart

C'est fondamentalement la même chose que la réponse de Stark, mais sous une forme de script facile à copier et coller. J'avais initialement posté ceci dans une question marquée comme duplicata: https://askubuntu.com/a/432408