tidystorm

random techno-gab

I rescued my WordPress site with a WAMP test server

What led to this:

In February of 2012, I had two wordpress sites, built with the techozoic theme, which were broken for a variety of reasons, including a backlevel of techozoic and an importbuddy done without first deleting the files.

What I decided to do about it:

I thought that a good remedy would be to set up a WAMP environment for the purposes of debugging, and so that in the future, I would have a test server (also known as a staging server.)

Because I want to ultimately have two websites in WAMP, I will runa single install of Apache, MYSQL and PHP and then I will set up two different instances of my wordpress install.

How to later add the second website:

Whenever you want to add another website, it is as simple as creating another folder in your c:\wamp\www folder.

For more information:

See this website: http://sixrevisions.com/web-development/install-wordpress-on-your-computer-using-wampserver/

The specs:

(It’s important that the PHP versions be as close as possible to that of the live server, but especially the PHP version in WAMP should not be far behind that of the production server. The WordPress versions must match exactly. The Apache and Mysql should be as close as possible.)

  • WordPress 3.3.1 in both
  • PHP 5.2.17 in Production, PHP 5.3.9 in WAMP
  • Apache 2.2.21 in both
  • Mysql 5.1.56 in production, 5.5.20 in WAMP

Starting on Valentine’s Day, 2012, I set out on these steps to rebuild my mikemoran.com site in WAMP. These instructions developed and morphed over time. This post serves as documentation for myself of what I did. If it helps someone else, that’s great.

  1. Set up WAMP
    1. Note in advance that Secunia will probably flag elements of WAMPSERVER. It is not necessary to put the patches on unless you plan to use WAMP to support a live site.
    2. Download and install WAMPSERVER in the default directory C:\wamp
    3. Point your browser at localhost http://localhost to see the default server configuration page. 
    4. Create a directory for the mikemoran website files c:\wamp\www\mikemoran.com
    5. Go to localhost to see that mikemoran.com is listed under “projects.” Then go to http://localhost/mikemoran.com
  2. Install WordPress
    1. Download the latest WordPress zip file, and extract it into the mikemoran.com subdirectory of www. 
    2. Visit http://localhost, then under Aliases,click on phpmyadmin to create a database. Use the same name as that on the production server.
    3. Visit http://localhost/mikemoran.com/wordpress to start the WordPress install. 
    4. When it says you have no config file, then click on the button that says “Create a configuration file.” You will be able to match it to the server later.
    5. When you get to the database screen, set the database name, set the MySQL username to root, and don’t set a password. Leave the other defaults. Click “submit.”
    6. Click “Run the install.” Put in the site title and the same usernames and password as that on the production server.
    7. Click “install wordpress.”
    8. Go back to phpMyAdmin to check for the presence of your database tables
    9. Set PHP Config settings to be exactly what you have on the live production site (in php.ini). If you can’t see the contents of the php.ini file directly on the server, then you can run this php file:
      <?php phpinfo(); ?>
      Then navigate to that file in your web browser, and you will see the needed information. The instructions I found said that the most important thing is to make sure that safe_mode is set, and magic_quotes_gpc is set. I found them to be set to off on my live server, so I left them off in my WAMP installation. To compare it to the WAMP php, click on the WAMP icon, click on “localhost” and then click “phpinfo” which is under the Tools category.
    10. If you see from the php.ini file that you have a different PHP version on the live server than you do on WAMP, then change your wampserver PHP to match the one on the server, but at worst, it really ought to be at least PHP 5 on the server! 
    11. To get pretty URL’s, enable mod_rewrite: click on the WampServer icon in the taskbar, mouse over Apache and then Apache modules. Find rewrite_module in the list and click it. You will need to then click Restart all services to start using mod_rewrite.
    12. Create a MySQL user with the same details as our live server’s WordPress MySQL user. To do this, browse to http://localhost/phpmyadmin again and click on your WordPress database to select it (you only have one database so this should be easy).Next, click on the Privileges tab at the top of the screen, and then click Add a new User. Give the new user the same name and password as your live MySQL user. Use localhost.   Click the Check All option at the bottom, which grants my new MySQL user all privileges. Click “go.”
    13. Configure the wordpress install: We will edit the WordPress config file (wp-config.php) to match the new database details.Configuring the WordPress Install to Match the Live ServerNow we have a local website that has the same configuration as your live server.
  3. Move the wordpress installation to the root so there’s no longer a wordpress folde
  4. Configure the admin pages. In settings–>general, cange the URL’s to http://localhost/mikemoran.com. Scroll down all the settings in your wamp wordpress installation, and match them to the live server.
  5. Install the latest version of techozoic
  6. Install all the plugins
  7. Copy the style file from the “custom css” plugin into the techozoic custom css.
  8. Create a zip file database backup from our current production site
  9. Backup the existing WAMP database
  10. Use importbuddy to import the backed up mikemoran database
  11. If there are errors, then remove the database and restore the backed up WAMP database. Then research how to pull in only the pages and posts.

