As a web developer, my clients ask me a lot what the best web hosting service provider is. While I don’t ever really have an answer to what the best provider is, I can tell them (and subsequently, you) that a VPS (virtual private server) offers the most flexibility at a reasonable price.
What Is A VPS?
If you’re unfamiliar with the concept of a VPS, you’re not alone. It’s a relatively new concept in web hosting, but it offers a lot of freedom in terms of what you can do, and how you can make it work. If you’ve ever heard of a virtual machine, the concept is the same. A VPS is basically a virtual machine running on the network of the service provider that you have complete control of. For the purposes of this article, the idea is to have a full Ubuntu 16.04 server, which we have full root access to. That server is ideally going to be running an optimized web hosting server application, which we are responsible for managing.
Root Access? I’m Responsible? What? I’m Scared!
It’s perfectly understandable to be concerned. Linux server administration is typically not for the faint of heart, requiring a certain degree of comfort with SSH and the Unix command line. Don’t worry though, for the purposes of this guide, I will be walking you through the process of setting up your web site using a tool called ServerPilot, which makes the process very simply, and will manage configuration, security, and updates automatically. Now anyone can be a sysadmin!
The first thing you’re going to need is a VPS provider. I’ve tried several providers, but in my personal (and purely anecdotal) experience, I find Digital Ocean to be the best all around VPS hosting provider. There are others, like Linode and Vultr, but I can’t cover all of these, so I will be sticking to Digital Ocean for the duration of this guide.
To sweeten the deal for you, I’ve got a referral link for you that will give you $10 of free credit to start with, so you can practice without paying, and see how it works for you.
After you create your account and get your free credit, the first thing you need to do is create your server. On Digital Ocean, these are called droplets. Each droplet is for all intents and purposes considered to be its own server.
After clicking that button, you will be asked a few questions about distributions, and size. Select Ubuntu 16.04.2 x64, and if you’re only hosting one or two small sites, select the smallest size, or you can bump it up one notch if you’d like a bit more performance.
Don’t worry about the block storage option, and choose a datacenter region closest to you. For me, that’s New York. You can optionally enable backups for the sake of safety, but I’d recommend leaving that alone until you’re sure this works well for you. At the bottom you can choose your own hostname. Simply call it something like “yourdomain.com” to keep things simple.
After you create the droplet, you will be emailed your root login. You’ll need to download an application called PuTTy, available here. Input the IP address of your server that was emailed to you, and use the password you received in the email.
When you login for the first time, you will be prompted to change your root password. Make it something you can remember, but make it secure. It is very very bad if anyone else gains access to this.
Integration With ServerPilot.io
Obviously, you are not a seasoned Linux system administrator, and you don’t want to be. You simply want your web site online, and secure. This is where ServerPilot comes in. ServerPilot will automate the process of setting up your web site, and keeping your server droplet updated and secure (taking care of advanced configurations like an NGINX reverse proxy, HTTP/2, SSL, fail2ban, iptables, and more). The basic version of ServerPilot, which is probably fine for most people, is 100% completely free. If you’d like to check out the paid options though (HTTP/2, SSL, and statistics monitoring require a monthly subscription), I have provided a link for $10 in free credit to try out the paid version for free for one month.
Go ahead and create an account with ServerPilot, and once you are logged in, click the “Connect Server” button at the top of the page.
Remember that IP address that was emailed to you earlier with that root login? This is where you are going to need it. Input the IP address of your droplet, and provide the root password (remember that you changed it earlier, so provide the new one). The SFTP password is the password that ServerPilot will set for its default user. This is how you will also be connecting to your site to upload files, so make it something you will remember, but also make it secure. This is separate from the root login.
At this point, ServerPilot will connect to your droplet and begin configuring everything it needs. Just sit back and let it do its thing. When it’s done, you can add your site!
Adding Your Web Site Using ServerPilot
Now that our VPS/droplet is online and set up with ServerPilot, we can add our web site(s) to the server. ServerPilot calls them “Apps”, in the sense of “web apps”. Don’t get confused, it’s just another term for a web site. Go ahead and click “Create App” and input the settings for your site. If it’s a WordPress site, check the WordPress box. You can leave the PHP configuration set to its default, but if your site doesn’t work later, come back and change it to something else until it works (this is extremely unlikely to happen).
If you selected WordPress, make sure to remember the password. ServerPilot will automatically install WordPress for you, and you will receive an email with a link to the new installation. At this point, you’re just about done! If you didn’t select WordPress, then use an FTP program like FileZilla to connect to your server using the serverpilot user and password, and then upload your site. Otherwise, in the case of WordPress, simply log in and start editing!
Mapping Your Domain Name To Your VPS
Don’t forget to log in to your domain name registrar and update your DNS records to point to your new VPS. Simply find the “A” record for the domain name you wish to use, and replace the IP address with the IP address of your droplet/VPS. It might take a short time to update, but after that, you’re all done! Now you can host a super fast web site for as little as $5/month.
Depending on your specific needs or web site, there might be more steps involved, but that would be outside the scope of this guide. This guide is intended as a quick start guide for someone looking to get started with their own web site. If you already have a web site and wish to migrate it to a VPS, then more steps are involved. In the case of a WordPress site, I would recommend the use of a third party plugin like All-In-One WP Migration to import a copy of your site. Make sure to make the backup before you change DNS settings! Of course, if you need help, you can always contact us for help.
It’s also worth mentioning that this guide should mostly apply to any VPS provider, virtual machine, or Linux based server that you have access to.