Test Apache Web Server Configuration for Syntax Errors Before Restarting
So you made those changes to your Apache Web Server configuration files and went on to
reload the server so that the shiny new changes are picked up but bam! You made some minor syntax error, server went down crashing and now you have a bad downtime 🙁
Well if you made any changes to the httpd configuration, make it a habit to always test your config for syntax errors. Running syntax checks is super easy with the
apachectl program that ships with your Apache web server installation and acts as a frontend to the httpd server. This is all you gotta do:
# apachectl configtest Syntax OK
If all the syntax parsing tests run fine then the program exits with a
0 return code, meaning all is well. In that case you’ll see
Syntax OK printed to your standard output.
But what if there’s an actual error, what does it look like ? Well let’s quickly emulate that. I change
ServerNameMisspelled and then a config test would yield this:
# apachectl configtest AH00526: Syntax error on line 9 of /etc/apache2/sites-enabled/codingshower.conf: Invalid command 'ServerNameMisspelled', perhaps misspelled or defined by a module not included in the server configuration Action 'configtest' failed. The Apache error log may have more information.
So next time before you want httpd to pick up your brand new configuration changes, run the syntax parsing tests first to ensure you didn’t make silly syntactical errors.
apachectl configtest is equivalent to
Note 2: Of course this tool won’t help with logical mistakes like virtual host mismatch, listening on random ports, logging errors in access logs and vice-versa, so on and so forth.