Tags: apache22, coldfusion, coldfusionmx7, debian, etch, jrun, mod_jrun22, sarge
Comments Off
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 127.0.0.1:2920 Found JRun server coldfusion at 127.0.0.1:2920 this host is stage02:62.133.201.114 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.