5 Jan 2009, 15:07
Tags: , , , , , , ,
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.

Tags: , , , , , , ,

 
  • Search


  • Calender

    January 2009
    M T W T F S S
    « Dec   Feb »
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  
  • Twitter

    Powered by Twitter Tools

  • RSS Delicious feed

  • Archives