How to Install WordPress on DigitalOcean

DigitalOcean is one of the most popular server providers. It’s designed for developers and their pricing has always been transparent. You can connect servers hosted at any provider to SpinupWP, but it’s less complex to provision new servers with DigitalOcean. DigitalOcean is fully integrated with SpinupWP, meaning you can connect SpinupWP to your DigitalOcean account and spin up servers at DigitalOcean directly from the SpinupWP dashboard. No need to bounce back and forth between two dashboards copying and pasting bits of information.

If you haven’t already, you’ll need to sign up for SpinupWP and click Spin Up a New Server from the dashboard.

In this doc, we’ll cover:

  1. Adding DigitalOcean as a Server Provider
  2. Provisioning a Server
    1. DigitalOcean Server Options
    2. Server Settings
    3. Database Settings
    4. Installing MySQL
    5. Using an External Database
    6. Run the Provision
  3. Next Steps

Adding DigitalOcean as Your Server Provider

Let’s go ahead and connect to DigitalOcean. Before you start this process, you will need to sign up for a DigitalOcean account (<< new to DigitalOcean? Receive $200 in DigitalOcean credits when using our special link to sign up) if you don’t already have one.

Select DigitalOcean from the list of available providers, and SpinupWP prompts you to authorize with your DigitalOcean account.

If you’re not already logged in to DigitalOcean, you will be asked to do so, and then you’ll be prompted to authorize SpinupWP to access your DigitalOcean account. If you have more than one team in your DigitalOcean account, you will need to choose which team servers you provision via SpinupWP should be created under.

Provisioning a Server

DigitalOcean Server Options

Now you choose which DigitalOcean region the server should reside in and choose between CPU and storage options based on availability for the selected region. Finally, select the size of the server from the available options based on your region, CPU, and storage preferences. We recommend production servers have 2 GB or more of memory. Servers can always be upgraded to a larger size later from the DigitalOcean dashboard but the server will be offline while it resizes. For more help choosing a server size, check out the Server Size doc.

We can also select to have DigitalOcean perform full server backups at an extra cost. This is not to be confused with SpinupWP’s site backups feature which only backs up site files and database, rather than the entire server.

digitalocean server options screen

Server Settings

Next you need to enter a hostname for the server, so you can distinguish servers from each other. For example, if you are spinning up a new server for a client site, such as xyzvanlines.com, then using the domain name is recommended. If you are spinning up a server for your agency to use for a bunch of client staging sites, you might want to use something like staging.turnipjuice.media.

On this screen you will also be able to configure the server timezone. The selected timezone will determine when server cron jobs run as well as the date format of some log files.

You will also have an opportunity to enter an optional post-provision script on this screen. This is a one-time script which will be run on the server once the provision process has completed. This is handy if you have any additional packages you know you will want to install on the server.

Database Settings

Lastly, you can choose to install MySQL on the server or connect an external database server.

Installing MySQL

Installing MySQL on the new server is very straightforward. The only option you need to think about is the database root password.

A random secure database root password is generated for you, but you can change it to something else if you prefer. You may want to note it down or store it in a password manager for future reference, but you can always reset it in SpinupWP later.

Using an External Database

Using an external database requires a little more configuration, but offers many benefits.

When using an external database you will need to select from a previously identified external database or provide the connection information for a new database. This Hostname, Port, Username, and Password information should be available to you within the interface of your database provider.

If you’d like to use a dedicated external database within your DigitalOcean account and haven’t yet provisioned one, this is a good time to do so. Follow our Setting up a DigitalOcean managed MySQL doc for step by step guidance.

The Name you provide for an external database helps you distinguish between different external databases within SpinupWP. Be sure to choose something meaningful.

Many hosted database providers require you to maintain a whitelist of allowed IP addresses. Be sure to add the IP of the new server we are provisioning to this list when it becomes available a few steps from now.

Run the Provision

Once you’re happy with the settings, click Provision Server and the server will start to be provisioned for you.

This process takes around 10 minutes, but you don’t need to stay on the screen and wait. We’ll email you when it’s complete and put a notification in the top bar in the app.

The IP address of your new server will be provided during this process. If you are using an external database, don’t forget to add it to any whitelists with the hosted database provider.

This can be done from your DigitalOcean dashboard by selecting Database from the left navigation menu, selecting the relevant database from the listing, and clicking into the secure this database cluster section. From here you can add or remove IP addresses to control access.

The server is provisioned with the latest stable server software (Nginx, PHP-FPM, Redis) for hosting WordPress sites. The following docs will help you understand more about how the server is set up and configured:

Next steps

To continue your setup and add a site, see our Getting Started doc.

What to expect after adding a site? You’ll have the option to configure your server and sites to your needs via the SpinupWP dashboard.

You’ll be able to quickly enable page caching. When enabled, SpinupWP configures full page caching, essentially turning your site into a static site and dramatically improving the load time of your site.

You can also toggle on an SSL certificate to enable HTTPS. This generates a free Let’s Encrypt certificate so you don’t have to manually manage this yourself. If you’d prefer to use a custom SSL certificate, you’ll have the opportunity to upload that instead.

If you’re looking to add rewrite rules or prevent PHP scripts from being executed in the uploads folder, the Nginx settings steps will cover that.

We’ll also cover enabling SFTP & SSH access to your site and setting up site backups.

SpinupWP can take care of automated daily site backups which include full backups of your site files (media, themes and plugins). You’ll have the option to backup to Amazon S3, DigitalOcean Spaces, Akamai/Linode, Google Cloud Storage, Wasabi or Backblaze B2.

Follow our Getting Started Guide for step by step instructions for all of the above mentioned features and more.