Riding the local… [UPDATED]

With the upgrade to Snow Leopard, I took the opportunity to make my MacBook Pro, a better development machine. This meant creating a Web server environment which matches my production shared hosting environment.

Far easier said then done.

I started with MAMP. I wanted to have a complete server environment that is well supported by the community and was easy to maintain. I felt that MAMP met these goals better than going with the native OS X web environment. Apple hasn’t been the best at offering the latest stable release of Apache, MySQL (in fact, not supported at all) and PHP. MAMP offered all three plus PHPMyAdmin (handy at times) and a smattering of additional goodness.

Using Sequel Pro (a fantastic, freeware MySQL GUI), I was able to create the databases required for my films and WordPress.  [A quick plug for Sequel Pro, they took the very nice code from CocoaMySQL and created a phenomenal tool. Well worth free, I gave them $50 for my copy, please donate if you can.]

Changing the link references from my hosted version to a MAMP version wasn’t hard. Unfortunately, I wasn’t thinking clearly. Having a blank PHP page tends to do that… All the errors were mine. (Remember to put a closing slash on a directory link and MAMP references require a port number.)

The hard part was duplicating WordPress. I finally kludged it by creating a fresh install of WP on MAMP then hand editing the WP database links to match my MAMP configuration.  It’s working now but I’m worried about my first upgrade. I also had to go through my site and switch all references to a .com site to the localhost (MAMP) site.

But at an absurdly high level to create a local WP site from a working hosted site:

  1. Install MAMP
  2. Fresh install WP onto MAMP site
  3. Copy the wp-content folder from the hosted site to the MAMP site
  4. Export the hosted WP MySQL database and import it into the MAMP MySQL database
  5. Hand edit the links in the “-options” table to match those required for the MAMP site (remember to edit the uploads option as well)
  6. Test. I turned off my wireless so I knew I was only local.

As soon as I finish this post, I’ll need to figure out how I’m going to duplicate this entry locally. I have two options, one, I could copy the text from my post page into the post page on the local site or two, export the hosted MySQL db and import it in to my local site. The latter would require me to hand edit the options page again. (or I could try keeping it the same). Mmmmmm.

UPDATE: Using two tabs on my browser, it took 30 seconds to duplicate the entry. Copy/Paste, Copy/Paste, click, click, click. That wasn’t so bad!

