The Problem: The 64-bit Mac version of Adobe ColdFusion 9.0.2’s (ACF9) web server connector for Apache does not work correctly; killing the mod_jrun.so module and ACF-Apache connections. If you do not run ACF 9 connected to Apache, skip this post and keep living low on port 8500 … I prefer to live large on port 80 ;).

The Disclaimer: This problem was seen by two other devs at my work and the solution presented worked for all three of us. Despite the many declarations around the Interwebs about ColdFusion’s demise, there are a lot of CFML developers out there and, admittedly, three is not exactly a valid sample. That said, I thought it would be good to note the problems we had and the resolution.

The Background: Last weekend I set about updating my installation of Adobe ColdFusion 9.0.1 (with all current hot fixes applied) to 9.0.2 so that I could run our code base at work against the newest version. What’s different about 9.0.2 is that it’s Adobe’s first time releasing an actual installer for a series of updates (versus the previous approach of install and apply hot fixes with much pain, swearing and spousal beatings). I was initially pretty excited to have an actual installer for the 9.0.2 update, however, that excitement did not last long.

A 9.0.2 Installation Note: It requires you to uninstall ACF 9 or ACF 9.0.1 before you install 9.0.2 … as Adobe notes:

Hence, do not install ColdFusion 9.0.2 alongside an existing ColdFusion 9.0 or ColdFusion 9.0.1 installation.Before You Uninstall: Copy the wsconfig directory to your desktop or some other, equally accessible folder on your drive. When installing ACF 9 into the default location, this folder is located at /Applications/ColdFusion9/lib/wsconfig and will contain the following:

  1. a folder that contains:
    • jrunserver.store
    • mod_jrun.so
    • README.txt
  2. wsconfig.log
  3. wsconfig.propertiesUninstall/Install: Go ahead and uninstall 9.x and install 9.0.2 BUT you may want to be less of a dumb ass than me and note all your mappings, DSNs, etc., as you will need to recreate/repopulate those after installation. Run through the installation as you normally do and try the web server connector for your Apache install. If, after doing the standard installation stuff, you find that Apache and ACF are not connected as you expected, read on. Otherwise, good for you (lucky duck)!

The Resolution: After ACF 9.0.2 is installed, you should find that the wsconfig folder is no longer inside of “/Applications/ColdFusion9/lib/”. If this is the case, try these steps:

First, stop the ColdFusion server if it is running.

Second, copy the version of the wsconfig folder you previously saved back into the aforementioned location. Most likely, you’ll be prompted to provide your Mac password to make this copy happen.

Third, open up your Apache httpd.conf (my MacPorts install version of Apache has it at /opt/local/apache2/conf/httpd.conf … I believe the standard Mac Apache install places the file at /private/etc/apache2/httpd.conf).

Fourth, scroll through the conf file and look for the following code (add it, if it’s not there):

# JRun Settings
LoadModule jrun_module /Applications/ColdFusion9/runtime/lib/wsconfig/1/mod_jrun22.so
<IfModule mod_jrun22.c>
    JRunConfig Verbose false
    JRunConfig Apialloc false
    JRunConfig Ignoresuffixmap false
    JRunConfig Serverstore /Applications/ColdFusion9/runtime/lib/wsconfig/1/jrunserver.store
    JRunConfig Bootstrap 127.0.0.1:51800
    #JRunConfig Errorurl url <optionally redirect to this URL on errors>
    #JRunConfig ProxyRetryInterval 600 <number of seconds to wait before trying to reconnect to unreachable clustered server>
    #JRunConfig ConnectTimeout 15 <number of seconds to wait on a socket connect to a jrun server>
    #JRunConfig RecvTimeout 300 <number of seconds to wait on a socket receive to a jrun server>
    #JRunConfig SendTimeout 15 <number of seconds to wait on a socket send to a jrun server>
    AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr .cfswf
</IfModule>

Fifth, restart Apache and then start ColdFusion back up.

Head on over to http://localhost/CFIDE/administrator and you should be good to go.

Others?: If more of us are having this issue, please let me know in the comments. If there’s enough ground swell, I’ll report to Adobe (bug, etc.), but I wanted to see if more than three of us have this issue before doing so.