En un CentOS 7
servidor, aparece el siguiente error cuando escribo sudo apachectl restart
después de agregar un archivo de inclusión en la parte inferior de httpd.conf
:
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
Cuando escribo sudo systemctl status httpd.service -l
, el resultado es:
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 20:10:37 EST; 2min 15s ago
Process: 2101 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 2099 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 2099 (code=exited, status=1/FAILURE)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 20:10:37 ip-address httpd[2099]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Dec 23 20:10:37 ip-address systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 20:10:37 ip-address systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 20:10:37 ip-address systemd[1]: Unit httpd.service entered failed state.
Puedo apache
reiniciar si comento la directiva de inclusión, y puedo volver a crear el error al descomentar la directiva de inclusión. ¿Cómo puedo apache
comenzar a usar correctamente el contenido del archivo de inclusión?
La línea en la parte inferior de httpd.conf
que desencadena el error es: IncludeOptional sites-enabled/*.conf
. El único .conf
archivo en la sites-enabled
carpeta es mydomain.com.conf
, que tiene los siguientes contenidos:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
ErrorLog /var/www/mydomain.com/error.log
CustomLog /var/www/mydomain.com/requests.log combined
</VirtualHost>
El httpd.conf
es el mismo que lo que viene pre-instalado con httpd
, a excepción de la línea directiva include anteriormente. Lo sé porque lo hice sudo yum remove httpd mod_ssl
y sudo yum install httpd mod_ssl
justo antes de activar este error. Todo httpd.conf
se puede leer en un sitio para compartir archivos haciendo clic en este enlace .
Encontré este problema al seguir explícitamente los pasos de este tutorial .
Cuando comento el archivo de inclusión, http/mydomain.com
sirve con éxito el contenido estático ubicado en /var/www/html
, que es el DocumentRoot
definido en httpd.conf
. El problema parece provenir de la VirtualHost
directiva en el archivo de inclusión que se muestra arriba. Para ayudar en el diagnóstico, he incluido en EDITAR # 3 a continuación enlaces a todos los .conf
archivos contenidos en las tres directivas de inclusión httpd.conf
.
EDITAR # 1
Cuando intento el consejo de m32 para cambiar la /etc/hostname
definición mydomain.com
, apache
aún no se reiniciará, y los systemctl status httpd.service
resultados en lo siguiente:
[sudo_user_account@server-ip-address ~]$ sudo systemctl status httpd.service -l
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 14:25:35 EST; 20s ago
Process: 31993 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 31991 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 31991 (code=exited, status=1/FAILURE)
Status: "Total requests: 1; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 14:25:35 hostname systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 14:25:35 hostname systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 14:25:35 hostname systemd[1]: Unit httpd.service entered failed state.
EDITAR # 2
También probé el consejo de eyoung100 para cambiar el contenido de mi /etc/hosts
archivo, como se define en la siguiente imagen, pero sigo teniendo el mismo error definido en EDITAR # 1 arriba.
EDITAR # 3
Por solicitud de DerekC, corrí sudo apachectl configtest
y obtuve:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Además, según la sugerencia de GarethTheRed, examiné las directivas de inclusión en httpd.conf . Hay tres directivas de inclusión en httpd.conf . He enumerado los tres a continuación, junto con todos los archivos ubicados en la carpeta de cada directiva. Estos son todos los .conf
archivos estándar instalados con httpd
. No he modificado ninguno de ellos todavía. Puede ver cada uno de los .conf
archivos en un sitio para compartir archivos haciendo clic en los enlaces a continuación:
Include conf.modules.d/*.conf
hace referencia a los siguientes archivos en el conf.modules.d
directorio:
00-base.conf
00-dav.conf
00-lua.conf
00-mpm.conf
00-proxy.conf
00-ssl.conf
00-systemd.conf
01-cgi.conf
IncludeOptional conf.d/*.conf
hace referencia a los siguientes archivos en el conf.d
directorio:
autoindex.conf
ssl.conf
userdir.conf
welcome.conf
También hay un archivo README que estoy omitiendo aquí.
Además, la IncludeOptional sites-enabled/*.conf
directiva y sus contenidos se describieron a fondo en el OP anterior.
¿Alguno de estos archivos de inclusión está en conflicto con la VirtualHost
configuración de mydomain.com.conf
?
EDITAR # 4
Según la sugerencia de garethTheRed, me mudé mydomain.com.conf
al conf.d
directorio y luego comencé a comentar las líneas mydomain.com.conf
una por una hasta que httpd
pude reiniciar. Luego comencé a dejar de comentar líneas para ver cuántas líneas podían quedar y httpd
aún así reiniciar. Pude httpd
reiniciar, pero sigo systemctl status httpd.service -l
produciendo la misma advertencia:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
La VirtualHost
sintaxis que permite httpd
comenzar (aunque continúa generando la advertencia anterior) es la siguiente:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
</VirtualHost>
Tenga en cuenta que tuve que omitir las siguientes líneas, cuya presencia aumenta la advertencia en una incapacidad completa para iniciar http:
# ErrorLog /var/www/mydomain.com/error.log
# CustomLog /var/www/mydomain.com/requests.log combined
Además, corrí sudo journalctl -xelu httpd
y el terminal respondió repitiendo lo siguiente muchas veces:
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:43 server-ip-address systemd[1]: Stopped The Apache HTTP Server.
-- Subject: Unit httpd.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:48 server-ip-address systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
Dec 24 17:48:48 server-ip-address httpd[10364]: AH00558: httpd: Could not reliably d
Dec 24 17:48:48 server-ip-address systemd[1]: Started The Apache HTTP Server.
-- Subject: Unit httpd.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished starting up.
--
-- The start-up result is done.
lines 887-909/909 (END)
Nota: Los resultados anteriores siguen siendo los mismos independientemente de si uso el archivo de hosts de eyoung100 o el archivo de hosts de m32. Para que esta pregunta sea respondida, creo que debería poder crear archivos de registro y también evitar la advertencia del nombre del servidor. De lo contrario, me temo que los pasos posteriores de configuración de httpd serán propensos a errores persistentes.
fuente
ServerName
directiva? Añádelo a tu pregunta.apachectl configtest
?IncludeOptional
al final delhttpd.conf
archivo original ? Creo que hay una instalación predeterminada. El problema puede ser que está agregando el extraIncludeOptional
al final, lo que obligaapache
a leer el archivo de configuración incluido dos veces y, en consecuencia, hace que falle.mydomain.com.conf
a/etc/httpd/conf.d
(donde están todos los demás) y eliminar/etc/httpd/sites-enabled
(eso es algo de Debian / Ubuntu) y loIncludeOptional
que agregóhttpd.conf
. Puede ignorar elAH00558
mensaje por ahora ya que no se detieneapache
. Luego, elimine una línea de suconf
archivo hasta que encuentre al culpable (o, alternativamente, comience con uno vacío y restaure una línea a la vez).Respuestas:
Los registros están causando los errores porque
apache
no pueden escribir en la raíz de su sitio web. Incluso si tuviera que arreglar los permisos de archivo, SELinux lo bloquearía; que solo permiteapache
escribir registros en/var/log/httpd
. La solución más fácil sería cambiar su sitio web para iniciar sesión en este directorio, tal vez con un nombre de archivo que contenga el nombre del sitio web para diferenciarlo de otros registros.Para configurar el nombre de host del servidor y deshacerse de la advertencia AH00558, simplemente use:
p.ej
fuente
Recibí este error cuando olvidé establecer el nombre de host para la máquina. ¿Ya lo has hecho?
Ejecute este comando:
Verificar con
hostname
Editar:
con el OP actualizado, parece que su archivo de hosts no está configurado correctamente. Así es como se ve el mío;
Intenta configurarlo en algo simple como eso. Por supuesto, reemplace toda la información con la suya.
166.66.666.66
con su propia IPm32.me and m32
con su dominio y dominio sin el TLDfuente
AH00558
error cuando uso su archivo de ejemplo de hosts, con miip
ymydomain.com mydomain
.