Setting up WordPress MultiSite on DigitalOcean

Posted by Andrew on June 23, 2013

When you click Create Droplet ensure that you name the droplet with the name of the domain that you want to point to it.

Put your domain name without www here

When you get to the point where you are going to ssh in to your server if you have recently destroyed a Droplet and recreated a new one its possible that DigitalOcean will give you the same IP address you had before (happened to me for this tutorial). That means you will have to remove the old RSA key from known_hosts so that you can add the new one.

$ ssh-keygen -R {ip.add.re.ss}

Initial Server Setup with Ubuntu 12.04

Now type exit to close the root SSH connection and now SSH in as the new user you just created.

$ ssh andrew@123.45.67.89

How to Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu

How to Set Up a Host Name with DigitalOcean

DNS Tips and Tricks

How to Install Wordpress on Ubuntu 12.04

Make sure that your domain name is resolving correctly before finishing the final setup of Wordpress. Said another way, ensure that you see something like example.com in the URL bar instead of your Droplet's ip address 123.45.67.89.

How to Set Up Multiple WordPress Sites Using Multisite

Click on Tools > Network Setup

Choose subdomains as method of installing new sites. Make sure you have a CNAME record that points asterisk ** * ** to @.

$ sudo nano /var/www/wp-config.php

Add

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'domainname-not-ip.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
$  sudo nano /var/www/.htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

FTP

Install VSFTPD

Add this above chrootlocaluser=YES Found here: www.sigerr.org

local_root=/var/www

Restart

$  sudo service vsftpd restart

Now make /var/www writeable by WordPress (before I was using chmod to set /var/www to 755 which wasn't good enough)

$ sudo chown -R www-data:andrew /var/www

Manually Download and install Domain Mapping via FTP

  • You Can Not Install this Using the built in Installer *

WordPress MU Domain Mapping

Not using virtual hosts but this is a link if needed

Virtual Hosts for multiple domain names