Blazing Fast VPS Setup: DigitalOcean Droplet + ServerPilot + WordPress(Step by Step Guide)
Recently I moved one of my niche blogs from shared hosting to VPS.
After countless hours of researching for a great VPS one name kept showing up every time: DigitalOcean. So I decided to check them out and see what the fuss was all about.
I have to say, I don’t regret it!
You can use my referral link to get $10 free on DigitalOcean, that’s 2 months of the smallest droplet for FREE.
Note: If you are not comfortable with configuring your own VPS (DigitalOcean with Serverpilot) you can test things out on a subdomain first and then move to your main domain.
What is DigitalOcean?
DigitalOcean is an affordable cloud hosting provider with prices starting at $5/month for a droplet(server) with 1 core CPU, 512 RAM and 20GB SSD storage.
That’s SSD storage, remember other shared hosting companies how much they charged for SSD hosting? You don’t have to worry about that with DigitalOcean as all their servers have SSD storage by default, you don’t have to pay a penny extra.
But VPS, what is that? Is it like shared hosting? How the heck do I install WordPress? Can I just click here and there and WordPress is installed?
Well yes and no.
VPS stands for Virtual Private Server, the problem with shared hosting is that they host multiple users on the same server.
On a VPS you are the only user.
You don’t share server resources with anyone else.
A DigitalOcean droplet is like a little server with a linux operating system.
DigitalOcean offers you a private virtual server and yes with a click of a mouse you can install Apps such as WordPress.
But you don’t get a control panel like on shared hosting to manage emails, databases and so on.
So the next logical thing is to somehow install a control panel on a DigitalOcean droplet.
To host WordPress on a DigitalOcean droplet you need to either:
- manually install and configure all the necessary software(Apache, MySQL and PHP or a LAMP stack)
- install WordPress automatically when creating a droplet (basically it installs all the necessary software for you)
- or install a control panel to host WordPress sites.
There are advantages and disadvantages with any of the above, I think it mostly depends on what you need and how much knowledge you have about running your own server.
But if you are like me, just looking for a way to host your websites on a VPS, the simplest way and the best, in my opinion, is to use a control panel which installs and configures everything for you. Also you have the advantage of making use of features such as database management, phpMyAdmin and so on.
Before we get into that lets start by creating our first droplet in DigitalOcean.
Creating a DigitalOcean Droplet
To create a droplet you must first open an account.
Opening an account is a simple and straight forward process.
How to create a droplet
- Step 1. Click on Create Droplet
- Step 2. Choose a size for your server
- Step 3. Select a region
- Step 4. Choose an image(operating system)
Step 1. Create Droplet
To create your first droplet login to your dashboard and click on create droplet.
Yes is that simple.
Step 2. Choose an image(operating system)
The next step is to choose a droplet image or operating system. Now I did I little research on this topic and what I found is that Ubuntu 14.04 x64 bits seems to be the best option.
Ubuntu 14.04 is a stable version and everyone seems to go for the x64 bits option instead of x32.
Also ServerPilot only works on Ubuntu.
Step 3. Choose a size for your server
Next you will need to choose the droplet size. The smallest one is $5/mo with 512 RAM and 1 CPU.
Is it enough? Well I am hosting two blogs with ~40K visitors/month on a $5/mo plan. So probably.
Step 4. Select a region
Lastly you have to choose a region for the server. As a rule of thumb you should choose a server region closer to your target audience.
So if most of your traffic comes from US it would be wise to choose New York or San Francisco.
Here you can also enable backups which is a nice feature to have if something goes south. But be advised that backups are charged at 20% of the monthly droplet cost, so for a $5/mo droplet the backup would be $1/mo.
More info can be found here: DigitalOcean Backups and Snapshots Explained
For the droplet hostname enter any name you like. Such as your website name for example.
Last but not least click on create and your server should be ready in a minute or less.
Add domain to DigitalOcean
Now that you have everything in place you will need to add your domain to DigitalOcean which can be found in your dashboard under Networking/Domains.
Enter your domain name and choose the droplet you’ve just created, the IP address will be automatically selected.
Finally click on create record.
Don’t forget to point your domain to DigitalOcean’s name servers.
Here is a great tutorial: How to Point to DigitalOcean Nameservers From Common Domain Registrars
Now you have your first droplet up and running with Ubuntu 14.04 and you’ve set up your domain.
But that’s it.
You don’t get any fancy control panel to host your website.
Thats where ServerPilot comes in handy.
But before we go into more detail on how to install ServerPilot, there are a few things you need to do before that.
First of all when you created the droplet you also received an email with an IP address, a username and a password.
To access your server you need to use either:
- DigitalOcean’s console
- or a SSH client such as PuTTY.
I prefer using PuTTY. It’s open source and doesn’t require any installation, just download and run it.
Open your email and copy your droplet’s IP and enter it in PuTTY.
Next you will be presented with something like this:
Now if you are like me, not that tech savvy, you reaction would probably be: “So now what?”
Bare with me it seems complicated at first but it’s actually easy.
Just use the username provided in the email and the password to login to your server. To copy paste the password just right click in PuTTY and it will automatically paste it. Be advised that Ubuntu does not show passwords not even asterisks.
When you first log in to your droplet you are asked to change your root password. Go ahead and do just that.
Now that you are logged in to your server we can proceed installing ServerPilot. By the way here is a nice list of common SSH commands that should help you manage your sever.
Open Source Control Panels vs ServerPilot
The server is up and running, next we need to install a few programs so that we can host WordPress websites. Usually you will need Apache, MySQL and PHP or for short a LAMP stack.
But I’m not that familiar with installing them!
Sure I heard of them I have basic knowledge about them but I have no idea how to install and configure the necessary software. That’s just me.
That’s why I need a control panel, because most control panels install and configure everything for you.
Ok but which control panel to choose?
I did some research, in fact I researched this topic for close to a week before I came to my conclusion.
It seems that the way to go is by using an open source control panel and there are quite a lot of them available. So I decided to test them out:
Here are some of the few I looked at:
- Ajenti
- Kloxo
- ZPanel
- Virtualmin
- Vesta Control Panel
- Froxlor
- Sentora
- ISPConfig
Most of them are good especially Virtualmin, but they are either way to complicated or way too resource hungry. Being on a VPS every penny counts so it’s a great idea to choose a control panel that is as lightweight as possible. This way all the power of the VPS is used to run websites not the control panel.
I mostly liked VestaCP and Sentora. But I did have a few issues with both of them.
VestaCP is quite interesting and simple to use, but I just could not make ftp to work. 3 days and I still haven’t figure it out so I ditch it and tested Sentora.
Sentora is beautiful but I didn’t like that it was a little resource hungry.
So I decided to search again for a control panel.
After a few hours of searching I discovered ServerPilot
What is ServerPilot?
ServerPilot is a control panel specifically designed for DigitalOcean droplets. No it’s not open source but it is free. They have paid versions as well if you need extra features and priority support.
What you need to know about ServerPilot is that:
- it’s free
- integrates flawlessly with DigitalOcean
- it’s a fast lightweight control panel for your servers, by far the best one I found so far.
- the necessary software to run WordPress is installed on your server but the control panel is in the cloud(at ServerPilot)
- it’s secure and very easy to use
- you can install apps like WordPress, use ftp and manage mySQL databases easily.
How to setup ServerPilot on a DigitalOcean droplet and install WordPress
To get started you will need to open a ServerPilot account.
In order to set up ServerPilot with DigitalOcean and install WordPress you have to:
- Step 1. Connect droplet to ServerPilot
- Step 2. Create an app and install WordPress
Step 1. Connecting your DigitalOcean droplet to ServerPilot.
In order to do that simply login to your ServerPilot account and click on connect server.
Enter the droplet IP address, root password and choose a password for SFTP. After that click connect to ServerPilot
As I mentioned earlier ServerPilot only works on 64-bit Ubuntu 14.04 or 64- bit Ubuntu 16.04 droplets.
Additional resources:
After the droplet is successfully connected to ServerPilot you will be able to see the connected server in your ServerPilot dashboard.
Congratulations you’ve successfully installed ServerPilot on your VPS.
Easy wasn’t it?
Now that all is up an running you can finally install WordPress.
Step 2. Install WordPress
In order to install WordPress first you will need to create an app. In your ServerPilot dashboard navigate to your recently connected server and click on create app.
Enter your app name and domain name.
Next click on the WordPress checkbox and enter your desired information.
Lastly choose your PHP version.
Finally click on create app.
Shared Hosting vs DigitalOcean
One thing I just can’t resist is to talk about the huge difference between shared hosting and DigitalOcean.
I will briefly outline some of the advantages of a VPS vs shared hosting.
The cost
First of all it’s the cost, a good shared hosting provider costs roughly $10/mo, doing the math that’s $120/year.
Wheres a DigitalOcean droplet(the smallest one) costs 5$/mo. thats $60/year, half the price of shared hosting and much more powerful(for me at least)
Speed
On shared hosting my website was loading quite fast.
I did a case study a while ago and on average(at that time) my website was loading in 1.19 s.
But now my website is insanely fast loading in 694 ms. Sometimes its down to 300 ms.
IP Address
Another major advantage of DigitalOcean compared to shared hosting is that your IP is not shared with other users and websites. Which is great!
In Conclusion
When going for a VPS things may seems very complicated at first, but actually it’s not that hard.
Sure you have to install things and use a terminal but after the process is completed everything seems to run smoothly (at least in my case).
I suggest trying it with a subdomain first and test things out. Then when you are comfortable with your setup you can proceed with your main domain name.
VPS or shared hosting which one do you prefer and why? Just let me know in the comments bellow.
My take on this is …
well…shared hosting is ok, but a VPS is much better.
Thank you very much Denisa. My site just finish set-up. Before I found this guide, I already have account DigitalOcean, so I can’t use your link for donation.. I’m sorry for that.
Before using serverpilot, I tried to install with easyengine but it did not work. I do not know why, I’m just a beginner in the VPS.
Hi Fuadi Mukhlis,
I’m glad you found the guide useful, that’s why I wrote it.
10$ you have to pay to use the analytics from serverpilot!! please add to the guide at least.
Hi oriol,
You are right, the stats feature is a premium one.
But you can monitor CPU usage and bandwidth in DigitalOcean dashboard.
Thanks for your comment.
wow this is what iam looking abount..i heard about serverpilot before but never know what the result is …but you clearly explained from installation to execution …awesome tutorial..
i have some few questions.
how many apps can i run on one droplet of 5$/m plan?
how many visitors 5$/m supports?
Hi samarpan,
I’m running 2 apps on a $5/m droplet with a total of ~57k uniques/month (at the moment)
The RAM is at about 60% and CPU usage is about 5-10%
Hope this helps!
Thanks for stopping by
I spent my weekend trying to configure the server in Digital Ocean and then gave up and installed Sentora on it, installed WordPress and started uploading file. I was all set to move the server and then I stumbled upon this one.
I was so much impressed with Serverpilot that I destroyed the Droplet and Created a new one, this time with Server pilot.
Thanks for your awesome guide.
Hi Asif Ahmed,
I’m glad you found the guide useful.
I also tried Sentora but I’ve found Serverpilot to be much better for me as it’s lightweight and doesn’t require that many resources to run.
Thanks for stopping by!
I can not explain how this has helped me I have a server set up with cpanel but its to much and I just need something simple that gets the job done. Thanks to you I am making another droplet this time using server pilot.
Thanks again glad I found your site.
Aires
Hi Aires Dagraca,
I’m glad you found the guide useful.
That’s why I decided to write a step by step tutorial for anyone who’s interested in setting up a VPS really fast and without any headaches.
All the best
Very good guide… thank you so much Denisa for writing this wonderful write up..saved a lot of time for me…server pilot with Digital Ocean really rocks…
Hi Vivek Nikathithara,
Thanks for your comment, I’m glad you found the tutorial useful.
Thanks for this article Denisa, it was a super help! I’m not a coder either so decided to write down for myself what I was doing each step of the way to make myself accountable. After following your tutorial I wanted to add the CDN CloudFlare into the mix, as well as some other speed boosts. I wrote a step-by-step here if anyone is interested – http://3dmybusiness.com/migrating-wordpress-from-shared-hosting-to-digitaloceans-5-vps-with-zero-downtime/
Hi David,
Thanks for stopping by!
I’ve looked at the article you mentioned, awesome work!
Thanks Denisa! Keep up the good work. 🙂
Hi Denisa,
Thank you for this review of ServerPilot.
In case it’s helpful, we just launched a one-click WordPress installer and a way to connect servers without using SSH or PuTTy at all. Here’s our blog post about the new features:
https://serverpilot.io/blog/2015/07/22/one-click-wordpress-and-automatic-serverpilot-installer.html
Thanks!
Justin
Hi Justin,
Let me say just…wow! ServerPilot gets better and better! A one-click WordPress installer was exactly what was missing.
Keep doing a good job and thank you for stopping by.
Hi! So, do you have two websites in the 5usd droplet? Did you do some extra settings, besides the things you said in this article? I want to migrate my site to DO, but i don’t know which one should be ok.
Thanks a lot!!!
Hi Agustin,
Yes I am running two WordPress websites at the moment on a $5/mo droplet without any problems. I am not using any special settings at all.
In fact the two websites generate (as of now) more than 100k monthly visits and the server is running smoothly with lots of resources unused. That’s quite awesome!
Let me know if there’s anything I can help you with.
Hi Denisa,
What do you use in regards to email on websites you have hosted on VPS? I find this the most difficult part of running a VPS, and I tend to just create a seperate email so I don’t have to set it up, just wondering there is an easier way that you have found?
Love the blog, keep up the great work.
Jay
Hi Jay,
I’m using gmail for email because ServerPilot does not include an email server.
I am not familiar with other email servers that run on VPS so I can’t really give you other options besides using gmail.
Thank you for your comment.
Will definitely look into it. Is gmail fairly easy to setup with digitalocean? The last time I tried I gave up within about an hour of pulling my hair out trying to get it to work!
I’m actually using a regular gmail email.
Hope this helps
Hello;
Nice tutorial, i use Linode and Serverpilot, so simple and good. hopefully no more Shared Hosting 😀
Hi kingsley,
It’s great to hear that you are using ServerPilot with Linode!
I’ve hosted my websites on shared hosting for quite some time before I switched to a VPS, mostly due to the fear of configuring my own VPS. I hope this guide will be helpful for others who want to switch from shared hosting to VPS.
Have you tested the website with Serverpilot if it can handle large traffic, say 500 concurrent users?
I followed the tutorial but when my website, http://www.vintanews.com, was tested for 500 concurrent users, blitz.io revealed that the site a lot of errors and almost 0 hits.
Hi Frederick,
Yes I have tested my website but I can’t remember how many concurrent users I selected (I think somewhere between 20-50) but I’m not sure as it was some time ago. I can’t even remember what service I used but I do remember that the server was performing very well.
As for your question I don’t know what to say exactly, 500 concurrent users is quite a lot. I’m not sure how a 5$/m droplet would handle that many users.
What droplet size where you using for the test? I think it’s more of a server resources problem rather than a control panel problem. I assume the server couldn’t handle that many users and it froze.
Hope this helps!
Excellent article. Although i already had DO hosting i can’t keep all the details in my head and this one is a good reminder.
How do you monitor ram usage?
Hi hugo,
I monitor RAM usage using PuTTy, whenever I connect to my server it displays RAM, disk usage in % and CPU load.
Hope this helps
You save my time a lots! Now ServerPilot go far. They have auto install WordPress so it is no more copy and edit wp-config.php (unless you move from another) It is so good for people to start with cloud hosting! simple setup and you go.
Thank you
Hi EMily,
Couldn’t agree more with you, ServerPilot is truly awesome and the WordPress auto install is quite convenient.
Thanks for your comment.
Hi, Denisa. I love your tutorial. I’ve been using ServerPilot alongside with my DigitalOcean droplet. How can I add another domain and host it with my droplet. Host 2 domains for one droplet. Thanks.
Hi Fizz,
I’m glad you found the tutorial useful.
You can add another domain in your DigitalOcean dashboard and then create an app in ServerPilot for that domain name.
Hope this helps
Thanks for the excellent guide. Just wondering, have you added mod_security, CSF firewall, fail2ban, or any other security measures in addition to what serverpilot provides? It seems like an awesome offering, but doesn’t include a lot of the security extras that are suggested in many of the digital ocean and linode user guides…
Hi DT,
I haven’t added any other security options to my ServerPilot configuration other than those provided.
Thanks for stopping by
Thanks for the informative article .
I was trying to decide which VPS hosting I should use and ended up trying Digital Ocean (and I used your affiliate link 😉 ).
Unfortunately, ServerPilot did not work for me even with Justin’s advice in one of the replies. The droplet is newly configured yet the SP installation kept failing (don’t know if there’s a log I could check for errors) and kept asking me to respin a new droplet. I gave up on that.
Anyway my wordpress finally worked after installing things manually.
Hi Denisa, I’m overwhelmed with Digital Ocean. I’m not techie person. But that’s okay since there are a lot of guides in the internet (including yours!)
My question: how to access the webmail? since my main email is something like info@domain.com.
Hi Kristine,
Serverpilot does not include an email server so if you are using DigitalOcean with Serverpilot you can’t use an email with your domain name.
Yeah, I tried Serverpilot, it’s very easy!
Then, do you have suggestion to manage our domain email? Because I using it for my primary email for that website.
Thanks
Hi Kristine,
Sorry I don’t have any suggestions.
Hi Kristine,
I realize this is over 2 months old, but if it helps, I host my websites using DigitalOcean + ServerPilot and use Zoho Mail (https://www.zoho.com/mail/) for my email (free for up to 25 users ea. with 5GB mailbox).
Jeff.
try zoho.com/mail it’s free and offers up to 50 custom emails
thanks for the amazing post, wasn’t sure how to work it out. thanks bro 🙂
Hi Dan Klat,
I’m glad you found the post useful.
Hey,
Thanks for the great tutorial, helped me into taking the scary plunge into a VPS.
My website is now running much faster overseas away from my home server compared to the cloud hosting I was using before.
It looks like ServerPilot have updated a few things as well, they’ve automated some of the steps in the process making it even easier.
The only problem I had was with W3 total cache and the PHP 7 setup, I’ve posted a link to the solutions below:
https://github.com/gadelkareem/wp-w3-total-cache/commit/e71030e89f4cd666742ae2ec39451782beb42f3a
I love that ServerPilot creates you a full log folder in your FTP to route out any problems.
Keep up the good work!
James : )
Hi James Gil,
I’m glad you found the tutorial useful! I am aware that ServerPilot has updated a few things making the process simpler.
I’ve encountered the same problem with W3 Total Cache and PHP 7, thanks for providing the link.
hi denisa, very good tutorial ! can I install multiple wordpress on serverpilot ? if so, how to build that ?
Hi febri,
Yes you can install multiple WordPress websites on ServerPilot.
Here is a tutorial how to do it properly:
https://serverpilot.io/community/articles/how-to-host-multiple-wordpress-sites-on-one-server.html
thank you very much denisa, it works..now serverpilot can instantly install wordpress, so we don’t need to upload and make a database manually..
How about how to configure PHP
ServerPilot configures everything for you.
Hope this helps
I am using google apps for email. I am not tech guys could you tell me that google app works with DO
Hi Nitin,
I can’t really answer your question as I don’t use Google Apps for email.
yes, DO works with google.you can find option in DO networking panel to auto add MX records of google to make it work.
Hi Denisa,
Love your tutorial, but wanted to let you know it appears to be out of date. Your screenshots do not match with how Digital Ocean looks today. I could not get past the section about creating a domain, because you also have to create the DNS records — but your tutorial doesn’t address this.
Hi Colby,
Thanks for your comment. The tutorial is a little old I am planning to update it when I have time.
You can add your domain, in your DigitalOcean dashboard navigate to Networking/Domains – Add a domain. Enter your domain name and point it to your droplet.
Here is a great tutorial: https://serverpilot.io/community/articles/how-to-configure-dns-on-digitalocean.html
Hope this helps