Set Up Unmanaged VPS (4 Newbies) .. The V-P-S Bible
Welcome to the_guv’s 20 part VPS how-to bible, complete with video tutorials.
If you are outgrowing your shared host, are paying big bucks for a managed VPS or want to rightsize from an old dedicated plan, this guide will help.
Stepped out in copy/paste modules, with the VPS Bible you can carry out key tasks or follow the entire series.
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Take your virtual private server from zero to hero
.. from blank box to cute-as server ..
with this easy-to-follow copy/paste guide.
22+ parts with video, here’s the index.
Why do VPS?
‘Cos it’s easy to do – or it is now! – and for a typical hosting fee of about $20 a month, you can have a cute-as server, sat on a fat pipe, RAMmed up to the hilt and powerful enough for most sites & blogs. You can even start your very own hosting company or co-op.
Blank box to secure web server.
This step-by-step copy/paste how-to is:-
- the ideal beginner tutorial
- a modular expert reference
Scroll down for the series index to Set Up Unmanaged VPS (4 Newbies)
NEW! .. and scroll down for the sequel, VPS Admin 4 Newbies
Here’s the deal ..
-
Part 1: VPS (Virtual Private Server) vs Shared vs Dedicated
Part 1: Weigh up the various web host types, detailing what to look for in a VPS solution, both managed & unmanaged. -
Part 2: Set Up a VPS Linux Distribution
Part 2: Set up a VPS account and choose, configure & launch a Linux distribution. -
Part 3: Set Up Command Line Interface (CLI) using PuTTY
Part 3: Use PuTTY & OpenSSH to setup a secure tunnelled connection with authentication keys & simplify login to a double-click, password-free process. -
Part 4: Create a Linux User & Set Permissions
Part 4: Don’t log into Linux as root, with the trigger-happy permissions that gives. Better to create a user with SuperUser permissions. -
Part 5: Encrypt Data with OpenSSH & Auto-Login with PuTTY
Part 5: Secure a local-to-remote connection using PuTTY and OpenSSH. And we’ll streamline a password-free logon process with authentication keys. -
Part 6: Harden the Secure Shell (SSH) & Create a Firewall
Part 6: Solidify your remote OpenSSH connection and set up a firewall using iptables. Just copy and paste the code. -
Part 7: Edit bashrc for User-Friendly Linux, plus System Updates
Part 7: Set an alias to shortcut Linux commands using bashrc, and add functions to make life easier & workflow faster. Plus system update / upgrade. -
Part 8: PHP5, MySQL and Xcache (for Platforms like WordPress)
Part 8 – Install PHP for server-side web applications, Xcache to speed things up & MySQL for databases. And tweak the lot for optimum performance. -
Part 9: Add a Domain Zone to Your VPS
Part 9: Setting up your VPS, or any Linux server, you’ll need to point it to a domain name, and to configure what’s known as a DNS zone. Here’s how. -
Part 10: Prepare Linux Server for Email with Postfix
Part 10: How to install an email function for the Linux server, installing Postfix, changing the hostname and setting reverse DNS (RDNS). -
Part 11: Nginx (better than Apache) Web Server
Part 11: This copy/paste how-to installs & configures Nginx web server, tweaking the file structure, & setting up a vhost file with symlink. -
Part 12: Setup FileZilla for Secure FTP (SFTP)
Part 12: We compare FileZilla & WinSCP and FTP vs SFTP, then set up FileZilla with an encrypted Secure FTP tunnelled connection to our remote server. -
Part 13: Serve Multiple Sites & Blogs with Virtual Hosts
Part 13: Add sites & blogs to the web server using vhost files & symlinks. We create a file structure, add users/groups/permissions and tweak FastCGI. -
Part 14: Tweak Nginx for WordPress – Pretty URLs & WP Super Cache
Part 14: Configure NGINX for WordPress blogs, speeding up the platform by enabling the WP Super Cache plugin, and enabling friendly-URI permalinks. -
Part 15: WordPress Setup & Updates from the Command Line
Part 15: Setup/update WordPress on your server. This copy/paste how-to guide steps out the process, setting up a MySQL database and using Subversion. -
Part 16: Nginx Control Panel
Part 16: You’re migrating shared-to-VPS and want a GUI like cPanel? No you don’t, not after you read this! What’s more, you don’t need one either. -
Part 17: Nginx Control Panel Workarounds
Part 17: No viable panel
BUT EASY WORKAROUNDS
Every cPanel module is listed here with copy/paste code for its Nginx-equivalent alternate function. -
Part 18: Google Apps for Domain-Specific Email
Easily configure GA’s free Standard Edition for catch-all@anydomain.com webmail, with POP and IMAP email delivery to your desktop mail client. -
Part 19: Moving Day! How to Move Your Blog or Site
Migrate your web site or blog to a new server with minimal problems or inaccessibility. This guide steps out a proven relocation procedure. -
Part 20: Blogroll, Links, Credits, Resources
These VPS, Linux and related resources range from general beginner guides to advanced security and web server configuration.
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Take your virtual private server from zero to hero
with this easy-to-follow copy/paste guide.
“My local PC runs Windows” Show me for Linux
“My local PC runs Linux” Show me for Windows
22+ parts with video, here’s the index ..
-
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Introducing vpsBible’s how-to guide for setting up a super-charged unmanaged VPS featuring Ubuntu and Nginx.
-
VPS (Virtual Private Server) vs Shared vs Dedicated
Before getting stuck in, let’s compare the web host types in detail and weigh up the differences between managed & unmanaged VPS.
-
Set Up a VPS Linux Distribution
Opening a VPS hosting account, we’ll choose, configure & launch a Linux server ‘distribution’.
-
Set Up Command Line Interface (CLI) using PuTTY
Now we’ve got a server to play with, we’ll connect to it, using the ’ssh’ protocol for a super-secure link.
-
Create a Linux User & Set Permissions
Initially you’ve logged into your remote Linux machine as ‘root’. We’ll add you as a user now, with root or SuperUser permissions.
-
Encrypt Data with OpenSSH & Auto-Login with PuTTY
Now we can use ‘authentication keys’ to shore up our connection while simplifying login to an automated, password-free yet secure process.
-
Harden the Secure Shell (SSH) & Create a Firewall
The final security step: galvanizing the OpenSSH protocol and setting up an ‘iptables’ firewall. Now the server is rock ruddy solid.
-
Edit bashrc for User-Friendly Linux, plus System Updates
We use the terminal a whole lot so let’s cut ourselves a break and create some command shortcuts, then update the server.
-
Add a Domain Zone to Your VPS
To make your server aware of yourDomain.com you’ll need a few ‘DNS’ records. Damn this is simple I’m practically asleep!
-
Prepare Linux Server for Email with Postfix
In order to send and receive email from our web applications we’ll install some software and tweak the ‘RDNS’ record.
-
Install PHP5 & MySQL – The One-Stop FastCGI Index Page
Add PHP5 & MySQL, but which FastCGI method is best? Here’s the benchmarking, 4 ways to install/compile, add caching modules & more.
-
Nginx (better than Apache) Web Server
Let’s install this supersonic web server, tweaking its file structure & adding default configuration files.
-
Setup FileZilla for Secure FTP (SFTP)
There’s FTP, and then there’s ‘Secure FTP’. We’ll set up FileZilla using SFTP – and those authentication keys – for secure file transfers.
-
Serve Multiple Sites & Blogs with Virtual Hosts
We want a website folder structure, some permissions, some site-specific configuration files and, hey, we’ll hook up ‘FastCGI’.
-
Adding Sub-Domains with Nginx
Need a sub-domain? If you do, here’s how to add subDomain.yourSite.com with an ‘A record’ and a configuration file.
-
Integrate A CMS Like WordPress, WP MU, Drupal etc
For those of you wanting to use a specific content framework, such as a CMS, blogging or forum software, pop in here and we’ll sort that out.
-
Google Apps for Domain-Specific Email
GA’s free Standard Edition for catchall webmail – POP-ping or IMAP-ped to your desktop client – saves precious server resources for your webs.
-
Moving Day! How to Move Your Blog or Site
Nearly there. Here’s the web site or blog migration guide, relocating to your VPS with minimal or no downtime.
Manage Unmanaged VPS: Ubuntu-Nginx Administration
Already set it up? We’d best maintain it then.
Toggle to the .. Ubuntu-Nginx Admin Index
Manage Unmanaged VPS: Ubuntu-Nginx Administration
Maintain your virtual private server with ..
.. cheatsheets, tutorials, tips & guides.
Head back to the .. Ubuntu-Nginx Installation Index
-
Nginx Control Panel: Here’s the Deal
You’re migrating shared-to-VPS and want a GUI like cPanel? No you don’t, not after you read this! What’s more, you don’t need one either.
-
Nginx Control Panel Workarounds
For every control panel module there’s an equivalent (and faster) terminal command. Let’s compare these.
-
Upgrade to Nginx Latest Version with ZERO Downtime
Keep Nginx up-to-date – and optimized for security. This guide shows precisely how *with no missed server requests*.
-
Compile an Advanced Nginx Module Configuration
Need special web server functions? Here’s how to install or upgrade Nginx with bespoke required modules & parameters.
-
Add Web Sites Nginx Cheatsheet
Once you’ve set up your first site, adding more gets easier. Especially when you refer to this. (Let’s face it, I’m just too good to you.)
-
Adding Sub-Domains with Nginx
Rather than add somesite.tld, maybe you want some.subsite.tld? Here’s how to set your A record using a DNS manager and the vhost file for Nginx.
-
Add/Delete MySQL Database from Command Line
Need a database? Want to bin an old db? This tutorial shows you how using the terminal command line console whatnot.
-
Configure phpMyAdmin for Nginx to Maintain MySQL
Rather than have to crunch databases via the command line, we can make life easier by adding this splendid tool to manage them.
-
Backup/Export MySQL DB with CLI & mysqldump
Here’s how to backup a database from the command line using the handy mysqldump utility.
-
Import MySQL Database using Command Line
Import data to a new database with this simple mysqldump guide .. great for reinstating an old backed-up db, for instance.
-
Batch Replace/Delete Data in MySQL Database
Change repetitive db data with a single command. Rather than manually find & alter each instance, isolate the lot & update multiple content.
-
LOST a MySQL Password? How to RESET it
Lost your MySQL password? That’s a bit of a bummer .. or it would be if you didn’t have this new password setup guide, huh.
-
Backup or Upload with Secure Copy SCP (Linux to Linux)
Never mind FTP m8! Save time and download/upload your files using encrypted SCP (secure copy), the #1 Linux-Linux file transfer solution.
-
Backup or Upload with PuTTY PSFTP (Windows/Linux)
Equivalent to the above, how to transfer your files if you’re unlucky enough to be running Windows for your local PC. Not that I’m biased.
-
*USEFULLY* Park A Spare Domain with Nginx
Got a spare domain name sat around doing nothing? Put it to some use, have it point its traffic at your primary domain. Here’s the deal ..
-
Password Protect Nginx Web Files/Directories
Maybe you want a hidden website directory, say, for projects, or are developing a site and want it off-limits ’till launch day. Top tip ..
-
Redirect Web Pages with Nginx Rewrite Rule
Here’s the syntax to point a site or blog to another domain. That way, for instance, traffic from a passive site benefits an active one.
-
Nginx Error & Access Logs
Need to troubleshoot some error, or want to find out who’s trying to hack your site? Here’s a start .. those tell-tale logs.
-
Subversion for Easy CMS Updates ie WordPress/Drupal/etc
A brief introduction to install and know about the power of Subversion, the version control system to keep scripts and platforms up-to-date.
-
You Tell Me …
Something missing? Probably. Let me know what you’d like included. And if it’s listed below, shout out anyhow and I’ll try to bump it.
Nginx Admin: In the Works ..
This lot’s marked for addition already:-
- Setup or Edit DNS using Bind
- Network Tools Troubleshooting Guide
- The Comprehensive Permissions Guide
- Configuring Nginx Rewrites
- Custom Website Error Page
- Setting up Cron Jobs
- Rsync for Incremental Remote-to-Local Backup
- Cron & Rsync for Automatic Backup
- Cron & mysqldump for Auto DB Backup
- Safeguard Bandwidth with Hotlink Protection
- Block Access with Nginx’ IP Deny
Got a Question? Want to Comment?
This site has no comments system. We've got a better system!
Please use the link at the top of the post and goto this topic's forum thread:-
- to help build community
- for a superior knowledge base
- to keep info in one place, not diluted between forum & comments.
For those posts ported from Guvnr.com (pre-Feb/2010), archive comments remain.
Handy info from these comments is in the process of being ported to the forum and attributed to the original author.
If you think this idea sucks, let me know.
Thank you.






















