Here we go over the directives again, giving formal definitions for reference.
ServerName gives the hostname of the server to use when creating redirection URLs, that is, if you use a <Location> directive or access a directory without a trailing /.
ServerName hostname Server config, virtual host
It will also be useful when we consider Virtual Hosting (see Chapter 4).
This directive sets the directory from which Apache will serve files.
DocumentRoot directory Default: /usr/local/apache/htdocs Server config, virtual host
Unless matched by a directive like Alias, the server appends the path from the requested URL to the document root to make the path to the document. For example:
DocumentRoot /usr/web
An access to http://www.www.my.host.com/index.html now refers to /usr/web/index.html.
There appears to be a bug in the relevant Module, mod_dir, that causes problems when the directory specified in DocumentRoot has a trailing slash (e.g., DocumentRoot /usr/web/), so please avoid that. It is worth bearing in mind that the deeper DocumentRoot goes, the longer it takes Apache to check out the directories. For the sake of performance, adopt the British Army's universal motto: KISS (Keep It Simple, Stupid)!
ServerRoot specifies where the subdirectories conf and logs can be found.
ServerRoot directory Default directory: /usr/local/etc/httpd Server config
If you start Apache with the -f (file) option, you need to include the ServerRoot directive. On the other hand, if you use the -d (directory) option, as we do, this directive is not needed.
The ErrorLog directive sets the name of the file to which the server will log any errors it encounters.
ErrorLog filename|syslog[:facility] Default: ErrorLog logs/error_log Server config, virtual host
If the filename does not begin with a slash (/), it is assumed to be relative to the server root.
If the filename begins with a pipe (|), it is assumed to be a command
to spawn a file to handle the error log.
Apache 1.3 and above: using syslog instead of a filename enables logging via syslogd(8) if the system supports it. The default is to use syslog facility local7, but you can override this by using the syslog:facility syntax, where facility can be one of the names usually documented in syslog(1).
Your security could be compromised if the directory where log files are stored is writable by anyone other than the user who starts the server.
A useful piece of information about an executing process is its PID number. This is available under both Unix and Win32 in the PidFile, and this directive allows you to change its location.
PidFile file Default file: logs/httpd.pid Server config
By default, it is in ... /logs/httpd.pid. However, only Unix allows you to do anything easily with it; namely, to kill the process.
This directive sets the path and filename to find the mime.types file if it isn't in the default position.
TypesConfig filename Default: conf/mime.types Server config
You may want to include material from elsewhere into the Config file. You either just paste it in, or you use the Include directive:
Include filename Server config, virtual host, directory, .htaccess
Because it makes it hard to see what the Config file is actually doing, you probably will not want to use this directive until the file gets really complicated — (see, for instance, Chapter 17, where the Config file also has to control the Tomcat Java module).
Copyright © 2003 O'Reilly & Associates. All rights reserved.