I've been thinking about it for a long time, and have finally got around to setting up a self-hosted web server. Initially, I thought it was going to be a streneous task, but it wasn't too bad in the end. Here, I'll write a summary of what is needed to get your own hosting up and running. The following steps are the bare essentials you will need:
- Domain name registration
- Name server
- Some web server
The importance of the domain name is to reserve your URL address. There will be some free services around, but the names are probably restricted to including some extra information about the hosting service. I use http://www.planetdomain.com/.
Simply having the domain name is not very useful unless it is going to resolve to some hosting. With planetdomain, it has a service to simply forward URLs, and this is what I used for the first year and bit with my own domain. This is where the name server will come into play. Having a name server means you can resolve the URL to an IP adress (if you have a dynamic IP, you may need to investigate further on how to get this set-up). I used http://www.zoneedit.com/ which seems to be free up to some point.
So after you have a domain and the URL is resolving to your URL, you now just need to set-up a web server listening on the ip address. If you have direct access to the internet, this is a simple matter of installing apache server (or some other web server software), use port 80. It is likely your OS will have some firewall installed and so make sure port 80 is cleared for this.
If like many people, you have a router distributing your internet connection, it is not much extra work. All you need to do is access the router (see your manual) and make sure you allow port 80 to be forwarded to your machine's LAN IP.
P.S. let me know if anything is unclear, I haven't really proof read this yet.