Posted on

Installing your MainWP Dashboard on a DigitalOcean Droplet

Preface

Over on the MainWP User group there was a few mentions on how well a small DigitalOcean Droplet performed with a large number of child sites.  I’ve never used a DigitalOcean droplet so decided to give it a test myself with the MainWP Dashboard on a Droplet and child sites on different non-DigitalOcean servers.

Let me start this tutorial with one rather large caveat, if you are not someone who is familiar with servers you will need to read some tutorials to get things up and running properly.

Don’t let that scare you! I’m as far from a server person as you can be and I was able to handle the setup without issues in about 90 minutes (and I still had to find the tutorials that I give you here)

This is a basic setup for testing purposes I would suggest that if you use this for your permanent MainWP Dashboard you will want to dive more into security hardening your server.  Security hardening a server is way beyond my knowledge-base I won’t even pretend here.

Since so much of what we need is covered in depth by DigitalOcean, I’m also not going to re-write their tutorials but link you over to them for you to complete then return here for further instructions.

What is a Digital Ocean Droplet?

A Droplet is basically a “cute” name for your own Virtual Private Server (VPS).

DigitalOcean’s services excel at price and hardware are are geared towards developers and DIYer’s so if you are not willing to get your hands dirty this may not be the service for you.

Affiliate Link

This post is going to contain a lot of links out to tutorials and other sites. The only affiliate link is the DigitalOcean link in bold right below.

This link provides me a $25 credit to DigitalOcean so I can keep testing while also providing you a $10 credit for your own testing so it’s a win – win. For more details on the link check here

DigitalOcean Referral link

With that out of the way let’s get started.

Requirements

A dedicated domain name
SSH Terminal – I decided to use MobaXterm Home edition for the test and it was easy enough
If you are new to server management, Patience! 🙂

Getting Started

We’ll start by visiting DigitalOcean’s one click install of WordPress and signing up. Once you signup you will be on the “Create Droplets page” under Choose an image select “One-click apps”.

One-click apps

For my installation I selected WordPress on 16.04 on the $10 a month droplet (remember the affiliate link from earlier will get you a $10 credit). This is the smallest droplet you can select and use the automatic WordPress install.

1604

The One-click install automatically installs Ubuntu 16.04, Apache, MySQL, PHP and WordPress saving some headaches in getting started.

Using the one click option also installs some security for you automatically including iptables, UFW and fal2ban.

Important Tutorial!

Getting Started Tutorial How to use the WordPress One-Click Install on DigitalOcean – Do not let this overwhelm you!

Before installing the MainWP Dashboard

Now that you have gone through the steps of getting WordPress setup we still need to tweak the server to work for your MainWP Dashboard.  Most options pass the Dashboard tests right right after installation however we have 3 issues.

The cURL Extension is not enabled, the cURL timeout is to short and the WordPress Memory Limit is to low.

Warnings

We’ll want to get those fixed before moving on.  Especially the cURL Extension issue so we’ll get that installed first.

Installing cURL

The WordPress one click install does not come with cURL enabled so we need to add that. At this point I’m going to assume you now have the basics of using SSH from the One-Click install tutorial. Ubuntu 16.04 gives us PHP 7 by default so we will need to install cURL for PHP 7 using the steps below:

  1. SSH into your server
  2. Install cURL by typing sudo apt-get install curl
  3. Then Restart Apache by typing sudo service apache2 restart
  4. Then get cURL for PHP 7 sudo apt-get install php7.0-curl
  5. You will have prompt to install… type y or yes!
  6. Then Restart Apache by typing sudo service apache2 restart

That’s it you now have the required cURL module installed!

Your SSH Screen will look similar to this:

installing-curl

I neglected in my notes where these steps came from so if anyone knows I’ll be happy to give credit.

Tweaking the PHP.ini file via SSH for cURL Timeout

Now that we have cURL setup we want to increase the cURL timeout to the suggested level.

There are a few steps involved here so it’s time to send you over to another tutorial:

Important Tutorial!

How To Change Your PHP Settings on Ubuntu  (I know this says 14.04 but will work fine in our version)

In our case you are going to want to adjust  default_socket_timeout = 300

Working with WP-Config.php through SSH

Now that we have fixed our cURL issues is time to dive into the final fix for WordPress Memory Limit

  1. SSH into your Server
  2. Then enter sudo nano /var/www/html/wp-config.php
  3. You should now see your WP-Config file for the site
  4. Enter in the WP-Config define('WP_MEMORY_LIMIT', '256M');
  5. Ctrl X to Exit WP-config
  6. Save Modified Y then enter

Installing Let’s Encrypt for your Droplet

Let's EncryptThis is a step you can skip for now if you want and come back to it later.

It’s always good to include as much security as you can for your MainWP Dashboard site so let’s take a few moments and install the Free Let’s Encrypt module this way we can allow communicate through HTTPS.

Important Tutorial!

Once again let’s visit a Digital Ocean tutorial for this: How To Secure Apache with Let’s Encrypt (again I know this says 14.04 but will work fine in our 16.04 version)

Finalizing

Now that we have the server setup to maximize your MainWP Dashboard potential all that is left to do is log into our WordPress site and install the MainWP Dashboard plugin.

Stay Tuned!

Now that we have a MainWP Dashboard all set up on the DigitialOcean droplet in the next few days I will be running tests with 100 child sites to see how far we can push this $10 a month hosting 🙂

Get MainWP News and Notifications

Dennis Dornon on Twitter
Dennis Dornon
Co-founder at MainWP
I am neither a coder nor a designer. My coding confession.
This is an older post so comments are closed.
You can continue the discussion in the MainWP User Group.