This method is, by far (at the time of writing), the easiest way to install multiple WordPress sites on a single Digital Ocean droplet. The punchline: use Plesk 🙂
In a previous post, we talked about how to install a single WordPress instance on a with a spankin’ new GoDaddy Domain on a single shiny new Digital Ocean Droplets. Droplets aren’t expensive, the cheapest are around $5/month, but if you want to run a whole bunch of WordPress sites, for whatever reason, then it adds up quickly. This blog will show you how to configure your droplet so that you can run multiple instances of WordPress on the same $5/month. Realistically, using this method, you can only run 3 sites per droplet without incurring additional cost, but I wouldn’t recommend really doing more than that anyway for load, etc. reasons.
So, let’s get started.
Change Your DNS Config in GoDaddy
You’ll always have to do this first if you bought your site through GoDaddy or anywhere else that isn’t Digital Ocean. I reference GoDaddy here because I always use it. They are cheap and their customer service is EXCELLENT, which is paramount when running websites.
So, you’ll have to take your purchased domain name and map the domain name server (DNS) over to Digital Ocean. Below is the abridged version, since the full details of what this means can be found in my other post.
Login to your account on GoDaddy. Once logged in, scroll down on your homepage to your domains. Click on three dots in the upper right corner of the domain and a dropdown will appear. Select “Manage DNS”. This will open up the DNS management page. Scroll down to find the option for Nameservers.
Click on the “Change” button, which brings you to the configuration page. On that page, click on “Enter my own name servers (advanced)”. For DigitalOcean, use the Nameservers specified in the configuration below, using “Add Nameserver” option to create a 3rd text box. Click the “Save” button when you’re ready. You might have to consent to the changes and/or verify your identity in a pop up.
Creating Your Droplet with Plesk
The easiest way to install multiple WordPress sites on a single droplet is to use Plesk. Go ahead and click the Plesk link and it’ll open up a page for you to install this App within a new droplet as below. I usually like to enable login on my account with ssh-keys, but here I DO NOT DO IT. If you don’t use ssh-keys, then the password you set here will be the password for logging into your Plesk account which will make your life so much easier. If you’re stubborn and want to do it anyway, then you’ll have to login to the console to establish your login page. It’s pretty annoying. Anyway, when you’re done configuring everything else, create your droplet and associate it with a project. Easy-peasy.
Now, mouse-over the IP address (crossed out in the right screen above) and click “copy” when the link appears. Put it into a new browser tab. This will take you to the Plesk login page that’s driving your whole droplet now. Click the “login to Plesk” button for the login screen. Your Plesk username is “root” and the password is what you set when spinning up the droplet (if you’re NOT using ssh keys). If you’re using ssh keys, you have to access your console by clicking the ellipses to the right of your droplet, selecting “Access console”, and then type
sudo plesk login
at the console. This will generate a one time link to login to your Plesk user interface in your browser. Either way, go ahead and login! Your Plesk UI will appear!
OK, so now we just need to let Plesk setup our WordPress sites!
Using Plesk to Setup WordPress
On your Plesk UI login, click the “Add Domain” button. This will pop up a screen for you to enter your configuration. Put in your domain name and under “location of website’s files” be sure to choose “Create a new webspace”, this is what keeps your websites as separate WordPress sites. Associate them with your IP and create your username and password.
Note: This is something I find a bit annoying. Plesk makes you create unique usernames across ALL your wordpress sites, so if Site1 uses “admin” then Site2 can’t. This is only a minor inconvenience, since you can add whatever usernames (with whatever permissions) you want for each site after WordPress is created, but it’s still kind of stupid.
Make sure to check “Secure the domain with Let’s Encrypt” if you want to make a secure (e.g., https) site for free.
Note 2: For subsequent sites, you will have to go in and create them their own Let’s Encrypt SSL Certificate. It’s kind of annoying but really only takes a minute. Plesk tries to associate them all to the first certificate created.
When you’re done, click the “OK” button. Plesk will do its thing and create your site. You’ll see it created on your Plesk UI and if you check your DigitalOcean page with the project you associated to your droplet, you’ll see your new site there as well. If you go to your webpage, you’ll see the Plesk main page again, and this is how you know it worked.
The only thing left to do is hook it up to a WordPress site! Head back to the Plesk UI at your droplet ID (not your new website) and expand the settings on your new webpage. Click on the “Applications” icon on the right column. This will open a set of applications you can install and associate to the website. Click the “Install” button next to the WordPress app. This will take a few minutes, but will install your total wordpress site, databases and all.
After it finishes, your app page will pop up. On it will be your admin username and associated password. Head over to your website with the suffix wp-login.php (e.g., http://<<yourwebsite.com>>/wp-login.php) Use the credentials from your app page to login. It might ask you to verify your email, just go ahead!
Note: If you go to your site before this, and the site wants email verification, it will show as a blank page instead of the default WordPress screen. That’s a little confusing, but don’t worry. Just login on the login page and confirm and it’ll fix the issue.
There’s only one thing left to do and this is variable. You might notice you got a warning when you went to the site, because it tried to to go https but was not technically a secure site. This happens if it’s your second or third site on Plesk. You can fix this by going to the Plesk UI on your droplet page, opening the config for the website, and clicking “SSL/TLS Certificates”.
On the next page, click the “Reissue Certificate” button. A side tab will pop out and you’ll want to click the last option – Let’s Encrypt – and click the “Get it Free” button. Enter your information and click the “Get it Free” button again. I like to select the top option “Secure the wildcard domain (including www and webmail)” which selects the next 2 automatically as well as the bottom option “Assign the certificate to mail domain”.
You should be good to go now. Checkout your site and make sure that (1) it works and is not a blank page and (2) that you don’t get any security issues.
There you have it!!! To create more sites, just repeat the Plesk website creation process above. Plesk will only allow 3 per droplet without having to pay, but it’s a good gig 🙂
I hope this was helpful. It took me some time to debug these issues and navigate this process, so I’m helping it benefits others!