SetUp Unmanaged VPS 4 Newbies - Your A-B-C Bible! | Web Design Spain | webhost-reviewer.com April 2nd, 2009 at 12:15 am
[...] Originally posted here: SetUp Unmanaged VPS 4 Newbies – Your A-B-C Bible! | Web Design Spain [...]
alexandre.fr May 31st, 2009 at 6:16 am
hola!
thx, your great guide
you should grow very fast as vps are
cheaper n cheaper (4.7$ for me),
do not let other get advance…
you are to googleling ur blog a maximum.
now i have no exuse not to sleep but try your guide
i wanna try Nginx because i have 64Mb-vps.
A bientot,
the_guv May 31st, 2009 at 11:56 am
cheers Alexandre … you’re right, this guide seems to be dominating Google. Cool beans
I promise to be responsible with it and to keep improving it, not just write and leave it.
'Home' - YouTube's Eco Movie PR Stunt - GUVNR June 26th, 2009 at 6:04 am
[...] VPS BIBLE finishes next week. Hurrah! Then, lined up, the VPS Newbie Admin series. Damn … Posted on Sunday, November 2nd, 2008 Tags: Guvnr-news, web-design Subscribe to Comments by RSS Trackback from your blog [...]
win now July 25th, 2009 at 10:20 am
This nice is very good, i will recomend it to my friends and partners
the_guv July 25th, 2009 at 11:26 am
@win now .. nice! thank you.
Matt August 1st, 2009 at 2:57 pm
This is great – just what I needed jumping from reseller to vps account
the_guv August 1st, 2009 at 4:52 pm
@Matt .. pleased you like. Hey, I’m a reseller to, only for shared host Lunarpages, but like to make it clear that an option like that is suitable only for a low traffic site where business is a secondary factor, and economy is pretty much the only factor. Shared has its place for low cost startups and hobby sites, but IMHO should not be considered for most businesses online. Just thought I’d get that off my chest
Bestanden overzetten « Blognetwerk August 10th, 2009 at 6:12 pm
[...] nog moeten worden overgezet. Dit zal 1 voor 1 gaan. Om de VPS server te installeren heb ik een online cursus gevolgd. Het is allemaal nieuw voor mij om het op een unix omgeving te doen. Maar stapje voor [...]
AlanLife» Choosing a Web Host – VPS Hosting October 9th, 2009 at 7:56 pm
[...] going down the same route I highly recommend that your read this guide first from the Guvnr at http://www.guvnr.com [...]
jorge.cortell.net › Geek Fun 39 October 12th, 2009 at 3:06 am
[...] Guía para montarte tu propio [...]
dan November 17th, 2009 at 8:49 am
great article. cleared my head about the vps server.
i am using one for drupal and non drupal sites.
the_guv November 18th, 2009 at 11:31 am
@Dan .. pleased to help, good to hear, thank you .. 1 tip that may interest you, my fave CMS, check out MODx. Drupal is superb tho, sure.
arif November 26th, 2009 at 12:16 am
Hi Olly: you have lived up to your title
the GOVNR u r!
fab, great, fantastic tuts : but i need more….
i need to set up my own vps – basically everyting here is great but i just that bit extra to enable me to:
1) setup xen on my box/server with guest os’s
2) configure my modem/router
3) use/assign my static ip’s properly.
– one for each vps
– perhaps one for wan connection for normal internet access.
adsl24.co.uk have given me 4 static ip’s with unlimited download – i think this is a good starting point, and i got a compaq g2 server 4gb ram / 2×36 scsi-hd / cd from ebay.
i need to setup 2 FREE interactive database driven websites. one for uk and one for us, and may be a ouple more later.
to keep cost within my measeley budget and to have performace and control i am trying to setup my own vps.
i would be most grateful for your help .
thank you.
arif.
the_guv November 26th, 2009 at 7:49 am
@arif .. cheers for that, good to hear. Sorry, don’t quite understand what it is you need tho, can you clarify pls. Not sure I’ve time right now but maybe I can point you in the right direction, else if you want to budget me in?
The J. M. Rigden Blog » New Server & Blog November 26th, 2009 at 10:35 am
[...] domain name. If you are intersted in settting up WordPress with supercache under Nginx please visit guvnr.com. I highly recommend this site as an excellent starting [...]
Complete Linux PHP MySQL Nginx Reference - VPS Bible #20 - GUVNR November 30th, 2009 at 9:03 pm
[...] many of these pages this VPS Bible would not have been written, nor the video tutorials possible. A great big tx to the open [...]