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.
apachectl configtest
?
IncludeOptional
al final del httpd.conf
archivo original ? Creo que hay una instalación predeterminada. El problema puede ser que está agregando el extra IncludeOptional
al final, lo que obliga apache
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 lo IncludeOptional
que agregó httpd.conf
. Puede ignorar el AH00558
mensaje por ahora ya que no se detiene apache
. Luego, elimine una línea de su conf
archivo hasta que encuentre al culpable (o, alternativamente, comience con uno vacío y restaure una línea a la vez).
ServerName
directiva? Añádelo a tu pregunta.