What and Where Is the Server Root In Apache Web Server

The Apache httpd‘s server root is a directory location in the filesystem where the server “lives”, i.e., it typically contains the configuration files at the very least. Sometimes you may also find log files and shared modules in the server root directory location. For instance in Debian and Ubuntu, the ServerRoot is at /etc/apache2 and that’s where all the configuration for virtual hosts, modules, ports and the main server lives.

It is important to note that all the relative paths passed to configuration directives like Include, IncludeOptional and LoadModule are considered relative to the server root directory. The Include and IncludeOptional directives are used to load/include other configuration files within one where as LoadModule links/lists a dynamic/shared module that must be loaded by Apache on runtime.

So how is the value for server root set ?

There are a bunch of options. First, it can be set during the startup of the httpd daemon (the server itself). It just needs to be passed to the -d option:

$ httpd -d /etc/apache2
...

Second, even if the above is done, it can be overridden by making use of the ServerRoot directive in the main configuration file (followed by a server restart).

# In [httpd|apache2].conf
ServerRoot "/home/httpd"

How do we find the current server root directory ?

We can use the apachectl program in two different ways to give us the answer:

$ apachectl -D DUMP_RUN_CFG
...
ServerRoot: "/etc/apache2"
...

$ apachectl -V
...
 -D HTTPD_ROOT="/etc/apache2"
...

In the output of the first command, you need to look for the value of ServerRoot where as in the second one it’s HTTPD_ROOT.

In some environments (like CentOS) it may not be possible to use apachectl as a front end to httpd. If that’s the case, use the httpd binary directly instead of apachectl:

$ httpd -D DUMP_RUN_CFG
...
ServerRoot: "/etc/httpd"
...

$ httpd -V
...
 -D HTTPD_ROOT="/etc/httpd"
...

So now we know what the server root is, why is it important and how to find the current value (location or path) of it.

Leave a Reply

Your email address will not be published.