Apache 2.2 was released to a mixed fanfare. While everyone was pleased at the improvements most had to rest on their laurels while their web programming technology of choice was updated accordingly. At the time of writing, PHP 5.1 and 4.4 have an unofficial connector available (unless you want to run the unreleased 5.2 code), Ruby on Rails has several ways of working with it, and many others have received updates. Adobe's ColdFusion MX 7 was given an update which provides compatibility, but the company decided against including (the older though still officially supported) 6.1, so officially users of 6.1, my current employer included, are up the proverbial creek without an equally proverbial paddle. Or so we thought.
Before I explain how I did this, I just wanted to mention that Adobe does not officially support running CFMX 6.x with Apache 2.2, and neither they nor I am responsible if this turns your web server to mush. Proceed at your own risk.
As it turns out, presumably thanks to the wonders of Java binary compatibility, the official ColdFusion MX 7 connector works with ColdFusion MX 6.1, though I had to tweak the instructions a little. Here's what you need to do to get it running on Windows:
- You'll need both ColdFusion MX 6.1 and Apache 2.2 installed and running correctly.
- Stop both the Apache and ColdFusion services.
- Make a backup of both the Apache and ColdFusion directories.
- Start up the ColdFusion services again.
- Download the updated connector file from Adobe's site (read the full release instructions if you want).
- Extract the
wsconfig.jar
file from the wsconfig.zip
file you just downloaded and put it under your ColdFusionMX directory under runtime\lib
, e.g. C:\CFusionMX\runtime\lib
. It will ask if you want to overwrite the existing file, so click Yes.
- Open up the command prompt and move to the
runtime\lib
directory, e.g. CD \cfusionmx\runtime\lib
.
- Enter the following command all on one line:
java -Dtrace.ci=1 -jar wsconfig.jar -ws apache -dir /apache2.2/conf -bin /apache2.2/bin/httpd.exe -coldfusion -v
where "/apache2.2/" is the directory you have Apache 2.2 installed. Note that I have both ColdFusion and Apache installed on the same drive so didn't have to give any drive letters, and I used the UNIX-style directory separator (forwards-slash) instead of the Windows-style (backslash).
- If you got an error message that said
'java' is not recognized as an internal or external command, operable program or batch file.
then you need to close your command prompt window, download and install the Java Runtime Environment (JRE) v1.4, and try again.
- Presuming everything worked correctly you should see the following in your command prompt window:
Macromedia JRun 4.0 (Build 107948)
os.name: Windows 2000
os.version: 5.0
os.arch: x86
platform: intel-win
Extracting resource connectors/installers/intel-win/prebuilt/jrunwin32.dll
file defaulted
last modification date: Thu Apr 06 13:07:04 EDT 2006
size/compressed size: 73728/26315
to D:\CFusionMX\runtime\lib\wsconfig\jrunwin32.dll
Created file D:\CFusionMX\runtime\lib\wsconfig\jrunwin32.dll
findServers(): found server default at 127.0.0.1:2901
Found JRun server default at 127.0.0.1:2901
this host is tlcweb:205.241.27.208
web server: Apache
web server directory: D:/Apache2.2/conf
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
Using Apache binary D:\Apache2.2\bin\httpd.exe
Server version: Apache/2.2.3
Apache 2.2.3 is recognized
isValidVersion(): Apache is 2.2.3
Compiled in modules:
core.c
mod_win32.c
mpm_winnt.c
http_core.c
mod_so.c
Parsing Apache configuration file D:\Apache2.2\conf\httpd.conf
Extracting resource connectors/apache/intel-win/prebuilt/mod_jrun22.so
file defaulted
last modification date: Thu Apr 06 13:07:04 EDT 2006
size/compressed size: 65536/25836
to D:\CFusionMX\runtime\lib\wsconfig\3\mod_jrun22.so
Created file D:\CFusionMX\runtime\lib\wsconfig\3\mod_jrun22.so
getProxyServerUrl(): 127.0.0.1:51010
Wrote file D:\Apache2.2\conf\httpd.conf
Added JRun configuration to Apache configuration file D:\Apache2.2\conf\httpd.conf
Created file D:\CFusionMX\runtime\lib\wsconfig\3\README.txt
Wrote file D:\CFusionMX\runtime\lib\wsconfig\wsconfig.properties
Error stopping service. The web server must be restarted to complete this operation.
- At this point start up the Apache server and try loading a CFM file. :-)