Upgrade Debian Sarge to Etch: ColdFusionMX7 is a pain

So we're finally getting around to upgrading an old Debian Sarge server which runs ColdFusionMX7 to Etch. The Debian part is easy, I simply edit the sources.list and do an apt-get dist-upgrade and some questions later, presto, the machine is a working Debian Etch machine.

Getting ColdFusionMX7 to run with the Etch supplied Apache 2.2 is a different matter. Took me about several weeks to find out (not full time, but still over 20 hours, I think). First of all, you need the modified wsconfig.jar that Adobe distributes via a knowledge base article about their hotfix. Don't bother with their instructions, though, the mod_jrun22.so will not compile that way. Not because of missing apps or something, but because for some strange reason, the script thinks JRun is already up and running. I get an output like so:

Macromedia JRun 4.0 (Build 107948)

os.name: Linux

os.version: 2.6.18-6-xen-amd64

os.arch: i386

platform: intel-linux

Found port 2920 on host localhost

findServers(): found server coldfusion at

Found JRun server coldfusion at

this host is stage02:

web server: Apache

web server directory: /etc/apache2

verbose connector logging: false

apialloc: false

force resource extract from jar: true

CFMX: true

mappings: .jsp,.jws,.cfm,.cfml,.cfc,.cfr,.cfswf

filter mapping prefix: false

Apache binary: /usr/sbin/apache2

Apache control script: /usr/sbin/apache2ctl

Apache apxs: true

This web server is already configured for JRun.

Not very helpful. I tried removing all files related to Apache and JRun that I could think of, including the part in /etc/apache2/httpd.conf that loads the module, but it still told me that the web server was already configured. Time for some heavier work.

First, start with unzipping the wsconfig.zip. It'll yield a wsconfig.jar. Unzip that one too in a temporary directory, let's say in /tmp/wsconfig. Now go to /tmp/wsconfig/controller/src. There's a text file in there that contains the steps to install it. However, I need to install a few packages:

apt-get install apache2-prefork-dev gcc

You might need apache2-worker-dev, if you use that Apache flavour. You can check that with dpkg -l | grep apache2. You'll find either apache2-mpm-prefork or apache2-mpm-worker. That's your clue!

Now, execute the following commands:

sudo apxs2 -c -n jrun22 mod_jrun22.c  \

jrun_maptable_impl.c  jrun_property.c  jrun_session.c platform.c \

jrun_mutex.c jrun_proxy.c  jrun_utils.c

sudo apxs2 -i -n jrun22 mod_jrun22.la

sudo strip /usr/lib/apache2/modules/mod_jrun22.so

This will install the Apache 2.2 JRun module at /usr/lib/apache2/modules/mod_jrun22.so. Now change your Apache config accordingly, and you're ready to go.

One thing I found, but that was just me trying to be hasty, was that you need to use:

LoadModule jrun_module /usr/lib/apache2/modules/mod_jrun22.so

Hope this helps someone.


Comments powered by Disqus