If you are a professional webmaster or a hobby web designer then sooner or later you will come to the situation when it would be very nice if you would have an own web server to do some experiments and to test pages before they are uploaded to the live website. To have a personal web server you need some simple software that includes Apache, PHP and MySQL and it can be installed on almost any machine. This works well but for serious development where you need to have some specific PHP version or the Apache server under total control, you need a separate machine dedicated for web hosting.
Building a cheap server is pretty simple. You don’t need a fancy computer with the latest processor, huge amount of RAM or even monitor or keyboard. You need an old machine that was years ago your main computer, still works but was replaced by a new one. If your home server will be a sandbox for web development and testing purposes then this old machine is everything you need.
You can go with Windows or Linux operating system. It is a good idea to have a Linux server because this will closely replicate the actual server at your hosting company. Installing and maintaining Linux is not complicated and you can find all the relevant instructions on the web. Any Linux distribution will do the job, popular selections for simple servers are Debian or Ubuntu.
You have also the possibility to use this computer for some other tasks like file server or temporary storage for downloaded files, to run peer-to-peer clients or for any other application you don’t want to run it on your main computer. Such machine will probably be always on so that you could access it anytime even from a remote location. In this case it makes sense to invest in few upgrades or to build a completely new machine.
Either upgrade of the old machine or a completely new computer, basic requirements are the same. The processor or its speed is not very important. Go for some good price-performance CPU. The amount of RAM is not critical but since the modules are cheap 2GB or more is a good idea. A little more attention need hard drives. The best approach is to have a physically separated system hard disk and data hard disk. For data storage, including websites, you can go with a single drive or a more elaborate RAID system. Almost all recent motherboards have some on-board RAID controller. You need from two to four drives and you can choose from various RAID configurations. This will enable you to crate a large volume and will add some protection if one of the disks fails. You need no keyboard or monitor for such server, except for the initial installation of the operating system.
Having a home web server or a combined file/web server is a good idea. You have a place where you can test your web projects, a place to store all the multimedia files that are played at network-enabled players in your home, and a separate machine to run a torrent client. You can also enable remote access to this server so you can access your files even when you are not at home.