Apache and OpenBSD

General

Configuration directory:
/var/www/conf

Most important configuration file:
/var/www/conf/httpd.conf

Setting the default e-mail address as seen on the 404 pages, edit the ServerAdmin directive inhttpd.conf:
ServerAdmin alex@purebsd.com

If you want users being able to have a homepage like http://purebsd.com/~alex enable and set the UserDir directive in httpd.conf:
UserDir public_html

If you’d like to have Apache see index.php too as a valid index file, edit and/or set theDirectoryIndex directive in httpd.conf:
DirectoryIndex index.php index.html

If you’d like Apache to resolve IP addresses, for usage in logfiles, the REMOTE_HOST variable,/server-status page, etcetera, set the HostnameLookups in httpd.conf to this:
HostnameLookups On

If you don’t like Apache to report its version number and the hostname in 404 error pages, set the ServerSignature directive to Off in httpd.conf:
ServerSignature Off

Virtual hosts/domains

If you’d like Apache to serve up name-based virtual hosts you first you need to define on which IP address(es) Apache will receive requests for them. Your name-based virtual host names usually resolve to this/these IP(s). So, edit httpd.conf to have something like this:
NameVirtualHost 192.168.0.1
NameVirtualHost 42.2.1.21

Now, adding the so called virtual hosts (names) to Apache is rather easy. An purely arbitrary example:

# (www.)purebsd.com
<VirtualHost 42.2.1.21>
ServerName www.purebsd.com
ServerAlias purebsd.com
ServerAdmin webmaster@purebsd.com
DocumentRoot /var/www/htdocs/www.purebsd.com
ErrorLog logs/www.purebsd.com-ERROR
CustomLog logs/www.purebsd.com-ACCESS combined
</VirtualHost>

ServerName is the name of the virtual host you’d like to have Apache serve pages for.

ServerAlias is an optional directive, indicating all possible aliases for the same content (set of pages).

The ServerAdmin sets the e-mail address (only) for this particular virtual host.

DocumentRoot is very important. It tells Apache where to grab the pages/content of the virtual host. More accurately, it betrays the location of the directory holding the pages for the virtual host. http://purebsd.com/hoeba.html is translated into/var/www/htdocs/www.purebsd.com/hoeba.html

The ErrorLog directive dictates to Apache to which file it should log occurring errors.

CustomLog tells Apache about the whereabouts of the file where it should write the non-error events off our virtual host.

Sidenote: as to where the root of the DocumentRoot should be is mostly personal taste. Some like to put websites in /var/www/htdocs/, some in /vol/www/, others in /home/httpd/. Others mix it with a previously mentioned place for their own sites/special sites and use/home/user/htdocs-www.example.org for 3rd party users.

Comments are closed.