Comando para verificar la validez de los archivos de configuración del servidor Apache

152

Estoy buscando un comando que verifique la validez de los archivos de configuración en el servidor apache en las distribuciones Debian y RHEL. Necesito hacer esto antes de reiniciar, para que no haya tiempo de inactividad.

Sigtran
fuente

Respuestas:

223

Verificación: http://httpd.apache.org/docs/2.2/programs/apachectl.html

apachectl configtest
keatch
fuente
Recibo este mensaje ejecutando el comando anteriorAH00558: 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
Ciasto piekarz
Agregue una línea "ServerName whateveryoulike" a su configuración de apache. Reemplace lo que quiera con lo que quiera nombrar a su servidor.
Pit
1
podría requerir sudo?
Miguel
36

Otra forma es httpd -t. Por lo tanto, está disponible en la versión de Windows de Apache. Consulte http://httpd.apache.org/docs/2.4/programs/httpd.html

huésped
fuente
Curiosamente, en Ubuntu, cuando ejecuto apachectl configtestobtengo Syntax OK, pero cuando ejecuto apache2 -tobtengo AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf(entre otros errores)
Buttle Butkus
6

apachectl configtestEs la respuesta correcta. Lamentablemente, tengo una instalación de Windows donde falta Apachectl. Aquí llamar httpdtambién ayuda.

Matthias M
fuente
1

La prueba de configuración de Apache ( apachectl configtesto sus equivalentes) solo prueba el archivo de configuración (y los archivos que incluye recursivamente) para una sintaxis válida. Sin embargo, la pregunta original pedía evitar el tiempo de inactividad. Incluso cuando apachectl configtestno devuelve un error, un reinicio real puede fallar, causando tiempo de inactividad.

Las causas comunes de tales fallas incluyen certificados SSL faltantes o inaccesibles, directorios faltantes para archivos de registro o un directorio raíz del sitio web faltante. A menudo, tales errores son causados ​​al eliminar el directorio de un vhost sin eliminar el archivo de configuración de vhost Apache. Se recomienda encarecidamente utilizar una herramienta como títere o ansible para evitar tales inconsistencias.

Al ver que esta pregunta es el éxito número uno al buscar en Google "Apache config lint", pensé en mencionar este pequeño detalle ...

BertD
fuente