¿La mejor manera de solucionar problemas de apache no se inicia?

8

Recientemente obtuvimos un servidor de respaldo para reflejar todos nuestros datos en caso de que el servidor primario se caiga.

He actualizado todos los datos del sitio a través de rsync, y toda la configuración de apache y las bases de datos actualizadas. Ambas máquinas están en Ubuntu 9 (9.04 en la primaria, 9.10 en la copia de seguridad).

Por lo tanto, todo parece sincronizado en su mayor parte en este momento (todavía necesito descubrir la sincronización del usuario), e intento iniciar Apache. yo obtengo

* Starting web server apache2                                       [fail]

Nada más indica cuál podría ser el problema.

Sé que no tengo suficiente información para esperar una solución de ustedes, así que me gustaría saber a dónde puedo ir desde aquí para investigar más a fondo este problema. ¿Habría algún registro de error para esto?

¡Gracias!

Ganancia baja
fuente
hasta ahora, he encontrado registros que dicen "No existe tal archivo o directorio: mod_fcgid" - este es un buen comienzo
Lowgain

Respuestas:

11

En algunos casos específicos, una entrada de registro no se escribirá en el disco; esto puede ocurrir si los registros no existen, por ejemplo, o Apache simplemente no puede escribir en los archivos de registro debido a problemas de permisos, etc. En tales casos, el La mejor manera de diagnosticar un error es usar 'strace':

[root@server ~]# strace -Ff apachectl start

Si bien el resultado será bastante detallado, si Apache no se inicia por algún motivo, verá una escritura () al final con el contenido de lo que se ingresaría en los registros con el motivo por el que falla (si no está registrando) por qué en el registro de errores, no se sorprenda si el mensaje de error contiene "No se puede abrir el registro" con la ruta al registro;).

Aunque mire su comentario sobre mod_fcgid, sugiero revisar la configuración de Apache y examinar las referencias a mod_fcgid; parece que está tratando de abrir un archivo literal "mod_fcgid" en lugar de cargar el módulo.

slm
fuente
13

httpd -t probará la sintaxis de sus archivos de configuración y escupirá cualquier error al terminal.

Ignacio Vazquez-Abrams
fuente
2
Esto fue súper útil. +1
Tom Busby
Si eso no funciona, inténtalo apachectl -t.
berry120
3

Cualquier error debe imprimirse en los registros de errores (a menudo en / var / log / http / error_logs). Busque ErrorLog en su httpd.conf para averiguar dónde.

Recomiendo usar dos ventanas. Haga un 'tail -f error_log' en una ventana y use otra ventana para ejecutar el comando 'apachectl restart'. Después de encontrar el error, actualice su respuesta aquí con el mensaje de error.

Stefan Lasiewski
fuente
El paso número uno de solución de problemas en cualquier cosa siempre debe leer los registros. Apache registra casi todos los eventos que lo atraviesan, por lo que debe estar lleno de datos para leer detenidamente.
phuzion
2

Tuve un problema similar con el servidor Apache de depuración en Mac OS, así que decidí compartir mi experiencia y ahorrar a otros en algún momento, lo que me pareció muy útil:

  1. localizar registros:

apachectl -S | grep log

  1. en la salida encontrará algunos archivos de registro que puede comenzar a buscar el ejemplo de errores:

tail -n 15 /var/log/apache2/ssl_engine.log

En caso de que haya más de 1 archivo de registro, continúe siguiéndolos hasta que encuentre el error que hace que apache no se inicie

talsibony
fuente
0

Si su Apache no se está ejecutando, verifique su puerto de Skype, la mayoría de las veces tanto Skype como Apache usan el puerto 80, y eso significa que Skype podría ser la razón por la cual Apache no puede iniciarse. Detenga Skype si está instalado.

Biffon Momanyi
fuente