I've been looking at different hosting options for the past few weeks (mainly dedicated and virtual private / virtual dedicated). It seems as if they're all out to nickle and dime you to death. "Oh, you want your server to be connected to the internet?... that'll be an extra $20/mo please". They don't even really say "please" (I threw that in myself). Through some forums, I discovered a company called slicehost. They only sell VPS plans, but it seems as if they know what we (the developer) want. It says so right on their website. They offer multiple flavors of Linux installs and you have full root access to them along with a bunch of other features. Last year Slicehost was aquired by the mighty RackSpace, one of the top hosting companies in the world.
Everything sounded interesting, so I decided to try my first "slice". I went with the 256, knowing that I can upgrade at any time. After you pay, your slice is ready within minutes and your ip address and root password are emailed to you. I chose to go with an Ubuntu image (8.04 LTS) and I'll show you how to get it up and running ASAP!
If you like this tutorial and think would like to try out a slice for yourself (currently starting at only $20/mo.), please don't be affraid to use my refferal link:
Go ahead and login to your server (I use PuTTY for Windows for my SSH needs). The first thing that you'll probably want to do is change your root password and then setup a user for yourself, so that you won't be working as root all of the time.
Next we'll install Apache 2:
... and then MySQL. Be sure to set your root password:
For MySQL management I installed phpMyAdmin (this will also install PHP as a dependency):
As an extra admin tool, you can install Webmin. I just downloaded this into my home directory with wget:
To install Webmin you can use (replace current_webmin.deb with the name of the deb file that you downloaded with wget):
It will probably fail due to a lack of dependencies, so you can run apt to fix it. This should also continue the Webmin installation:
You should now be able to access your server at: https://your-ip-address:10000
You'll have to add an exception to your browser for the invalid SSL cert. It's ok to do so.
Lastly I just installed ProFTPD, for my FTP server, through Webmin. There's a one click install under unused modules or you can use:
Once this was installed, I used Edit Config Files to uncomment (remove the '#') "DefaultRoot ~" (this allows users access to only their home directories) and add the line: "IdentLookups Off" (this speeds up the login process).
At this point, Webmin showed my memory usage at less than half (102MB) of the 256MB allotted and my disk usage at around 1.2GB of the 10GB for this plan! I just set my slice up, so I can't comment on it's performance as of yet.
I hope this is a good start to get you up and running. I can't guarantee that this is the most secure setup, but it's a start...