Well, it saved his website anyways. I had done everything right, or at least so I thought – except the client had allowed their domain to be renewed without renewing their hosting.
Normally this isn’t a problem, as on my own servers I keep weekly rotating backups so I can go back and retrieve it fairly easily. But they weren’t hosted with me, and two weeks had passed when I received an email saying “The website appears to be down”. I logged into their GoDaddy account, and found absolutely no hosting at all. GoDaddy has this fancy parking page (in case you haven’t seen it) that basically means the site doesn’t register as going offline. That’s right, my uptime monitor didn’t flag anything for the past two weeks, because the domain defaulted to a parking page.
At this point I’m frantic. Did I not do my due diligence?! Did I just lose everything they had online for the past couple of years?
Of course not. Because I’m using MainWP. It’s one of those moments where you realize that everything will be OK because something you set up a year ago did its job faithfully, daily, and without complaint. I had set MainWP up initially to back up to Amazon S3 (trust me, this is the cheapest and most reliable way to back everything up), so I used my handy CrossFTP client on my iMac to log in and take a look. CrossFTP is great because you can access your Amazon buckets directly, almost the same as accessing a normal FTP server. What I was hoping for was that it didn’t remove older backups without first creating new ones.
Turns out that is exactly what it does – more than two weeks had gone by but there they were, just sitting there, ready for me to work my own magic. I downloaded the latest zip, and uploaded it immediately. I changed their DNS and logged into PHPMyAdmin to restore the database. I had to go into the cPanel hosting that I had just set up to create a new database and set permissions, but after that it’s fairly straightforward.
This is worth noting – all of the SQL files that were backed up are stored separately, so I ran a quick command to merge them all. I copied all of the SQL files into their own folder, then ran this using a terminal window in OSX:
cat is the command to merge files, and for this it saves you a ton of time. It basically turns the entire folder’s contents into a single file called “all.sql”. Upload that single file to PHPMyAdmin, and you’re back in business.
While I was at it, I grabbed some new salt for the wp-config file, and updated all of the login details with the new ones I had just created. Once DNS has finished propagating, we’re live and back in business.