How to extract a zip file on a linux server

I did a google search but didn’t find any way to unzip a zip file on my website’s server. I do not have shell access, but I wanted to be able to see what’s inside a given zip file, and you can’t do that with FTP.

But then I found it on my own. As long as you have CPanel or some equivalent from your hosting company, such as Lunarpage’s LPCP, you’ve got a way.

It’s done with file manager.

Cpanel–>file manager–>navigate to the zip folder–>click on the zip folder–>click on extract. So simple.

File manager has some other great features too, including a drag and drop “move file.” That’s nice if your filezilla program is busy with something else. And I’ve never found a way to get coffeecup ftp to move anything.

How to restore a WordPress website

 
After too much googling, I found a generous and bright gal who blogged about how to restore a WordPress web site. I suggest reading it and following her recommendations BEFORE the catastrophe, if possible.

Her name is Thu Nguyen, and this is the link to her post:

http://www.bloggingfor.info/how-to-restore-your-wordpress-site-in-less-than-1-hour

And because the thought of catastrophic loss strikes fear in the hearts of even the most rational, I am also copying her post here, just in case she takes down her site or something equally unlikely.

As a final note, I’ve given her all due credit. I’ve linked to her, friended her, and subscribed to her, and, in exchange, hope she understands that I’ve duplicated her words here for posterity. So here goes, with the content of
Thu Nguyen’s post about restoring a WordPress site:

I ran into a horrible dilemma yesterday and it would have cost this whole blog it’s life but luckily using a few tools, I had a backup of the database which helped me restored everything. Strangely, everyone always preaches backing up but don’t really explain how you can put it back up online.

So today’s article will explain what I did to restore this blog back to it’s original state with a couple of exceptions. You’re going to at least lose one article, some comments or the last tweaks from several hours ago. No biggie but yet, it still hurts. Hopefully, from this lesson alone, you’re backing up your site daily if not, twice as it begins to accumulate.

Without further ado, let’s carry on.

If you’ve accidentally uninstalled WordPress

Before you reinstall, make sure you go into your web hosting dashboard and back up everything you got under your site’s folder. You can do this with a FTP (file transfer protocol) program which your host suggests or use the browser version which they provided. This will allow you to click and drag over the content to your hard drive’s preferred path.

Why? If you’re going to reinstall, the new configurations won’t overwrite the old files. Your old files kept the configurations of your old blog. So you want to back up these files which has all the uploaded media you’ve been putting up for the past couple of months or more.

Depending on how old your site is, the wait can be about 5 minutes to half an hour. It took me about 10 minutes but once that is done you can then re-install WordPress onto your domain name using your web host 1-click install.

install the same version of wordpress you had before, not update it

If updating your WordPress version is something you want to do now, you may do so but I suggest not because if your site has been using an older version, configured for it, then you might be running into some errors, namely with plugins and theme integration. That’s going to mean more down time and a whole lot of technical tweaking.

Now you’ve got WordPress installed

You’ll notice that all your original posts are gone, even your site’s design is set to a template. Tear. Tear. I feel you. If you go on over to your plugins installation you’ll noticed that they’re still all there, just not activated. OK good.

Here are two of the most important plugins you’ll need to restore the site back with all your original articles and pages. Make sure you get the latest version which will be stable enough with your WordPress version!

Thanks to WP-DBmanager, I already had a backup of the database of the site on my web host server. However, here’s the sad part, it was backed up from the previous day. So the current post, if you have had one will be lost. Don’t worry I’ll show you how to back those up too if you so happen to get worried. But first, let’s carry on with restoring your database files.

Activate the plugin if you haven’t already done so. Head on down towards:

DatabaseManage Backup DB

Manage Database inside WP-DBmanager

You’re going to then get the latest databases you have on your server, now if you haven’t already installed a database backup plugin yet, now’s the time to do so! Don’t prolong backing up until it hits you, because when you get to this part, you’re going to be hit dead on. Let’s not make it happen.

Restore your database

Below you’ll notice I already had some past databases. This is helpful if you’ve upgraded your WordPress to a newer version and got errors and want to downgrade back. Restoring from your backup database will bring back the older version. Likewise, you want to choose the latest backup. In this case, you’ll see the newer version for today below but I had to opted for the July 19, 6:19 am file, which before the problem occurred was all I had.

