Are you ready setting up your own server? Then let's go!
At first you should evaluate if you gonna fool around and play a bit using a virtual server on your pc and then start with a "real" server or if you go for it and use a "real" server in the first place. Just one warning: A server avaiable from the internet who is not set up properly can be used by spammers or bot-networks resulting in legal issues! Be ware of this when you decided to rent a server!
The difference between the two is that when using a server (either virtual or dedicated) owned by a hosting company you often get a clean setup and don't have to do it yourself.If you decided on doing so, install a Ubuntu 10.04 LTS using the installation cd and the default options. Don't install any software, as we will do this later.
Now we have to think about which operating system suits our problem. I recommend Linux for every server because of security issues, but there are reasons to use Windows, OpenBSD or Solaris. If this is the case for you, this tutorial will not help you as I'll describe a Linux based Webserver.
The decision which Linux to use is mostly of personal preferences. You can't go wrong with a debian or Ubuntu LTS, and there are also reasons for Red Hat or SUSE, espacially if you need business support. I'll describe a Ubuntu based Server as I'm really happy with Ubuntu and it fit's my needs! If you decide on using another distribution, feel free to read on as most steps will be almost the same, espacially the configuration of the software.
Some quick words about server configuration: In most cases, what you need is bandwith and in some cases RAM. Processor power is mostly overrated when you are "just" running an apache and don't have thousands of users at the same time or you are performing special tasks. Think about what hard drive size you need. If you use git you might some extra space for your repositories!
Today, you can get a virtual Server for as little as 8€ from hetzner or even lower from other webhosters. They are very good for development/testing and can even host normal websites which don't have hundreds of users at the same time.
Ok, so long for the prequestions on a server. In the next step, we'll set up our server by adding users and setting up ssh (which can be skipped when you are using ayour hoster set up the server as he'll install this for you).