Apache no se vuelve a cargar ... ¿Hay algún registro en el que pueda buscar detalles?

12

Tengo un servidor web en el que estoy trabajando para agregar un sitio.

Después de correr a2ensite, corrí service apache2 reloady obtuve esto:

[FALLO] Recargando la configuración del servidor web: ¡apache2 falló!

¿Hay un archivo de registro que pueda buscar para obtener más detalles?

Questionmark
fuente

Respuestas:

9

Puede ver dónde httpdestá configurado para buscar sus archivos de configuración con el -Vinterruptor:

$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

También puede usar el comando lsofpara ver a qué archivos está accediendo un proceso de Unix. Mi versión de httpdestá usando el puerto de valores 80, ¡así que cambie el 80 a 8443 en su caso!

$ netstat -tapn|grep ::80
tcp        0      0 :::80                       :::*                        LISTEN      5338/httpd     

Ahora puede ejecutar lsofpara averiguar dónde se escriben los archivos de registro:

$ lsof -p 5338|grep log
httpd   5338 root  mem    REG  253,0    10440   3141 /usr/lib64/httpd/modules/mod_logio.so
httpd   5338 root  mem    REG  253,0    27200   3139 /usr/lib64/httpd/modules/mod_log_config.so
httpd   5338 root    2w   REG  253,0     2014 395029 /var/log/httpd/error_log
httpd   5338 root    7w   REG  253,0     4140 394789 /var/log/httpd/access_log

Debería poder determinar la ubicación de los access_logarchivos de configuración y los archivos de configuración y examinarlos para determinar las directivas "Directorio" y "Ubicación". Estos especifican qué directorios locales usar cuando le dicen a Apache qué archivos servir.

¿Ahora que?

Luego miraría a través del access_logpara asegurarme de que hay entradas allí que corresponden a los accesos en el servidor. Lo que quiero decir con esto es que si busco en el servidor http://www.somedom.com/somefile, debería ver este acceso grabado en el access_logarchivo de esta manera:

192.168.1.110 - - [17/Jul/2013:14:39:50 -0400] "GET /somefile HTTP/1.1" 200 4303 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5
37.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"

¿Dónde están los archivos?

Puede tomar el conocimiento anterior que hemos adquirido y comenzar a aplicarlo así:

Estos bits de httpd -Vnos dicen la raíz de Apache:

-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

Por lo que sabemos el archivo de configuración principal está aquí: /etc/httpd/conf/httpd.conf. Así que mira a través de ese archivo estas líneas:

$ grep -E "DocumentRoot|Directory \"|^Include" /etc/httpd/conf/httpd.conf |grep -v "^#"
Include conf.d/*.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
<Directory "/var/www/icons">
<Directory "/var/www/cgi-bin">
    <Directory "/var/www/error">

Así que ahora sé que estos directorios son fuentes potenciales para el archivo que vimos en el access_log. El DocumentRooty Directoriesyo buscaría a través del archivo, somefile. Si no está en ninguno de estos lugares entonces tendría próximo foco de atención en el Includedirectorio mencionado anteriormente en la grepsalida, /etc/httpd/conf.d/*.conf.

Estos archivos son configuraciones adicionales que usa Apache, por lo que también deberá repetir los pasos usando greppara mirar a través de estos archivos.

slm
fuente
14

Si no puede encontrar el archivo de registro o el archivo de registro está vacío, puede ejecutar la prueba de configuración de apache que imprimirá cualquier problema con los archivos de configuración:

apachectl configtest
kkr
fuente
2

Ejecutar service apache2 restart. Mostrará cualquier mensaje de error (generalmente el servicio ejecuta una prueba de configuración antes de detener e iniciar apache)

seydu
fuente