Paying someone to host your website can be tempting. There's usually a point-and-click installation for any services you require, plus cheap monthly prices that include storage and maintenance, and there are often generous bandwidth allowances too.
It's not much fun though, and if you want to add any advanced features - such as shell access to your server or a non-shared host - costs soon ramp up.
The solution to all of these problems is to run your own server, and it's not as difficult or insecure as you might think.
Article continues below
With the latest version of Ubuntu, for instance, you can install the Apache web server with just a couple of clicks, and because this is the LTS (or Long Term Support) version, you'll receive five years of security updates for free (the desktop version is only supported for three years). As long as your system is up to date and your passwords are secure, it's highly unlikely that anyone will be able to break into it.
Combine this with the upload speeds many people enjoy at home, and you've got a viable alternative to cheap shared hosting that's fun to install, gives you more control over the configuration, and is better suited to the low-bandwidth sites many of us like to run as a hobby.
You'll also learn a lot in the process. That's why we're going to show you how easy it is to create a Linux server, install a LAMP stack into it, get Apache running and serving web pages, and then install the world's most popular content management system - WordPress.
After that, world domination is up to you and your cookery/1980s platform games/analogue monosynth blog. Unlike the live desktop CD that most regular users use to install Ubuntu, the server edition gets you prepared for life on the command line by keeping to it.
This isn't as bad as it sounds, because it's really just a series of menus. You're also asked almost exactly the same questions as for the desktop version, so there's no extra skill required.
Boot from the Ubuntu server CD and choose 'English' and 'Install Ubuntu Server' from the options that appear. Now choose your language again, your timezone, and your keyboard layout.
After a brief configuration delay, you'll get to the networking section. First it asks for a hostname; you just need to make sure this is a unique name rather than letting all the machines on your network use 'ubuntu'. Now enter a username and password. You want to make these as secure as possible - using an unpredictable name and a difficult password, for example - because you don't want someone guessing the values if you run SSH for remote access.
The next major step is disk partitioning, and the most straightforward approach is to give the server a complete disk. We also recommend the second option from the disk partition menu, as this formats the complete disk with an LVM configuration.
LVM is a disk management system that creates virtual partitions from one or more disks, and it means you can easily expand them as your needs grow, without the tedious tasks of migrating data from one drive to another.
Answer all further questions with their default values. Be warned, this will remove any data on your chosen drive.
Leave the package management proxy question blank, but in the following question, we suggest 'Install security updates automatically' is a better choice than the default one, especially if you're going to leave the machine running and connected to the internet.
Pick a server
The final stage of the installer lets you pick and choose any of the servers you might want to install. This is so Ubuntu can manage the processes from boot time without any further interaction from you, so it's a good idea to at least install the basic packages.