UPDATE July 8th, 2010: As I migrated to WordPress 3.0 locally (went from 2.84 to 3.0), I needed to reacquaint myself with using WordPress locally. Here are the directions in greater detail in updating WordPress locally (this is a personalization of the detailed upgrade installation on the WordPress Codex):

  1. Backup MySQL database using Sequel Pro; File – Export – MySQL Dump (select all tables and make sure Drop Table, Create Table and Add Table Content are all selected. Use this backup to create backup MySQL database for the backup old installation, I called it oldBackup. Use the Database Administration part of Sequel Pro to create a new database then Import the dump.
  2. Duplicate the oldblog directory using Finder – Duplicate then rename i.e; “oldblog28”
  3. Verify new site works by doing the following:
    • Export only the wrp_options table using Sequel Pro
    • Using Textmate, change all references of the blog directory to the new name i.e; oldblog to oldblog28 and (if necessary) make sure all www references are changed to local i.e; wellys.org:8888 to wellys.org:8888 (this is for MAMP running WordPress locally)
    • In the oldblog28 wp-config file, change the name of the database to oldBackup
    • Load the new site into Safari and confirm links are pointing to the new directory, browse the site a bit to ensure it is a fully working backup.
  4. Back to the site being updated, deactivate ALL plugins.
  5. Download and extract the new WordPress package.
  6. On the old site, save the following:
    • wp-config.php
    • wp-content folder but delete wp-content/cache and wp-content/plugins/widgets
    • wp-images (not found in oldblog)
  7. Open two windows in Finder and delete all files but the above 6 a-c. Move the new WordPress files over to the old directory. Using this method, you can methodically ensure you are updating/replacing all of the files. I had a little bit of work in the wp-content folder, making sure I didn’t delete any changes I had made to my blog.
  8. Log back into the blog and it should upgrade the database and site automatically. If unclear, go to: oldblog/wp-admin/upgrade.php
  9. Update .htaccess file if necessary (not necessary as of July 8, 2010)
  10. Install updated Plugins and Themes.
  11. Reactivate Plugins
  12. Add security key definitions to the wp-config.php file
  13. Review what has changed in WordPress.

NOTE: Based on information from http://www.chrisabernethy.com/why-wordpress-asks-connection-info/, I changed the ownership of the oldblog to _www using: sudo chown -R _www oldblog

A couple of things…

I haven’t updated the blog in quite a while. I’ve been working on a lot of things but haven’t found the time to document the work.

The latest thing I did was update this blog to 3.0. So far I haven’t seen a huge difference. I also changed the theme from “minamalism’ to twentyten, which is the new theme for WordPress.

I like the new theme. Very simple, great style.

I will be exploring if I can use it as the basis for another site which isn’t a blog. The twentyten theme allows for custom menus so in some regards it could be used as a general blog site instead of a blog.

DON’T HAND EDIT YOUR MAMP PHP.INI FILE!!!!

Oh, the agony.

I spent the better part of a day trying to get Xdebug working on my MAMP site on my Mac. I read here, here and here… all you have to do is to “edit your php.ini file” and bada-boom! you are off to the races.

No, no and no. The problem was that it kinda works, then it doesn’t, then nothing does, then things work but xdebug doesn’t.

Over the years, I have realized that when things start to get real hard, I’m doing something wrong, terribly wrong. Some where in some place, I’ve made the simplest of errors, creating a cacophony of bugs so bad, I’ve got to look down to see up.

I use MAMP, I also use MAMP PRO. Some scorn, I don’t because it seems to save me time. It would have this time, if I had RTFM’d. No, I didn’t. Instead I read what everybody else said “edit your php.ini file by hand”. WRONG!

Instead, use MAMP PRO’s  File-Edit Template command. It was RIGHT THERE!!

Thank you, Drupal. You saved my sanity. As for the rest, the rest of your information was pretty good, all except for…

HTML5 and CSS3

I’m interested in what HTML5/CSS3 are bringing to the Web. A simple thing like using CSS to drop shadow an image is  quite nice. Beats having to use Photoshop…

Based on the drop shadow alone, I thought it would be good to begin using these two new web standards, So I changed my photography site Stills from one using a Lightroom HTML template to one of my own implemented with HTML5 and CSS3.

For now it is quite rudimentary, it shows photos in a classic gallery style with little changes from a conventional HTML/CSS 2.1 site. As I have more time, I will use tools like Modernizer to help ensure viewers have a good experience regardless of browser.

I’ll also incorporate the database approach I used for my film site. Currently, I have a “hand-crafted” site which requires a new html page for every new photo. After a few photos, the overhead gets to be quite a pain.

Usability Help

A extremely helpful service from Feedback Army is the ability to ask for feedback from a number of users. The cost is low, typically $1 per user and the advice from my limited sample of 1 time was well-worth the cost.

I wanted to know if my wellys.org site was intuitive and easy to use. Yes, quite easy was the feedback.

Was the performance acceptable? Yes, no issues.

What should I change? Very little.

So two thoughts, one, I’m happy I have no issues and two, am I happy with the feedback because I have no issues? Probably.

I did receive feedback that I won’t take. Such as adding Flash for playback because Quicktime is “an old format now” and “not a format of the masses”. Good point and I’m not interested in the masses, thank you very much.

The feedback was quick. I had responses in less than 10 minutes and within 1 hour, I had 5 helpful responses.

Highly recommended!

PS: Read the FAQ and the Usability sections, both are well-written and help you to gain the best results.