Troubleshooting configuration of MacJournal with WordPress
On Wednesday, I decided that it would be a good idea to buy the new MacHeist NanoBundle. I am now the proud owner of licenses to MacJournal, RipIt, Clips, Flow, CoverScout, Tales of Monkey Island, RapidWeaver, Airburst Extreme, Tracks, Burning Monkey Solitaire, and Tweetie. So far, I’ve installed and played around with everything except for Tales of Monkey Island, Airburst Extreme, and Burning Monkey Solitaire. I also already used the freeware version of Tweetie, I mostly just want the license because it provides beta access to the 2.0. I’m interested in the 2.0 because I really hate Twitteriffic (basically because its not skinnable) but I want a twitter app that will nest in my menu bar.
Last night, I spent most of my evening configuring MacJournal to work with WordPress. It was quite the adventure and MacJournal’s documentation for how to configure for WordPress if their automatic configuration doesn’t work is very lacking. Plus, it was only within the last two years or so that WordPress added its unique (i.e., modified MovableType version) API for XML-RPC support so a lot of the blog entries that document the process of troubleshooting if the auto-config doesn’t work are still based on the MovableType API setup in MacJournal. It doesn’t actually make that big of a difference, but it’s enough of one that all of the troubleshooting was complicated.
Here is how the process worked. The first time I attempted to set up I got an NSXMLParserErrorDomain Error 5. This error means that MacJournal is having difficulty reaching the XML-RPC to run the command. After a little bit of research, I discovered that the problem was not totally a flaw in MacJournal or WordPress but rather a problem with the PHP configuration on my server space. To fix this, I edited php.ini with the help of .htaccess in my WordPress folder. I changed the Maximum Script Input time from 60 to 600. Kind of a dramatic change, but I’m glad that I now know how to make this edit with Geek Storage. To do this with GeekStorage, you have to add the line “php_value max_input_time 600” to either the .htaccess file in your public_html folder or in the directory that contains WordPress. When you add this line, it applies to all of the subdirectories in that directory as well.
After editing .htaccess, the error changed to NSXMLParserErrorDomain Error 64. Error 64 indicates that there is some foreign code in the xmlrpc.php file that allows remote posting. Specifically, the code is appearing before the XML signifier at the beginning of the document. There is another code (Error 63, I believe) that indicates that there is code interfering with the script somewhere more random in the document. The process for fixing either error is the same. Also, some WordPress for iPhone users experienced this problem prior to the 2.0 update. Therefore, there is more existing documentation that explains how to troubleshoot this through WordPress. The process is fairly simple: revert to a default WordPress theme and then deactivate all of your plug-ins until you no longer get the error. This seems pretty daunting, but if you go through and deactivate things one by one, you’re more likely to figure out exactly what the problem is. And, in my case, disabling the theme I designed for WordPress fixed the problem. If it does happen to be the theme that is causing the problem, generally the problem is in the functions.php file. In my case, I realized that I registered a sidebar that I no longer used on any layout. When I deleted that function, all of the errors went away.
Configuring MacJournal really was a pain. It took hours to sort through all of the error messages and track down documentation that was related to the problem. Also, MacJournal’s documentation is unclear as to what directory you need to point to if you are running a remote installation of WordPress and have it installed in a subdirectory. I’m glad I finally got it installed and I hope it turns out to be worth all of the trouble.