Wp-DBmanager timeline table

Notice that the files are in SQL, an extension for the common database language file in the structured query language system. You have the option to compress these files into a GZip file but because you don’t have to. Here it’s saved in it’s entirety on my web hosting server. If you want to compress yours you can do so. We’ll get to that in a moment.

Now, choose the data you want restored, the e-mail you want the backup file sent to and click on RESTORE. Give it a couple of moments and then continue on.

You’ve restored the backup database, now what?

Check your site to see if all your original posts and pages are back. You’ll notice that there’s a slight change in your theme. But that’s OK, the point is are the pages there? Click on a link and test it out. You’ll notice that you’ll get a 404 error.

OK, now’s the time to repair your database and optimize it as well. Doing both will sync your site with the restored pages so that search engines will look for the pointers you’ve restored. Thus, it won’t produce those 404 errors that will become frighteningly scary.

WP-DBmanager repair

All you have to do is select YES to all the options and click on REPAIR. It might take a minute so be patient. Next, on top of the Repair DB option is Optimize DB. Just like repairing, you just select all the options and click on OPTIMIZE.

You’ll notice that it’s suggested to optimize your database each month. It won’t hurt to do it weekly though. Helps your site load faster and also your content organized.

From this point, you want to activate or install WP Super Cache or your preferred caching plugin. Once you’ve done so, delete the cache. This will refresh your site and actually let you see everything restored from the database backup. Click on the links and pages you got. Are they there? Are you still getting 404 errors?

Go back and repeat the process from restoration again. See if that will help.

Some minor disappointments worth changing

You’re not going to be entirely satisfied with the backup. At least I wasn’t because I still lost a post, some comments and also the theme was out of sync. In order to save myself from those miseries for the future, I did a backup and configuration of several more areas:

  • Thesis’s configurations
    • ThesisManage OptionsDownload OptionsAll Options
    • This will export a .dat file with the current date, great for organizing
  • exported WordPress content
    • ToolsExportDownload Export File
    • This will export a .xml file with all your wordpress content also with current date
  • changed the schedule of database backups to a shorter timeframe
    • DatabaseDB Options
    • Take a look at this section CAREFULLY because this will enable you to have more or less backups. You can set the maximum backup files – default is 10. Then under Automatic Scheduling, set when you want to backup and when you want to optimize. Here’s where you can set if you want your files saved as a compressed GZip or not. Then save your changes and you’re all set.

While I was on the brink of giving up in looking for that last post, I forgot, I also had a subscription to my RSS feed. Thankfully, that saved me because it syndicated the latest content and I had it in my e-mail box. So subscribe to your own feed if you haven’t already done so. It’s good recordkeeping plus a great place to restore content if all else fails.

What happened was TweetMeme also referenced to this post in a certain link. All I did was:

  • repost the content
  • set it to the correct date
  • set the permalinks correctly

This put me back in business and while it was a bucket of sweat, it was worth shedding!

Worst Case Scenario

Downtime is something you don’t want from your blog. One of the tools which will help you monitor your downtime is UpTimeRobot. Not only that, it will also let you know when your site goes back up.

uptime robot logoI’ve been using it for the past couple of weeks and am surprise with the results it has given me. I’m learning more about my web host’s ability to serve me better and times which I should be aware of. The usability is really straight-forward. So it’s an analytic tool which you should keep handy to track your site’s downtime.

Best of all it’s FREE.

Another thing is ranking. Who knows how much visitors I’ve lost or even comments which are bringing in link juice. While those are just some possibilities. Losing your work is something you don’t want happen. So while the longer your site is offline, the rankings will fall off too.

Thus, I was lucky. Very lucky to have backups of the content and also approached the situation as promptly as I could.

Yours could be a matter of more difficulty. If so, ask your web host provider to do the technical stuff for you. Call them to back up what they can of your site from their backups. Don’t be happy yet, some might have it a week prior so you’re still going to miss out at least some posts, comments or changes.

Look on the bright side, better to have most of it than none.

I hope this article will help you ensure the future of your site as well as save you from any loss in profits, mental misery or even ongoing efforts.

Any other suggestions for backing up? What’s your backup nightmare story?

 

How to use WordPress as a CMS

I learned from ugly experience that to use WordPress as a CMS, it needs to be installed in the root. Maybe there’s a way around that, but I don’t know what it is. So install in the root.

Then, google “create a static front page in wordpress” and follow the instructions.

I use the Ashford theme, which is built for CMS, and has good support.