Error de Apache "No se pudo determinar de manera confiable el nombre de dominio completo del servidor"

Cuando reinicio mi servidor Apache usando el comando

sudo /etc/init.d/apache2 restart

Recibo el siguiente error:

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

¿El servidor está usando 127.0.1.1 en lugar de 127.0.0.1? ¿Qué causa este error?

13.04 y mayores

Esto es solo una advertencia amistosa y no es realmente un problema (como en el caso de que algo no funcione).

Si vas a:

/etc/apache2/apache2.conf

e insertar:

ServerName localhost   

y luego reinicie apache escribiendo en la terminal:

sudo systemctl reload apache2

el aviso desaparecerá.

Si tienes un nombre dentro /etc/hostname también puede usar ese nombre en lugar de localhost.


Y utiliza 127.0.1.1 si está dentro de tu /etc/hosts:

127.0.0.1 localhost127.0.1.1 myhostname

Método preferido

Solución de problemas de Apache

Si aparece este error:

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

a continuación, utilice un editor de texto como " sudo nano" en la línea de comandos o " gksudo gedit" en el escritorio para crear un nuevo archivo,

sudo nano /etc/apache2/conf.d/fqdn

o

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

a continuación, agregue

ServerName localhost

vaya al archivo y guárdelo. Todo esto se puede hacer en un solo comando con lo siguiente:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Pero en Ubuntu 14.04:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf sudo a2enconf fqdn

No olvides el ".conf" (sin no funcionará).

13.10 o más reciente

A partir de Apache 2.4, que está disponible de forma predeterminada a partir de 13.10, no puede usar el método para agregar un archivo de configuración en el conf.d directorio.

Apache ya no usa el conf.d directorio. Todos los archivos de configuración se almacenan en su interior /etc/apache2/conf-available el directorio y todos los archivos de configuración ahora deberían tener un .conf ampliación.

Para resolver este mensaje en Apache 2.4, tenemos que crear un archivo de configuración dentro del directorio conf-available. Por ejemplo servername.conf.

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

Y dentro de esto solo necesitamos agregar una línea

ServerName localhost

Puede combinar los dos comandos anteriores en uno con:

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf

Si desea utilizar un nombre de dominio o cualquier otro nombre, dependiendo del requisito, está bien, simplemente reemplace localhost con lo que necesites. A continuación tienes que habilitar esta configuración. Para ello, debe ejecutar el siguiente comando:

sudo a2enconf servername

a2enconf es un comando para habilitar un archivo de configuración en Apaches 2.4. También tenga en cuenta que servername en el comando anterior es del nombre del archivo de configuración servername.conf. Si el archivo de configuración era ngenericserver.conf entonces tendrías que escribir sudo a2enconf ngenericserver.

Después de esto, vuelva a cargar el servidor y el mensaje anterior ya no le molestará.

sudo service apache2 reload

o

sudo apache2ctl graceful

Ahora, después de esto, verá que el mensaje no se volverá a mostrar y el problema se solucionará.

Apache2 también puede obtener el FQDN de un nombre de host del sistema configurado correctamente en lugar de codificarlo en el archivo de configuración de apache. La codificación rígida también causará confusión si el nombre de host cambia. En realidad no necesitas ninguna ServerName directivas en httpd.conf o cualquier archivo de configuración de Apache.

Pon lo siguiente en /etc/hosts:

# IPv4 and IPv6 localhost aliases127.0.0.1 hostname.domainname.com  hostname  localhost::1       hostname.domainname.com  hostname  localhost

donde hostname.domainname.com es el FQDN de su máquina.

Junto con un nombre de host configurado correctamente en /etc/hostname/ o con hostnamectl, esto también ayudará a que otros servicios de su máquina se ejecuten correctamente (es decir, el indicador de inicio de sesión, que muestra This is hostname.domainname.com en lugar de This is hostname.unknown_domain.)

  • Abrir una terminal
  • Abra la /etc/apache2/httpd.conf file:

    sudo editor /etc/apache2/httpd.conf # [1]
  • Por defecto, estaría en blanco. Simplemente agregue la siguiente línea:

    ServerName localhost
  • Guarde el archivo y salga

  • Reinicie el servidor

    sudo service apache2 restart

[1] Inicie el editor predeterminado, consulte sudo update-alternatives --config editor

En la nueva versión de apache2, solo sigue un comando como este:

sudo nano /etc/apache2/apache2.conf

Agregue la siguiente nueva línea al final del archivo:

ServerName localhost

A continuación, reinicie apache2:

sudo service apache2 restart

Está hecho.

Me parece que es un poco mejor crear un nuevo archivo en /etc/conf.d para modificar cualquiera de los apache2.conf o httpd.conf.

Es una preferencia personal que mantiene mis cambios de configuración separados del paquete de distribución. Así que las actualizaciones son menos complicadas.

Creo el archivo /etc/apache2/conf.d/AAserverName y contiene solo:

ServerName myhost.mycomain.tld

Las otras sugerencias ciertamente también funcionan.

En Ubuntu 16.04:

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