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

385

Cuando reinicio mi servidor Apache usando el comando

sudo /etc/init.d/apache2 restart

Recibo el siguiente error:

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

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

    
pregunta Deepu 14.02.2013 - 14:09

14 respuestas

470

13.04 en adelante

Esto es solo una advertencia amistosa y no es realmente un problema (como que algo no funciona).

Si inserta un

ServerName localhost   

en httpd.conf o apache2.conf en /etc/apache2 y reinicia apache, la notificación desaparecerá.

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

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

127.0.0.1 localhost
127.0.1.1 myhostname

Método preferido

  

Solución de problemas de Apache

Si obtiene este error:

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

luego use un editor de texto como "sudo nano" en la línea de comando 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"

luego agrega

ServerName localhost

al archivo y guardar. 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 will not work).

    
respondido por el Rinzwind 14.02.2013 - 14:18
158

13.10 o más reciente

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

Apache ya no usa el directorio conf.d . Todos los archivos de configuración se almacenan dentro del directorio /etc/apache2/conf-available y todos los archivos de configuración ahora deben tener una extensión .conf .

Para resolver este mensaje en Apache 2.4, debemos 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 según los requisitos, puede reemplazar localhost con lo que necesite. Luego debes habilitar esta configuración. Para esto, necesita 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 tu archivo de configuración era ngenericserver.conf , entonces deberías escribir sudo a2enconf ngenericserver .

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

sudo service apache2 reload

o

sudo apache2ctl graceful

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

    
respondido por el Starx 26.12.2013 - 19:45
24
  • Abre una terminal
  • Abra el archivo /etc/apache2/httpd.conf :

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

    ServerName localhost
    
  • Guarde el archivo y salga

  • Reiniciar el servidor

    sudo service apache2 restart
    

[1] Ejecuta el editor predeterminado, mira sudo update-alternatives --config editor

    
respondido por el green 14.02.2013 - 14:17
22

Apache2 también puede obtener el FQDN de un nombre de sistema del sistema configurado correctamente en lugar de codificado 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 necesita ninguna directiva ServerName en httpd.conf ni ningún archivo de configuración de Apache.

Ponga lo siguiente en /etc/hosts :

# IPv4 and IPv6 localhost aliases
127.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 en su máquina se ejecuten correctamente (es decir, el mensaje de inicio de sesión, mostrando This is hostname.domainname.com en vez de This is hostname.unknown_domain .)

    
respondido por el Andrew Mao 18.09.2013 - 20:05
15

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

sudo nano /etc/apache2/apache2.conf

Agregue el siguiente nuevo final de línea de archivo:

ServerName localhost

Luego reinicia apache2:

sudo service apache2 restart

Está hecho.

    
respondido por el empugandring 16.04.2014 - 08:38
4

Creo que es un poco mejor crear un nuevo archivo en /etc/conf.d que modificar apache2.conf o httpd.conf .

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

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

ServerName myhost.mycomain.tld

Las otras sugerencias ciertamente funcionan también.

    
respondido por el areeda 06.09.2013 - 17:31
2

En Ubuntu 16.04:

sudo -i

echo 'ServerName localhost' > /etc/apache2/conf-available/server-name.conf
a2enconf server-name
    
respondido por el Eduardo Cuomo 17.04.2017 - 15:26
1

Añadir ServerName localhost

Para

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

No es un error. Es solo un recordatorio amigo

    
respondido por el Serem 05.07.2014 - 11:36
0

En Ubuntu 11.10, vi este mensaje, junto con un arranque colgado porque mi disco estaba lleno. Uno de los archivos de registro se ha vuelto pícaro . Probablemente no hubo un problema con Apache, pero este mensaje fue la última pista dada antes de que se colgara el arranque.

Para solucionar el problema, tuve que iniciar en modo de recuperación y eliminar el archivo de registro caprichoso.

    
respondido por el nobar 07.05.2013 - 17:17
0

Especificar ServerName localhost en los archivos de configuración fuera de las secciones del host virtual es la forma de hacerlo.

Algunas otras respuestas sugieren que debe modificar /etc/apache2/httpd.conf . Este archivo se sobrescribe cuando apache se actualiza desde apt. Para la configuración de Apache que no desea sobrescribir, debe crear un nuevo archivo. Aquí está la "forma de Debian" para hacer que esta configuración cambie:

# 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

Esto es básicamente lo mismo que la respuesta de Stark, pero en un formulario de script fácil de copiar y pegar. Originalmente, publiqué esto en una pregunta marcada como duplicada: enlace

    
respondido por el Stephen Ostermiller 24.03.2017 - 14:02
0

Si está utilizando bash y quiere dependencias mínimas (y solo quiere un trazador de líneas para su script de punto de entrada si está usando Docker como yo), estas dos opciones deberían funcionar.

Si quieres localhost:

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

Si desea el nombre de host existente:

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

Utiliza los operadores de redirección de bash para agregar el cadena al final del archivo. Echo inserta automáticamente la nueva línea, por lo que está listo.

    
respondido por el Andrew Odri 17.11.2017 - 20:23
0

Ejecute el siguiente comando:

apachectl -t -D DUMP_INCLUDES

para determinar la ruta a su archivo de configuración httpd.conf , luego edite ese archivo y descomente / modifique la línea que especifica el valor para la opción ServerName , por ejemplo,

ServerName localhost

Para el servidor web, use el nombre DNS registrado (por ejemplo, example.com ).

  

Si su host no tiene un nombre DNS registrado, ingrese su dirección IP aquí.

    
respondido por el kenorb 23.10.2017 - 14:24
0

En Ubuntu 16.04 :

Agregue ServerName localhost al archivo httpd.conf usando el siguiente comando.

sudo vi  /etc/apache2/httpd.conf

Luego incluya esta línea Include httpd.conf al final de este archivo

sudo vi /etc/apache2/apache2.conf

Comprobar errores de sintaxis nuevamente

sudo apache2ctl configtest

Ahora debería obtener

Syntax OK

Ahora puede reiniciar el servidor correctamente recargando la configuración sudo service apache2 restart

    
respondido por el daumie 08.01.2018 - 22:47
0

En Ubuntu 16.04 :

Agregue ServerName localhost al archivo httpd.conf usando el siguiente comando.

sudo vi  /etc/apache2/httpd.conf

Luego incluya esta línea Include httpd.conf al final de este archivo

sudo vi /etc/apache2/apache2.conf

Comprobar errores de sintaxis nuevamente

sudo apache2ctl configtest

Ahora debería obtener

Syntax OK

Ahora puede reiniciar el servidor con gracia volviendo a cargar la configuración

sudo service apache2 reload

o mata el proceso y comienza de nuevo

sudo service apache2 restart
    
respondido por el daumie 08.01.2018 - 22:48

Lea otras preguntas en las etiquetas