BeeBen's Web Programming PagesBee

Please note that these pages date from 2003 and are near prehistoric in internet terms. It was good stuff when it was written, but old hat now.

These pages not maintained and I no longer deal with queries about them. They remain here for historical interest.

Apache hosting

It's important to know that the site is provided by the Apache web server running on Linux hosts, so I can make use of the full power of Apache and Unix which is sometimes useful in the pages that follow.

The hosting is provided by One And One Internet (a.k.a. 1&1), and I can heartily recommend their service. Their "standard" hosting package doesn't offer Perl and PHP scripting so I'm signed up to their "business" package which offers these plus MySQL access and oodles of webspace and bandwidth. Their tech-support seems reasonably competent too, which makes a nice change. Follow the link in the ad on the left if you want to check them out.


Virtual hosts

Among the features offered by One And One is Apache Virtual Hosts. That is, although there is a single site running under a single instance of Apache you will get different content according to the URL you use to access the site.

For example, the urls and both reach my site. The former points at my /edginet/ directory, the latter at my / (ie. root) directory.

In fact if you try you will also end up at the /edginet/ directory, but will take you to /hannah/.

This kind of structure enables me to regard the various sites more or less as one entity, and, for example, to use a single include file for the PHP database accessing class for all the sites.


Local setup

I also run a local version of the website on my laptop for development. This runs on the IPv6 enabled version of Apache 1.3.26.

I emulate the Virtual Host structure at the real website by adding the following in the /etc/apache/httpd.conf file.

Of course, One And One does not yet have IPv6 connectivity. I just use it locally for fun and research. The address fec0::1 is a site-local IPv6 address which I assign to my ethernet port. It is by convention not routable on the Internet.

# IPv4 virtual hosts


ServerName edginet.local
ServerAlias edginet.local ben.edgingtonfamily.local
DocumentRoot /var/www/website/edginet

ServerName edgingtonfamily.local
DocumentRoot /var/www/website

ServerName hannah.edgingtonfamily.local
DocumentRoot /var/www/website/hannah

# IPv6 virtual hosts

NameVirtualHost [fec0::1]:80

<VirtualHost [fec0::1]:80>
ServerName edginet.v6.local
DocumentRoot /var/www/website/edginet

<VirtualHost [fec0::1]:80>
ServerName edgingtonfamily.v6.local
DocumentRoot /var/www/website

My /etc/hosts file has the following lines to support my invented ".local" TLD. (By the way, did you know that you can put this - at least the IPv4 stuff anyway - in the C:\Windows\hosts file under Windows to achieve the same effect?)

# Virtual hosts for local webpages; see also /etc/apache/httpd.conf edginet.local edgingtonfamily.local ben.edgingtonfamily.local hannah.edgingtonfamily.local

fec0::1 edginet.v6.local
fec0::1 edgingtonfamily.v6.local

So now I can access my site via IPv4 with the URL http://edginet.local/, or via IPv6 with http://edginet.v6.local/. As far as I know, Mozilla is the only IPv6 capable browser presently running on Linux: the IPv6 support was written by Munechika Sumikawa, one of my colleagues at Hitachi Internetworking.


Valid XHTML 1.0!
Valid CSS2!

Copyright © 2003 Ben Edgington.