WordPress Multisite Network Hosting
WordPress Multisite is a feature of every WordPress installation which can be used to create scalable, optimized, fault-tolerant managed hosting networks.
If you’ve ever registered a site on WordPress.com, then you’ve created a site on a multisite installation of WordPress. It’s actually very easy to enable multisite on any WordPress installation. In this post I’ll explain the steps to create a simple, yet powerful WordPress hosting solution with the help of WP Ultimo and a few other important plugins
Logged into a google account, go to Google Cloud Launcher for a Bitnami certified copy of WordPress multisite. This will launch a Compute Engine instance on Google Cloud Platform (GCP) with a stack that is constantly being monitored and improved by Bitnami.
Change the deployment name to reflect your project. I would recommend choosing a better machine than the micro instance, preferably one that’s not shared.
Personally, I prefer to have an SSD Persistent Disk as a boot disk with at least 50GB of space.
Finally, make sure you allow https and http traffic.
Click the deploy button at the bottom and wait for the deployment to finish. You should be redirected to the deployment manager where you can see the instance’s information and helpful documentation.
Configuring the Deployment
You should now be able to access your WordPress multisite network by pressing the site address in the information box.
The suggested next steps after deployment appear just below. At some point it is important that you change your password in the /wp-admin/ WordPress backend. Right now, you will need to change your ephemeral ip address to a static one by going here and making sure you are on the right project.
From here on out, you should rely heavily on the official Bitnami docs for WordPress multisite. The first thing you’ll notice in the docs is a warning at the top explaining xip.io and why you should use a custom domain.
Before this, you will need access to your server via a console or command line. There are at least a couple of ways of doing this. The simplest way is to press the “SSH” button back at your deployment information box.
You can also set up SSH keys on your local machine, give them access in Google Cloud console, and establish a connection with your command line. You can find instructions for that here. Click the first set of instruction (Google Cloud Launcher). Once you’ve created your local keys and set them up in the console for your project, you can scroll down or click here for instructions on connecting to your servers in your command line.
Remember which SSH key you’re using since you’ll also need it for FTP (SFTP) access.
If you haven’t already figured it out, you can see your site by entering the IP address in your browser url bar.
You’ll notice that there’s a Bitnami banner that will load no matter what changes you make in WordPress.
In order to remove the banner and configure a custom domain, you’ll need to login to your server console via SSH, then enter
cd /opt/bitnami/apps/wordpress to change directories.
sudo ./bnconfig --machine_hostname your-domain.com to change the server’s host name.
sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1 and restart the server with
sudo /opt/bitnami/ctlscript.sh restart apache to remove the banner.
sudo mv bnconfig bnconfig.disabled so the server won’t reset the hostname on restart.
Finally, from the Bitnami docs:
Update your domain’s DNS settings, specifically adding an A record that points your domain to the static IP address of your cloud server. If you’re in a hurry, or just testing things out, you can instead modify your local hosts file to map your domain to your server’s IP address.
If you’ve followed the steps correctly and your DNS changes have propagated, you’ll be able to reach your WordPress main site via your custom domain name (example.com).
Hosting Multiple Sites
You are now ready to create subdomains or subdirectories of your main site and domain (example.your-domain.com or your-domain.com/example). With the help of plugins, you can map these subdomains/subdirectories to other custom domains (other-domain.com) and thus create a network of independent websites with one installation of WordPress. The only shared table in the database is the users table. If you don’t want users within your network to overlap, WordPress multisite might not be for you.
These solutions are great if you want to add new client sites manually and if you don’t need to charge subscriptions. However, you might want a plugin that gives you all the tools for a commercial solution for WordPress multisite hosting that allows you to charge for subscriptions and services on your network. If that’s you, read on.
If you’ve read about multisite in the past, you might be familiar with WPMU DEV’s Pro Sites. While they offer great products and services, if you want to have complete, fine-grained control over your hosting network, WP Ultimo is an amazing product by NextPress that is fully-featured with optional premium extensions. You can find their products in my affiliate link here.
Once you purchase WP Ultimo, you’ll get a download link. Now you just need to upload the .zip file in your plugins page and network activate it.
WP Ultimo has a very straightforward setup wizard that lets you have full control of network permissions, trial periods, payment gateways, quota limits on specific post types or media, and more.
You’re gonna need to edit files on your server for the second step. If you know how to edit files from your console, you can SSH into it like before. I would recommend setting up SFTP access because you will probably need to edit files on your server a lot. Using a service like FileZilla, you can connect to your server like so:
You can then navigate your server through a visual interface. You can find your site’s content by clicking “apps -> wordpress -> htdocs -> wp-content”. The rest of the setup wizard is straightforward.
The last thing you need to until WP Ultimo is production-ready is enter your api keys for each payment gateway you want to accept. You can find the settings page in the network sidemenu or entering “your-domain.com/wp-admin/network/admin.php?page=wp-ultimo&wu-tab=gateways”.
Go through the rest of the settings tabs to configure the network to your liking. You can configure things like domain mapping, SSL access, subscription settings/permissions, network emails, site templates, etc.
Once you’re ready, all you need is a slick main site with a
[ wu_pricing_table ] shortcode to let your clients pick a plan and start a subscription. That’s it, good luck!