¿Dónde, en Apache 2, establece la directiva ServerName globalmente?


37

NOTA: Esto está relacionado con mi pregunta: " Apache 2.4 no se volverá a cargar, ¿hay algún problema con mi configuración? ".

Estoy tratando de probar un sitio local, localmente. Según tengo entendido, Apache 2 (y quizás Apache también) tiene algo llamado VirtualHost. Mi pequeño conocimiento me dice que el alojamiento virtual es una forma en que un servidor / dirección IP puede servir a múltiples dominios.

De todos modos, obtengo el siguiente error al ejecutar Apache 2 configtestpara ver dónde estoy fallando. Estoy ejecutando Apache 2.4.10-1, y parece que se han producido muchos cambios entre Apache 2.2 y Apache 2.4 que no conozco.

$ sudo apache2ctl configtest
[sudo] password for shirish:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Este es el /etc/hostsarchivo:

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

También veo un /etc/hosts.confarchivo vacío . ¿Quizás los datos /etc/hostsdeben copiarse /etc/hosts.confpara que el servidor tenga conocimiento?

Mi nombre de host:

$ hostname
debian

Este es el archivo de configuración del sitio:

$ cat /etc/apache2/sites-available/minidebconfindia.conf
<VirtualHost mini:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/in2014.mini/website

    <Directory />
        Options +FollowSymLinks +Includes
        Require all granted
    </Directory>

    <Directory /var/www/html/in2014.mini/website/>
        Options +Indexes +FollowSymLinks +MultiViews +Includes
        Require all granted
    </Directory>
</VirtualHost>

También leí sobre el enlace a direcciones y puertos , pero no lo he entendido bien por múltiples razones. No da / comparte un ejemplo de en qué archivo deben colocarse esas líneas y qué vendrá antes y después. Un ejemplo hubiera sido mucho mejor.

Lo hice y reinicié el servidor, pero sigo teniendo el mismo error.

~$ sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Parece que hay tres archivos de configuración en Debian que necesito saber y comprender.

/etc/apache2$ ls *.conf
apache2.conf  ports.conf

y

/etc/apache2/conf.d$ ls *.conf
httpd.conf

Aparentemente, apache2.conf ES el archivo de configuración global mientras que httpd.conf es un archivo de configuración de usuario. También hay ports.conf. Tanto apache2.conf como ports.conf están en los valores predeterminados, excepto que he cambiado el nivel de registro de Apache de warna debug.

Intenté otra cosa:

$ sudo apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
127.0.1.1:80           debian (/etc/apache2/sites-enabled/minidebconfindia.conf:1)
*:80                   127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Quizás alguien tenga más perspicacia.

Respuestas:


43

El archivo a editar:

/etc/apache2/apache2.conf

Comando para editar archivo:

sudo nano /etc/apache2/apache2.conf

Para un nombre de servidor global, puede colocarlo en la parte superior del archivo (fuera de las etiquetas de host virtual).

La primera línea se ve así:

ServerName myserver.mydomain.com

Luego guarde y pruebe la configuración con el siguiente comando:

apachectl configtest

Deberías obtener:

Sintaxis OK

Luego puede reiniciar el servidor y verificar que no reciba el mensaje de error:

sudo service apache2 restart

2
Esta es la respuesta correcta de Debian. Lo intenté /etc/apache2/conf-available/fqdn.conf, servername.confo httpd.confen vano. Debian Jessie, yapache 2.4.10
Dr. Beco

2
Si tiene conf-available/y conf-enabled/, cree un archivo conf-available/y use el comando a2enconfpara habilitarlo. De esta manera, dpkg no lo molestará por los cambios no rastreados cuando / si el apache2-commonpaquete se actualizaapache2.conf
Kevin

El archivo conf-availabledespués de esto y una edición pueden tener /etc/apache2/conf-available/servername.confcontenido ServerName myserver.mydomain.com(probado en Raspberry Pi, Apache 2.4.10, Debian 8 (Jessie), kernel de Linux 4.4.34).
Peter Mortensen

@ PeterMortensen, ¿podría usar el ejemplo compartido para que pueda entender lo que quiere decir?
Shirish

El archivo no existe
Negro

5

Debe establecer la directiva ServerName :

ServerName localhost

En Debian, puede configurarlo /etc/apache2/conf.d/httpd.conf.

En macOS, puede configurarlo /private/etc/apache2/httpd.conf.


55
En Ubuntu, configúrelo en /etc/apache2/apache2.conf
macki

1
Debian o bien: apache2.conf.
Dr Beco

1
¿Para qué versiones de Apache / Debian funciona esto? No creo que funcione para Apache 2.4. Podría ser /etc/apache2/apache2.confen su lugar.
Peter Mortensen

funciona, Apache 2.4 en Debian 8
erajuan

2

Para localizar su archivo de configuración de Apache, intente ejecutar el siguiente comando:

apachectl -t -D DUMP_INCLUDES

Luego edite ese archivo y localice la línea ServerNamey descomente, para que se vea así:

ServerName localhost

0

En el archivo de configuración apache24, verá la línea ServerName:80:

  1. Dejalo en blanco.
  2. Luego debajo de esa línea en el espacio vacío escriba:
    ServerName www.name (of your official domain or website.com:80)
  3. Guarda el archivo de configuración.
  4. Vaya a cmd, ábralo como administrador cambie dira donde está apache24
  5. Entonces cd apache24, cd binluego httpd.exe

Verás que el problema está resuelto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.