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

by nixcraft [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)
Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 0 comments… add one now }

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous post: How do I setup round robin DNS?

Next post: How do I find out what ports are listening/open on my Linux / FreeBSD server?