Home WordPress Deploy – A million ways to deploy WordPress
Post
Cancel

WordPress Deploy – A million ways to deploy WordPress

I have used a lot of WordPress Deploy systems and tried a lot of ways do deploying WordPress. Some things I tried were not so smart, some of them outright stupid. There is really nothing worse than waiting 15 min for your WordPress site to deploy only to see that you missed a 10px margin. Puff 15 more minutes gone. I have been there. Or you are about to show a site to a client when you realize this tiny mistake that you have fixed locally but you didn’t deploy yet. Facepalm.

Before we talk about possible solutions, let us talk about what an optimal (magical) WordPress deployment system looks like. Our magic system should focus on:

  1. Time – Deploy almost immediately
  2. Ease of use – Be a single command
  3. Rollback – Should be reversible

There are definitely other criteria like time your production site is down or security or price and many more, but in my eyes Time, Ease of use and Rollback ability are the most important ones to me.

WordPress Deploy – What options do you have?

Old School WordPress Deploy – FTP and MYSQL export

The traditional way of deploying a WordPress site is using plain simple old school FTP and MYSQL. I will save myself beating an old horse to death and point you to the best resource out there:

Migrating WordPress Sites by @BillErickson

Pros:

  • Works on all hostings
  • Free

Cons:

  • Very Time consuming
  • Many errors possible
  • Rollback? What is that…

Plugin WordPress Deploy

A bit more advanced, but still super time consuming. The good part here is that it takes a way a lot of the error source from the manual old school WordPress deployment method plus on every time you make the manual transfer, you can keep the downloaded package and keep it as backup. This was my preferred solution for a long time.

The plugin I have used many times is: BackupBuddy

There are a ton of plugins that do this, to find other plugins to deploy use any of these keywords: clone, transfer, deploy, backup, migrate

Pros:

  • Works on all hostings
  • Manual errors almost eliminated
  • Save copy as Backup

Cons:

  • Price
  • Time consuming

WordPress Manager Plugin Deploy

Another option to deploy your site is to use one of the many WordPress Managers out there like ManageWP, MainWP or InifiniteWP. There are many more out there, all of which I have only started to test yet, for a better overview, check out:

this blog.

Ps, one I will investigate soon is WordShell. A bit geeky, but right down my ally.

=== Update 27 Dec 2014

I did buy and try WordShell. I did really like their patch feature, meaning if you change/hack a plugin (which you shouldn’t), it will try and add your changes into the next version.

I had quite a hard time to get it to run the first time. Rollback did not work for me and some sites I could not setup. This wouldn’t have been a problem except that support was not responding after answering twice.

Summary: Stay away from it.

===

Pros:

  • Fast
  • Offer backup
  • Visual

Cons:

  • Price
  • Extra worker plugins
  • Connect to localhost isn’t easy
  • Work with mouse from dashboard

Version Control Deploy

Now we start talking. I hope you are using some version control (if not, check out this video series: Git Introduction). This is really handy to keep your files in sync and also deploying your files. You are left alone though when it comes to your database. Your options for the database are

Another plus of this method could be that you are on a host that supports and welcomes version control deployment, like WPEngine or SiteGround the big downside though is that you must have SSH access which is not always the case. There seems to be one solution though to deploy with GIT via FTP: GIT-FTP

Pros:

  • Fast for files, slow for db
  • Free

Cons:

  • SSH access
  • DB needs special treatment
  • Learning curve

Deployment Frameworks and Scripts

We got there. All of these frameworks and scripts are not specifially tailored to WordPress. They all share one common thing, the ability to execute commands on a remote server. For this you need SSH and the ability to connect to your remote host via SSH. There are solutions with less flexibility like:

or you can tackle full blown deployment frameworks like

Pros:

  • Very fast
  • Easy to use (once setup)
  • backup
  • rollbacks (not for Grunt using WordPress Deploy)

Cons:

  • Learning curve to setup

WordPress Deployment without SSH

I want to touch on the options you have if you dont have SSH. If you need to deploy to a host without SSH, you can use any of the following methods

  • Old School Deployment (No risk no fun…)
  • WordPress Plugin Deployment
  • Deployment app like FTPloy
  • Command line GIT-FTP or Wordmove (or possibly WordShell)
  • ???? (what do you use that isn’t listed?)

What I currently use

Right now I am currently using Grunt and WordPress Deploy for all my deploying. The main disadvantage is that I dont have a rollback option. The good news is that on every deploy I get a backup of my db and of course I am using GIT to version control my code. For any hosting without SSH I still use good old BackupBuddy. Along with these, I’m also using website care plan to keep my WordPress site updated and backedup.

In the future I plan to checkout WordShell and want to invest some of my time into Fabric since I really like Python. Far down the road it would be really cool to have a solution that would do incremental db deployments. I feel like this should be possible seeing solutions from: http://blogvault.net/incremental-backups/, https://vaultpress.com and https://wpstagecoach.com.

You made it until the end, you must be more geek than I am 🙂 Do you have a good method for deploying WordPress? If you have a good solution, pls share it in the comments.

Are you interested in WordPress Front End Development, check out this overview of WordPress Front End Developer Tools you could potential be using.

This post is licensed under CC BY 4.0 by the author.
Trending Tags