Setting up a Personal Web Server on your Home Computer
When some people think of web servers, they automatically think of websites hosted by someone else. These are usually the same people who don't know the difference between internet and intranet. The only important difference between the two is how the networks are set up, with one being public and one being private.
The Purpose of a Personal Web Server
A personal web server can be used for many things, but my purpose for having one in place is for web application software testing. Some people call this a sandbox. The best way to learn about web servers in general and practice setting up web applications is to use a sandbox of some kind, even if you never actually move a web application to the worldwide web.
You can set up a dedicated web server for public consumption if you have a computer powerful enough (most modern computers) and the right kind of Internet connection. I won't get into the details, but anything less than a DSL (digital subscriber line) connection would be an incredible waste of time. The same isn't true, however, for a dedicated server set up for private use with an intranet connection. If your intranet doesn't extend beyond a single room, you don't even need an outside connection. That's beyond the scope of what I'm talking about right now, so I'll leave it at that.
Web Server Software
At one time, having the right web server software to run on a home computer was difficult to obtain. I'm talking about the time period before Windows XP was introduced. Linux (and other UNIX-type) geeks never really had a problem and it was the Windows users who suffered. Times have changed, of course, and there are more choices than I can shake a stick at.
The Apache Web Server is the most popular web server software being used the majority of web hosting companies, so it makes sense to use it for a personal web server as well. WampServer, XAMPP for Windows and EasyPHP are just some of the Windows applications which include Apache (that I know about).
If you're not concerned about being completely compatible with Apache, you can choose web server software like the Abyss Web Server or X5 (among others, just search the web to find them), but the advanced versions will cost you money whereas the Apache-based software packages are mostly free.
Other Software to be used with a Personal Web Server
Regardless of which software package you use for your personal web server, you need to make sure it includes the ability to use the scripting language of your choice, includes some kind of SQL (database) server, and probably some type of mail server.
For the scripting language, I prefer PHP and it's what most websites use. ASP (Active Server Pages), CFM (ColdFusion) and PERL are used by a lot of people too, so you shouldn't rule them completely out.
For the database server, I prefer MySQL but others prefer PostgreSQL. There are other choices, but I won't list them because I'm not at all familiar with them (I would never use ODBC and Microsoft Access though because it gives me a headache).
As for the mail server, I find it quite easy to work with the Mercury Mail Transport System and I don't care what others are available.
I know for a fact that XAMPP for Windows includes the Mercury Mail Transport System and that EasyPHP does not (but it's easy to set it up separately). I don't know about the other packages.
Web Applications
I have two separate projects I'm working on and I'm taking my sweet time with them. Doing it on personal web server means I don't have to worry about anyone looking at my silliness except me. One of them is a new kind of bookmarking site and the other is a internal linking application, designed for managing internal links on a large website (more than 1000 pages).
If you have a website of some kind already, or are planning to set one up, putting the application on a personal web server is a good idea. I've done this with my blogs in the past as well as an application I wrote. Updating and testing is much easier when all you have to do is reload a page in your browser as opposed to trying to do it live on the web, uploading files by FTP or whatever means. You can check templates, add-ons, plugins and other things on the fly and if you make a mistake, it's much easier to correct a local copy than one that's "out there" for people to see.
Similar Posts:

Ive been wanting to try this for quite a bit now, just wish we had a reliable internet connection. Apple have a new mac mini with macos server built in…tempting…..
I wonder if you could extend this article (or write another one) stating what or how you should setup security on your home web server?
That could take some doing because security issues, other than the basics, are sometimes a matter of preference (or paranoia).
Web applications are required where the data is accessed from different location by different people
That's true, but I wouldn't put a public web application on a personal web server unless it was extremely secure.