Este artículo describe cómo comprobar la configuración de Linux® para Secure Shell (SSH), Apache® y Nginx®, lo que le ayudará a solucionar errores. Por ejemplo, puede realizar un cambio en un archivo de configuración e introducir un error de sintaxis. Como resultado, cuando reinicia o vuelve a cargar el servicio, muestra un error y no se reinicia, lo que provoca un tiempo de inactividad.
SSH
Puede encontrar el archivo de configuración de SSH en /etc/ssh/sshd_config . Después de cambiar el archivo de configuración, ejecute el comando sshd -t
para comprobar la configuración. Si la configuración tiene errores, aparece el siguiente mensaje de error:
# sshd -t
/etc/ssh/sshd_config: line 17: Bad configuration option: ZPort
/etc/ssh/sshd_config: terminating, 1 bad configuration options
Si no hay errores, no se muestra nada cuando ejecuta el comando.
Apache
El comando de verificación de sintaxis verifica el archivo de configuración predeterminado de Apache y cualquier host virtual (vhosts) que haya configurado en el servidor. Para comprobar la sintaxis, ejecute httpd -t
o apache2ctl -t
para el sistema operativo Ubuntu® y Debian®. Si hay un error con la verificación de sintaxis, el mensaje de error muestra un resultado similar al siguiente ejemplo:
# httpd -t
AH00112: Warning: DocumentRoot [/var/www/test.com/httpdocs] does not exist
AH00526: Syntax error on line 3 of /etc/httpd/conf.d/test.conf:
ServerName takes one argument, The hostname and port of the server
Si no hay errores, el mensaje Syntax OK
pantallas. Incluso si no hay vhosts en el servidor, la verificación de sintaxis todavía muestra Syntax OK
cuando la sintaxis del archivo de configuración predeterminado para Apache es correcta.
Nginx
Las verificaciones de sintaxis de Nginx se comportan de manera diferente a Apache. Para verificar la sintaxis de la configuración predeterminada de Nginx, ejecute el comando nginx -t
. Sin embargo, si desea verificar la sintaxis de un bloque de servidor específico, debe agregar -c
marca y especifica la ruta al bloque del servidor como se muestra en el siguiente ejemplo:
[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost ~]# nginx -t -c /etc/nginx/conf.d/test.com.conf
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/conf.d/test.com.conf:1
nginx: configuration file /etc/nginx/conf.d/test.com.conf test failed