That was quick.
Couple of weeks ago I wrote about thinking to move my blog to WordPress. Since then, I’ve used WordPress1 in conjunction with my static blog, and published posts to both sites. This experiment helped me to reaffirm the pros and cons of using WordPress, especially the part about concentrating on writing rather than site administration. During those two weeks I posted more, and became comfortable working with, and in, WordPress.
When I realized that I started to publish first to my dummy WordPress blog, and then reluctantly to my static blog, I made the decision to switch. Yesterday I completed the migration.
Following is the checklist I’ve used to manage the migration. It helped me going through the process with no downtime, and no prodissues 🙂
Decide between hosted an self-hosted
Select a hosting provider
Local installation of WP
Import all of my posts to the local install
My posts are written in one of two formats – markdown or org-mode. Migrating the org-mode based posts was easy, using Emacs’ org2blog package. Pushing the markdown files was a little trickier. Eventually, with the help of this stack-overflow answer, I converted those markdown posts into org-mode, using pandoc. I had to make a little bit of cleaning3 to the output, but overall that process wasn’t too complicated.
Connect to Bluehost
Logging-in to my Bluehost panel for the first time was intimidating. The endless list of tools got me thinking that I might end up doing even more site administration work than I did before. I hoped, though, that this will be the case only during the initial setup4, and that I will not have to log in to that panel again after I deploy my site.
Figure 2: The cPanel – lots of tools, though I had to use only few to get my site live
Connect to WP with a temporary URL
When I signed up with Bluehost, I got an email with a list of temporal IPs and ftp configuration. This way I could set up my WordPress blog before having to point my domain to it. At first, I wasn’t able to access my temporary URL, even after reading this detailed article. It probably took time for the URL to be activated and link to my account, because I was able to access it eventually (after couple of hours) without doing anything special.
As soon as I connected to the temporary URL, a WordPress installation process started, and 5 minutes later I had WordPress installed on my production environment. Exciting!
The first thing I’ve noticed when logging in to my fresh self-hosted WordPress was this gaudy green icon – the Mojo market place. I didn’t know what Mojo is, and didn’t care to know. I just wanted it out of my dashboard. Googling it, I found that it’s just a plugin that can be removed. Removed it I had.5.
Set FTP access
Figure 3: My FileZilla Configuration – note the non-default Encryption type
FTP connection will be useful later on, when I’ll need to push my local environment and database to production.
Themes that I like
Import the local installation to the hosting service
Set the permalink format
I now had to make sure that my URLs are formatted correctly. That was easily done within the wp-admin. The setting is under setting->permalink.
Figure 4: Setting the permalink format
Now I had to make sure that when I switch to WordPress, all of my existing posts will maintain the same URL. So, I run through a sample of posts, replaced the temporary part of the URL (the
http://18.104.22.168/~prodissu/ in the example above), which led to the WordPress installation, with my domain name. Doing so I’ve expected to land on the same post on my static, and still live, site. When I made sure this is the case, I was ready for the final part – the cut-off.
Figure how to transfer my domain
One small consideration at that point – I have a bucket on S3 dedicated to all the media file I use in posts. I wanted to keep this bucket and not move those media files into the WordPress database. Just in case I change my mind again, and decide to switch back to static blog at some point. I also kind of wanted to keep that neat workflow I created to upload media files to S3…
To maintain that bucket and sub-domain, I had to define a CNAME, now on the Bluehost console.
With that, my site is up and running on WordPress. Hooray!
There’s only one open task left:
Import the disqus comments
First, I created a blog in WordPress.com. Then I installed WordPress on my local machine.
So far I’m happy with Bluehost. I had to chat with their support twice, once to help me with connecting to the ftp, and then to white-list my IP for remote publishing. Support was prompt and helpful in both cases.
I had to add the headers to the org file and fix some of the footnotes’ references.
It’s probably too early to answer this question, but since making the cut-off, I didn’t have to log in to the cPanel.
I removed it so quickly, that I didn’t even take a screen shot to include here.