How do I find out syntax errors in my Apache web server configuration file?

in Categories last updated March 25, 2006

Apache web server support special syntax checking. You can run syntax tests for configuration files only. Following two are important syntax checker option you can pass to apache binary program httpd (Red Hat/ Fedora Linux) or apache-perl (Debian Linux apache binary):

Executing the following command, that will detect syntax errors:

If you are using Debian Linux:

# /usr/sbin/apache-perl -t

Syntax OK

If you are using Red Hat Linux:

# /usr/sbin/httpd -t

Syntax OK

Where,

  • -t : The program immediately exits after these syntax parsing with either a return code of 0 (i.e. Syntax OK message) or return code not equal to 0 (i.e. Syntax Error message).

Consider following example:

# /usr/sbin/apache-perl -t

Warning: DocumentRoot [/data/network/www/blogs] does not exist
Syntax OK

Replace it with -T option:

/usr/sbin/apache-perl -T

Syntax OK

The option -T is same as option -t but does not check the configured document roots (warning message disappeared).

Another example:

# /usr/sbin/apache-perl -t -S

Syntax error on line 1059 of /etc/apache-perl/httpd.conf:
Invalid command ‘CustomLogl’, perhaps mis-spelled or defined by a module not included in the server configuration

As you see error on line number 1059 need to be fixed. Use vi text editor:

# vi +1059 /etc/apache-perl/httpd.conf

After correction again retype command:

# /usr/sbin/apache-perl -t –S

Output:

VirtualHost configuration:
192.168.1.1:80         is a NameVirtualHost
                      default server cyberciti.biz (/etc/apache-perl/httpd.conf:1053)
                      port 80 namevhost cyberciti.biz (/etc/apache-perl/httpd.conf:1053)
                      port 80 namevhost apps.cyberciti.biz (/etc/apache-perl/httpd.conf:1062)
                      port 80 namevhost dl.cyberciti.biz (/etc/apache-perl/httpd.conf:1069)
                      port 80 namevhost blogs.cyberciti.biz (/etc/apache-perl/httpd.conf:1076)

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 0 comments/add one below):