Manually Configuring Log Files and Other Features for Virtual Subhosts

Another great feature is the ability to create separate logfiles for your Virtual Subhosts. Consider the following example:

  • # point www.yourname.org and yourname.org to subdirectory yourname
    <VirtualHost www.yourname.org yourname.org>
    ServerName www.yourname.org
    ServerAdmin yourname@yourname.org
    DocumentRoot /usr/local/etc/httpd/vhosts/yourname
    TransferLog /usr/local/etc/httpd/vhosts/yourname/logs/access_log
    ErrorLog /usr/local/etc/httpd/vhosts/yourname/logs/error_log
    ScriptAlias /cgi-bin/ /usr/local/etc/httpd/vhosts/yourname/cgi-bin/
    ErrorDocument 404 /errors/notfound.html
    </VirtualHost>

This code isolates the logfiles for the yourname Virtual Subhost rather than having them all lumped into the master log files. You will need to create the logs directory that you define using the TransferLog and ErrorLog directives. You can create the directory by connecting to your Virtual Server and issuing the command:

  • mkdir ~/usr/local/etc/httpd/vhosts/yourname/logs

Other resource directives
Most server resource directives can be included in your <VirtualHost> definition. For example, we can include the definition of a "Not Found Document" (ErrorDocument 404) in the yourname VirtualHost definition:

  • # point www.yourname.org and yourname.org to subdirectory yourname
    <VirtualHost www.yourname.org yourname.org>
    ServerName www.yourname.org
    ServerAdmin yourname@yourname.org
    DocumentRoot /usr/local/etc/httpd/vhosts/yourname
    ScriptAlias /cgi-bin/ /usr/local/etc/httpd/vhosts/yourname/cgi-bin/
    ErrorDocument 404 /notfound.html
    </VirtualHost>

Note the file location is specified with respect to the DocumentRoot.... so the actual file location of notfound.html is:

  • ~/www/vhosts/yourname/notfound.html