Drupal is a pain in the backside to setup on a home web server. It is fairly straight forward to set up on most of the popular shared hosting platforms. This is because Drupal has a fair few requirements and on a shared hosting platform most of these requirements are already set up. Many of us want to host our own website, partly just because we like to experiment. This is exactly my own mindset. However you need to know a little about linux to do this because most of the drupal guides and documentation are written by Linux pros who have forgotten that Windows users and the rest of the uninitiated have no idea what sda1 is let alone how to sudo to root and install php5-curl with apt. Sound like I'm talking rubbish? Good thats exactly why you are here.
Over the course of this guide I'll be showing you how to setup a Ubuntu web and email server using Ubuntu 12.04 LTS, how to install the pre-requisits, how to configure the pre-requisites and how to install a basic version of Drupal. I'll also be explaining some of the logic behind the decisions I've made setting this up so you can make an informed decision that is right for you. I hate those monkey see monkey do guides that leave you with no greater understanding than before you started. Most of the documentation I've seen in the open source community tells you how to do most things but not why your doing them leaving anyone new to the job guessing which one to go for and hoping they have chosen the best one.
I'll be making no assumptions of prior linux experience of any kind, although I will assume since your going to attempt it that you are fairly technical and know a fair bit about computers in general. If anythings unclear feel free to ask in the comments. Althout I'll be doing my best to explain things as we go I will be limiting the settings, commands and packages we use, with the exception of email setup, to server requirements of Drupal 7. I'll be detailing a few desirable components that are not required but it is assumed you are following my recommendations for the course of this guide. It would be worth you checking out the Ubuntu server guide to see if you would like to experiment with setting up any of the other features before you become reliant on your server to host your website.
This guide focusses on creating your own server to install Drupal on, but once we get to actually installing Drupal it should apply to any up to date and feature rich web host. If this applies to you skip ahead.
Please bear with me, I've decide to publish the guide before its finished since most users will take some time to go through it.