Wednesday, 17 April 2013

Installing ColdFusion 5 (yeah, that's not a typo) on Windows 7 64-bit

G'day:
This is not exactly what I was intending to do this morning, but - as is often the case - a question on Stackoverflow piqued my interest. In this case, a person needs to get CF5 running on Windows Server 2008 R2, and - seemingly - was having some problems, supposedly with the 64-bitness of their OS.

I have the CF5 installer lying around here somewhere, so I decided to see if I could get it to install on my Windows 7 64-bit laptop. I reckon if it installs on Windows 7, there's a good chance of it installing on on Windows Server too.


The person said they had trouble with the installer, but I reckon if I mess around with some of the compatibility settings on the installer, it'll work. Or at least I'll know soon enough if it's just not going to work.

But to start with, I'm just gonna follow my nose and try to do a vanilla install.

The one thing I am gonna do is "run as administrator", so I do that, and... so far so good:



OK, so the first step of the install is just selecting a place to dump files, and off we go. Yes, I am going to include all these boring screen caps, cos it's nice to see the simplicity of how things used to be.

The files unpack, and then the installer tries to run, but I get the compatibility warning:


Before we decide this is a problem, let's just pretend it won't be, and opt for "Run Program"... it's running!

Next...


There was an intermediary EULA acceptance page which is dead boring, so I won't show you that, but here we are on the serial number page:

Which I will leave as-is, just going for the developer install. Next...

This is a slight worry:




I do have IIS and Apache installed and running, but it's not spotted either of them. I dunno if this is an issue, but I'll pretend it isn't. I'll just try to configure it manually afterwards. Next...


OK, got it. And it's now that it occurs to me that ColdFusion 5 doesn't come with an inbuilt web server like later versions of CF come with. I had not remembered this (I've not installed CF5 since it was relevant, which was quite some time ago).


Next we have some paths:



And after that some options:



I only want a very bare-bones install. I figure the fewer moving parts I opt for, the more likely things are to work. However my only copy of CF5 docs is a PDF of the CFML reference, so it'd be handy to have all the rest available too, so I'm gonna install those too. Next, some passwords:


And then the summary:



This is all heartening, I must say. Off we go and let the installer run...



And after about a minute, it's complete!

Aaah... bless: I need to restart. Back in a sec...

[reboots]

OK, after that, I've looked in my Windows services, and there are three new services there:

They were initially set to "Automatic", but I've changed it back to manual as I don't need all that nonsense starting up all the time.

Given the services are started, I think that's a good sign they're installed OK.

Next... IIS. I'll digress for a second and admit I tried to get it all working on Apache, but Apache 2.2 wouldn't see the CF module as being valid, so would not load it. Life's too short to faff around with that sort of thing, so I'm going the IIS route instead. I am no expert in IIS, and even less of one since IIS 7 changed the UI and seemed to over complicate things. But I can click stuff at random, and that often works ;-)

Anyway, I set up a new web site for CF5 - to run on cf5.local:8005 - and set about getting IIS to talk to CF. Thanks to opting to install the docs, I'm able to follow the instructions - kinda. The instructions are for IIS6, but I reckoned I could guess what the equivalent actions would be in IIS 7.5.

I basically need to tell IIS to palm off CFM requests to a DLL:

This is from the docs:

And this is the equivalent in IIS 7, it seems:


I got to here by selecting the "Handler Mappings" option in IIS Admin, then "Add Script Map...". And the file I'm mapping is [ColdFusion]/BIN/ISCF.DLL.

Next I'm asked if I want to allow the change I very specifically just asked to make:

Which, oddly enough, I agree to.

From there, I reckon I'm done, so I hit http://cf5.local:8005/gdayWorld.cfm, and get...


... an error. Dammit. However in the back of my mind (helped by some memory-prompting by Google), I recall something about IIS and app pools and something about 32-bit-ness. So I I've jumped into the Advanced Settings of my CF5 application, and there's a setting for allowing 32-bit applications. I dunno if that's the full story, but I'll give it a go first, before trying anything else:






And now - drum roll - I get this when I browse to gdayWorld.cfm:

G'day World @ {ts '2013-04-17 12:48:49'}

COOL!

To verify my versions and stuff, I browse to my usual server_dump.cfm file (which does what it suggests: dumps the server scope), and - to my horror - I get this:


Error Occurred While Processing Request

Error Diagnostic Information

An error occurred while evaluating the expression:
"#server#"
Error near line 1, column 15.
Error resolving parameter SERVER


Oh. So there's none of that nice server.coldfusion and server.os stuff in CF5. I'll check in CFAdmin then:

And here we are:




That was all pretty straight forward. I did have to google a bit when I got that HTTP/404.17 error, but - whilst not finding the exact resolution - it was enough to jog my memory about the application pool thing.

Other than that, it was pretty straight forward. It just goes to show... it's always best to try these things.

Now I've got CF5 running. Err... neat.

--
Adam