Yesterday morning I decided to take the plunge and upgrade my daily-driver laptop to OSX Yosemite. This is the story of what I did, what I could have done better, and how I dug myself out of that hole.
Before I made the decision I snooped around to see if anyone else had any trouble. By that I mean that I had already seen a relevant bug report and I asked on twitter:
I didn't put much stock into the bug report: It looks like it was written by someone that doesn't really know their way around a CF installer, and I like to think that I do (know my way around a CF installer). And the tweets were generally positive: You'll probably have to reinstall MySQL, and the built-in Apache install will probably get un-configured. Not that big of a deal, all in all.
So I dove in! Knowing that apache config would be mucked with, I was (1) very happy that I had checked it into a git repo a long time ago, and (2) made a backup copy in my home directory just in case. I also backed up all of my mysql databases. That should cover everything that wasn't backed up overnight with Backblaze.
The download went faster than when I upgraded my Mac Mini HTPC the other day (irony: the mac mini is on a wired connection and my laptop is on wifi...), but the installer took for-freaking-ever. When it got down to "2 minutes remaining" it was just about noon so I left it alone and went out for lunch. When I returned an hour later, it still said, "2 minutes remaining."
Not to worry, though, as this appears to be a pretty common problem, especially for people that have a lot of stuff in
/usr/local/bin (homebrew, global node.js modules, etc) -- which includes me. So wait it out I did (I did hit Cmd+L to watch the log and confirmed it was actually working that whole time, so at least it wasn't just the dreaded beachball of death). At about 1:40 it finally finished installing, and I was able to use my laptop again.
The first thing I did was install updates for things I was prompted for; probably stuff that required Yosemite: a new version of 1Password, an iTerm update, and Keynote, iMovie, and iPhoto; as well as the updated Command Line Tools. Then it was down to business.
The first thing I wanted to do was verify that I could start CF and Apache and get to the CF Administrator. No complaints when I started them, but as expected, I was not able to get to the CF Administrator: 404.
I went through the diff of changes made to my
httpd.conf file (thanks, git!) and adjusted things that made sense to me: re-establishing my preferred default document root, re-enabling my vhosts, adding the Include line for mod_jk that was removed, etc. But still, Apache never seemed to finish starting: there were no errors printed to stdout or stderr when I started it, but I never found httpd in the process list either. Then I found reference to
apachectl configtest on Stack Overflow (you may or may not need to use sudo; I did), which does exactly what you should expect: it verifies that your apache configuration is at valid, syntactically and otherwise. I had a few problems. Firstly:
httpd: Syntax error on line 531 of /private/etc/apache2/httpd.conf: Syntax error on line 2 of /private/etc/apache2/modjk.conf: Cannot load /Applications/ColdFusion10/config/wsconfig/1/modjk.so into server: dlopen(/Applications/ColdFusion10/config/wsconfig/1/modjk.so, 10): Symbol not found: _aplogerror\n Referenced from: /Applications/ColdFusion10/config/wsconfig/1/modjk.so\n Expected in: flat namespace\n in /Applications/ColdFusion10/config/wsconfig/1/mod_jk.so
My assumption here was that there's some problem with the webserver connector as built on OSX 10.9, so I commented that out. After doing that, of course, my
JkMountFile lines in each vhost were the next problems:
AH00526: Syntax error on line 116 of /private/etc/apache2/extra/httpd-vhosts.conf:
Invalid command 'JkMountFile', perhaps misspelled or defined by a module not included in the server configuration
Commenting each of those out has made Apache successfully start, and I can now browse around my various vhosts, but obviously ColdFusion isn't running. I had run wsconfig at some point previously and it was crashing. I was hopeful that the problem had something to do with my mucked up Apache config, but alas, even once the config was cleaned up the web server connector continued crashing on startup.
Saddened, I downloaded a fresh copy of the CF10 installer and tried to uninstall my existing copy. The uninstaller crashed too. "Oh well," I thought, and figured I would rename the CF10 folder and install anew. The freshly downloaded installer crashes, too. Delightful!
Not that I particularly want it, but ColdFusion11 might work, since it's been released more recently. Since CF10 is still supported (*ahem*) you'd expect its installer to be able to run, but whatever. I downloaded CF11, hoping it would save me from having to reformat my laptop and stay up all night reinstalling stuff from scratch and... hallelujah, it runs!
Let's not get too excited just yet, though. The installer completes (with a very ugly dead give-away "this app was written with Java" dialog box for selecting the path of my existing CF10 installation for settings migration), and the CF Administrator loads! Hooray! I get to sleep tonight!
Mappings copied over and look right. Still don't have a mail server configured (this is how I want it, so check!). My MySQL datasources check out. MSSQL TBD: I need to run windows update in that VM and make sure it's still forwarding ports correctly, but it's not mission critical at the moment.
I did have to figure out where to drop in my Bcrypt.class file so that BCrypt will work (hint:
/Applications/ColdFusion11/cfusion/wwwroot/WEB-INF/classes/), but all in all everything appears to be in working order. I'd still prefer to have CF10 installed to match my production servers, but I suppose this will have to do.
... That was not how I wanted to spend my Wednesday.