Tento článek popisuje, jak zkontrolovat konfiguraci Linux® pro Secure Shell (SSH), Apache® a Nginx®, což vám pomůže odstraňovat chyby. Můžete například provést změnu konfiguračního souboru a zavést chybu syntaxe. V důsledku toho, když restartujete nebo znovu načtete službu, zobrazí se chyba a restartování se nezdaří, což má za následek výpadek.
SSH
Konfigurační soubor SSH naleznete v /etc/ssh/sshd_config . Po změně konfiguračního souboru spusťte příkaz sshd -t
pro kontrolu konfigurace. Pokud konfigurace obsahuje chyby, zobrazí se následující chybová zpráva:
# sshd -t
/etc/ssh/sshd_config: line 17: Bad configuration option: ZPort
/etc/ssh/sshd_config: terminating, 1 bad configuration options
Pokud nejsou žádné chyby, při spuštění příkazu se nic nezobrazí.
Apache
Příkaz syntax check zkontroluje výchozí konfigurační soubor Apache a všechny virtuální hostitele (vhosts), které jste nakonfigurovali na serveru. Chcete-li zkontrolovat syntaxi, spusťte httpd -t
nebo apache2ctl -t
pro operační systém Ubuntu® a Debian®. Pokud dojde k chybě při kontrole syntaxe, chybová zpráva zobrazí výstup podobný následujícímu příkladu:
# 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
Pokud nejsou žádné chyby, zobrazí se zpráva Syntax OK
displeje. I když na serveru nejsou žádné vhosty, kontrola syntaxe stále zobrazuje Syntax OK
když je syntaxe výchozího konfiguračního souboru pro Apache správná.
Nginx
Kontroly syntaxe Nginx se chovají jinak než Apache. Chcete-li zkontrolovat syntaxi výchozí konfigurace Nginx, spusťte příkaz nginx -t
. Pokud však chcete zkontrolovat syntaxi konkrétního bloku serveru, musíte přidat -c
příznak a zadejte cestu k bloku serveru, jak je znázorněno v následujícím příkladu:
[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