ColdFusion 8.01 Installation Minefield

Submitted by Jason on Sat, 2008-09-06 04:26

I begin this story not as a long and protracted tale of woe, but as a warning to others that may tread upon these perilous shores. Argg ... I know what you're saying .. "I never had any trouble installing coldfusion 8" .. well neither had I up until this point. The story begins with me getting my shiny new 64-bit virtual server at slicehost.com ... BTW slicehost are awesome .. I highly recommend them.

I've got a 64-bit server so naturally I would 'assume' I'd download the 64-bit installer coldfusion-801-lin64.bin. That was my first mistake. So I go to Adobe.com and search for an ftp site to download it from .. to no avail. Since, I'm installing a server software and setting up my server via ssh it would have been nice to download it directly onto the server via ftp ... Na sorry .. denied. I had to download it to my workstation and then re-upload it to my server. Annoying!!!

So, an hour or so later it's finished uploading and I think to myself sweeeet ... daddy's about to get some CF love ... denied. I ran the command line installer for linux, as is detailed in numerous other blog posts, and was confronted by the following error.

java.lang.IllegalArgumentException: Malformed \uxxxx encoding

WTF .. I dug around for ages trying to find some reference to this and could only assume it had something to do with the locale setting on my server. I had set the server up using en_AU, but from experience I know that most Adobe stuff uses en_US. Under this assumption I generated the en_US locale on my server using $ sudo locale-gen en_US.UTF-8 ... and what do you know it worked... assumption confirmed.

The installer then ran through as normal until the trouble really started ... dat dat daaaaaa. (Insert suspense building sound effect here). I selected "Server Installation" and when I input my serial number it said it was invalid. Hmmm .. ok so I finished the installation under the trial license and everything worked beautifully .. until i put the serial into the CF administrator. The stupid thing dropped me down to developer mode. No warning about Standard Edition not being supported on 64-bit platforms.

After much digging around and a drawn out support ticket from the Adobe support staff in India and I find that Standard Edition isn't supported on the 64-bit version. They could have told me that straight away, but I found it myself in an obscure note in the cf8.01 release notes  which says, "ColdFusion Standard edition runs in 32-bit mode on these systems.". I admit I should have read them first, but there's only so many hours in a day.

Anyhow, so now I'm at the point where I'm trying to install the 32-bit version onto my 64-bit platform and I'm not having much luck with that either. After running the installer, I get the following error message.

jason@blah:~/tmp$ sudo ./coldfusion-801-lin.bin
[sudo] password for jason:
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...

exec: 2481: /tmp/install.dir.5149/Linux/resource/jre/bin/java: not found

So, at this point .. that's as far as I've got. The temp jre/bin/java file is actually there, so I don't know what the go is with that ??? Adobe tech support have still not gotten back to me on this. Has anyone else seen this error? Does anyone care? Is cold fusion pissing me off right now??? You bet it is ..... screw this ... I'm going fishing.

 

Update: Here is a compressed version of this post and all it's comments with the final solution.

23 comments

Submitted by charlie arehart (not verified) on Sun, 2008-09-07 08:17.

Hey Jason, sorry to hear of your hassles. I've not hit this problem, but a quick search for:

coldfusion install /resource/jre/bin/java

did find this, which seems perhaps exactly your solution:

http://blog.brianflove.com/articles/2008/04/05/coldfusion-8-0-1-updater-...

As for the surprise of only Enterprise supporting 64-bit, I guess it may depend on how you found the installer. On the updater section of the CF8 update downloads page (http://www.adobe.com/support/coldfusion/downloads_updates.html#cf8), it says "64 bit installers are available as full kits under Enterprise licensing on the Adobe store. Full details and release notes are available." And beside that wording, the link for "full details" does go to the FAQ which has 2 questions on the 64-bit that do explain that it's only on Enterprise and Developer.

Not trying to run salt in your wound of the challenges you're facing. Just wanted to offer a little defense that at least via that path, one should be able to have seen the clarification. Still, I totally realize that people often don't read text.

And one might even assert that the installer could/should have told you during the installation that 64-bit would only run if Enterprise was selected. Of course, since the installer doesn't know (or ask) what edition you plan to run it as, it would just have to be text...which then of course we'd have to hope people would read. :-)

Submitted by Charlie Arehart (not verified) on Sun, 2008-09-07 16:09.

Woah, Jason, sorry. You took my comments more defensively than I intended. I wasn't attacking you, nor accusing you of "not reading the relevant material." I really was just trying to contribute to the discussion (for future readers in the same boat, or Adobe, if they wondered what more they could be expected to do.)

Let me first say that I've always appreciated your blog and lamented the challenges you faced and documented so well in recent years.

And I did see that you mentioned finding the "obscure note" in the Release Notes. But I do also realize some won't read release notes before installing a product, since they tend to focus on what's new or changed, so I wasn't blaming you at all for not having read them at first.

Rather, I was just pointing out that there was at least some mention on at least that one page where the download was offered. I really wasn't meaning to imply any lack of effort on your part. That's why I said "at at least via that path". Maybe you found the download another way that didn't clarify it for you.

Maybe it might be read that I'm "defending" CF, bur really I'm just trying to help get to the bottom of things (as I did when responding to your memory leak problems last year).

If there are any ways where the requirement to have Enterprise to run 64-bit is obscure, I'd want to help get it brought to light so that Adobe might clarify things.

And I was being serious and sincere in my comment about how one might hope the installer would tell them, and was offering a reason why it may not, and yet why they could still press the point to avoid such confusion.

Now, to try to help more, you say the 64-bit installer "actually gives you the option to install the "Server Edition" which translates to "Standard Edition". You'd think if Standard edition wasn't supported it would only give you the option for "Multi Server / Jrun Edition" and "J2EE WAR/EAR"."

Well, not quite. It's a common misconception, but the Server mode of deployment doesn't translate to Standard edition. Rather, there are 2 versions of CF: Standard and Enterprise (and Developer). Then, for Enterprise and Developer, there are 3 forms of deployment: Server (what some call "Standalone"), Multiserver (what some call "multiinstance"), and J2EE (allowing you to create a war/ear to deploy on any J2EE server).

So whenever you install CF, unless you give it a Standard license key, you're installing the Enterprise as a Trial, which converts to the Developer edition after 30 days, or you can choose right then to install the Developer edition. But again, that's all separate from the mode of deployment, which can be either Server, Multiserver, or J2EE, but only for the Enterprise/Trial/Developer edition.

In your case, you say all was fine "until I put the serial into the CF administrator", so that suggests that you implemented the trial edition, which was Enterprise (or perhaps you chose the Developer edition, which is effectively the same feature-wise). But once you entered the license key in the Admin, that's when it would have switched to Standard.

Now, you say that instead it dropped you to Developer mode, and that seems because you'd implemented 64-bit CF, and as you say, that's not supported for Standard. I do absolutely agree that that screen (when you got dropped to Developer) could have been much more clear in explaining what happened. I really wasn't meaning to deny that. I hope they will attend to this (but I'll suggest that rather than hope they see this, you'd want to file a bug/feature request. If you don't want to, just say so and I'll do it for you as a token of good faith.)

As for the fix I pointed to not helping, I'm sorry to hear that.

If you hadn't tried it, consider running that particular search string I offered. There were other discussions that may help. (And of course I realize you may have done a google search. Again I was just trying to help with a suggested string. Sometimes people use too much data from their errors which might limit what they'd find in a search.) BTW, your entry is now number one for that search string. :-) So if we can find a solution for you, and get it documented here, it will others in the future. That's always my main goal in offering info as comments. Sorry if it came off otherwise.

Submitted by Charlie Arehart (not verified) on Sun, 2008-09-07 17:57.

Thanks for your kind words. And to quote Marcellus Wallace in Pulp Fiction, "We cool." :-)

Thanks also for adding that you did try the std license during the install and got just a "your serial number is not valid" message. That's clearly another area where they could do better, and could have prevented a lot of heartache. If you do log that bug, be sure to mention the 3 places where it could have been clearer: the two places you tried to enter the Std license (the installer and the Admin interface), as well as any page you might have seen that didn't mention the limitation. Maybe there's time to get things like this into the centaur.

Anyway, hope you do find the ultimate answer. BTW, I'll share one other tip that may help. It's something I helped a client through just last week as he was hitting hassles connecting CF to Apache on 64 bit. If you end up running the wsconfig tool from the command line, note that it offers some switches that many miss, -ws32 and -ws64, which you need to use when you're needing to install to an external web server that's running at the different bitrate than CF (if I'm understanding it correctly). Anyway, anyone wanting to know more about it should read the help for the tool (wsconfig /?) or the CF Config manual. HTH.

Submitted by Charlie Arehart (not verified) on Mon, 2008-09-08 06:53.

Jason, had you uninstalled the 64-bit version completely before you tried the new 32-bit install? Just curious.

The info you've shared on the passing the JVM info should help others. Thanks.

Submitted by Umal (not verified) on Fri, 2008-09-12 01:32.

Hi Jason,

Thanks for comments. The roadblock for the connector issue seems to be resolved after a long efforts and dependencies. Resolution of this issue made me in love with Ubuntu server. This server makes every thing possible and explains why we are doing the process. So finally i am all set to shed the focus light on this problem.

Steps to perform for the resolution of this issue which screwed me up:-

Initially as per Jason comments i tried installing apache from the package manager of Ubuntu server and the installation went successfully but the installed apache version when checked using the command "file httpd" gave that the apache which is installed is a 64 bit one. So that was the reason why the connector was unable to establish a connector using wsconfig from coldfusion. So that apache was not worth of any use as that was not able to have a connector with coldfusion 801 standard that is 32 bit.

I downloaded the source of apache from "http://httpd.apache.org/download.cgi". Name of the downloaded file is http-2.2.9.tar.gz
I placed this on server and untar the http-2.2.9.tar.gz. As this is the source file of apache i was having the freedom to compile it using the 32 bit library or the 64 bit library. So the big question in front of me was how to compile apache with 32 bit library. After searching a lot and with great efforts of Vinu Kumar i was able to compile the apache with 32 bit library. So steps performed for this compilation was:-

1) apt-get install build-essential (This is used for compiling the source)
2) apt-get install libc6-dev-i386( Installs 32 bit header files)
3) apt-get install gcc-multilib (install 32 bit gcc libraries)
4) Now we have to set the environment variable CFLAGS. This can be done by using export CFLAGS='-m32' (this leads to compile the source using 32 bit binaries we installed).
5) After this we come back to apache configuration and steps for it are
a) go to directory where you untar the httpd-2.2.9.tar.gz. A directory will be created with the name httpd-2.2.9.
b) now once you in this directory type command ./configure
c) make
d) make install
This completes the pache configuration. Apache is compiled and stored in the path /usr/local/apache2. Now go inside this directory and check the httpd version installed by using command file httpd. This will show that this is 32 bit apache.
Now the main stuff for which we did all this is to establish connector so i will run a very simple command of wsconfig

./wsconfig -server coldfusion -ws -dir /usr/local/apache2/conf -coldfusion -v

So see this will install the connector smoothly. I get it working on my Ubuntu 7.10. Jason, try this and i am sure you will get the resolution out of this.
So i think the minefield is no longer a minefield. Cheers.....................................

Regards
Umal

Submitted by Umal (not verified) on Wed, 2008-09-10 03:54.

Hi Jason,
The problem may be that while installing coldfusion 801 32 bit installer, you are using the 64 bit JVM. So please try installing the 32 bit JVM.
At last the case is resolved and I cracked it out.
At last I was able to resolve this minefield. So now there is no worries.

Resolution:-

1) Install a 32 bit JVM in the Ubuntu 64 bit machine using command

Apt-get install ia32-sun-java6-bin

2) Download the 32 bit ColdFusion-801-lin.bin installer from the Adobe website.
3) Try installing the coldfusion from the command line and use the command

./coldfusion -i console

Umal Kumar Bhole

Submitted by umal (not verified) on Wed, 2008-09-10 04:00.

Hi Jason,

Finally i was able to resolve this minefield, brain storm problem. The error due to which it was not was creating such a big hassle was due to the use of system JVM. You were trying to install 32 bit installer of coldfusion 801 with 64 bit JVM. Actually i reproduced the issue on my end and also resolved it by installing a 32 bit JVM and and after that executing the 32 bit coldfusion installer.
The problem is finally resolved. It was great to help you Jason.

Steps of resolution are

1) Install a 32 bit JVM in the Ubuntu 64 bit machine using command

Apt-get install ia32-sun-java6-bin

2) Download the 32 bit ColdFusion-801-lin.bin installer from the Adobe website.
3) Try installing the coldfusion from the command line and use the command

./coldfusion -i console
These steps are as simple as 123 steps to resolve a problem.

Regards
Umal Kumar Bhole

Submitted by dc (not verified) on Wed, 2008-09-10 06:06.

'exec: 2481: /tmp/install.dir.5149/Linux/resource/jre/bin/java: not found ' message usually leads me to check the JRE version and match it to the CF version. You can check if it is a 64 it JRE quicky by doing 'java -d64 -version'.

Submitted by dc (not verified) on Wed, 2008-09-10 14:35.

I'm not a machine to try this, but the following is a command for reverting Apache to 32 bit for the Mac platform: http://kb.adobe.com/selfservice/viewContent.do?externalId=kb403277#_Toc1...)

Submitted by Vinu (not verified) on Fri, 2008-09-12 23:29.

Hi
Sorry about the issues you are facing. Basically when you ran make the first time, it had compiled some binaries to 64 bit and next time you tried compiling to 32 bit, it tried to use the 64 bit binaries. To avoid this, run make clean and then run make. Do let me know if you facing further issues, we are happy to help you.

- Vinu (Adobe ColdFusion team)

Submitted by umal (not verified) on Sat, 2008-09-13 04:10.

Hi Jason,

Great i am very happpy that it finally worked off. So all the hard work was paid off and bytespring.com is up. It was immense pleasure to support you. Also i thank Vinu for the help as without his help this must not have got possible.

Also cant forget Jason hard work and patience and great faith on the product ColdFusion.

Regards
Umal

Submitted by Alex Milstead (not verified) on Thu, 2008-12-04 15:19.

I'm not sure if this will help out much since (after briefly skimming the comments), but I have been able to find an interesting connection between the coldfusion installation problems and that of another application install (using some of the same java libraries).

It seems as though (according to this student: https://mailman.stanford.edu/pipermail/p4-feedback/2008-May/000908.html) that the PS1 (yeah, I know, bizarre) bash prompt is what's causing all of this mixup. I'm looking into installing coldfusion onto my Ubuntu (32-bit) server and I ran into the same problem.

I'm not sure if the solution above will fix things or not the first time. I'm just trying to search around for as much help as I can get with it all.

Hopefully standing up the CF server won't be as much of a headache for me as it was for you.

Submitted by Jason on Sun, 2008-09-07 15:14.

Hi Charlie,
I appreciate your input and can understand your point of view since you're working closely with CF every day. Unfortunately, I haven't been using CF much for the past 18 months. After all of our problems with memory leaks in CF7 we decided to build our latest Flex project with a Java/Spring back end. That is not to say that i don't love Cold Fusion. I've been using it since version 2.

Regarding you're comments about me not reading the relevant material, you may have missed the part in my post where I said, "I found it myself in an obscure note in the cf8.01 release notes which says, "ColdFusion Standard edition runs in 32-bit mode on these systems.". I admit I should have read them first, but there's only so many hours in a day.". So, running on a 64-bit platform I made the wrong assumption that you'd use the 64-bit installer .. i don't think it takes a big leap of faith though.

Also, the 64-bit command line installer DOES ask you which edition you want to install and also prompts you for your serial number. It actually gives you the option to install the "Server Edition" which translates to "Standard Edition". You'd think if Standard edition wasn't supported it would only give you the option for "Multi Server / Jrun Edition" and "J2EE WAR/EAR".

So .. to the problem at hand. I did try what was suggested in the post you found, but unfortunately it didn't work. I setup the IATEMPDIR using the following commands:

[root@localhost ~]$ mkdir /opt/iatempdir/
[root@localhost ~]$ export IATEMPDIR=/opt/iatempdir

However, I'm still getting the same error only in the IATEMPDIR now :(

exec: 2481: /opt/iatempdir/install.dir.9802/Linux/resource/jre/bin/java: not found

I'm looking for a way to use my system JRE instead of the one used by the installer in the hope that I can bypass the temp version.. maybe that will work, but I haven't figured out how to do it yet..

Thanks again for your feedback Charlie ;)

Submitted by Jason on Wed, 2008-09-10 14:31.

We're making some progress. Big thanks to Umal for Adobe Tech support in India. He really went out of his way to help get this sorted out. Since Unbuntu server isn't officially supported I really appreciate the extra effort taken to see the case through.

Following Umal instructions I was able to get coldfusion-801-lin.bin to run. However, there is still one issue remaining in regards to running cf server in 32-bit mode. The web server connector doesn't work. As Charlie mentioned earlier, adding -ws64 to wsconfig is supposed to get around this, but for me it didn't work.

I initially tried installing the ws connector during the installation process, but it gave the following error message:

"The apache you are trying to configure is a 64-bit binary. You cannot configure a 64 bit apache from this installer."

Ok, so I finished the installation without configuring apache and used the /bin/connectors/apache/apache_connectors.sh script to do it manually. Prior to running it I modified it with the relevant paths and added -ws64.

==========================================================
#!/bin/sh

#
# Configure the Apache connector.
# -dir should be the *directory* which contains httpd.conf
# -bin should be the path to the apache *executable*
# -script should be the path to the script which is used to
# start/stop apache
#
../../runtime/bin/wsconfig \
-server coldfusion \
-ws apache \
-dir /etc/apache2 \
-bin /usr/sbin/apache2 \
-script /usr/sbin/apache2ctl \
-coldfusion \
-ws64 -v

exit $#
==========================================================

Here is the output after running the script:

==========================================================
root@mail:/opt/coldfusion8/bin/connectors# ./apach*
Found JRun server coldfusion at 127.0.0.1:2930
Deleted directory /opt/coldfusion8/runtime/lib/wsconfig/1
Using Apache binary /usr/sbin/apache2
Server version: Apache/2.2.8 (Ubuntu)
Using Apache control script /usr/sbin/apache2ctl
Parsing Apache configuration file /etc/apache2/httpd.conf
Exec'ing chmod 777 /opt/coldfusion8/runtime/lib/wsconfig/1
Set permission to 777 on /opt/coldfusion8/runtime/lib/wsconfig/1
Exec'ing chmod +x /opt/coldfusion8/runtime/lib/wsconfig/1/mod_jrun22.so
Set permission to execute on /opt/coldfusion8/runtime/lib/wsconfig/1/mod_jrun22.so
Created file /opt/coldfusion8/runtime/lib/wsconfig/1/mod_jrun22.so
Could not load file /etc/apache2/sites/0000_any_80_.conf
Wrote file /etc/apache2/httpd.conf
Added JRun configuration to Apache configuration file /etc/apache2/httpd.conf
Created file /opt/coldfusion8/runtime/lib/wsconfig/1/README.txt
Wrote file /opt/coldfusion8/runtime/lib/wsconfig/wsconfig.properties
Exec'ing /usr/sbin/apache2ctl restart
apache2: Syntax error on line 189 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/httpd.conf: Cannot load /Error running "/usr/sbin/apache2ctl restart": exit code was 1
opt/coldfusion8/runtime/lib/wsconfig/1/mod_jrun22.so into server: /opt/coldfusion8/runtime/lib/wsconfig/1/mod_jrun22.so: wrong EError restarting Apache server. The web server must be restarted to complete this operation.
LF class: ELFCLASS32
==========================================================

Charlie, Umal ... Can anyone shed any more light on this issue? Is it possible to run a 32-bit version of apache on a 64-bit server? Isn't the -ws64 flag supposed to work around it?

Note: I also tried running wsconfig with the -apxs flag with is supposed to compile the connector on the fly. However, it complained that i don't have apxs installed. I tried installing httpd-devel as is suggested on some other blogs, but Ubuntu doesn't seem to have that package or at least I couldn't find it.

I see the light at the end of the tunnel ... please let today be my day to get some ColdFusion8 lovin' ....

Submitted by Jason on Sun, 2008-09-07 17:15.

Hi Charlie,
You are a true gentleman and I also didn't mean to sound too defensive. I guess it's one of the problems trying to communicate thoughts and feelings through text. :) Also, I do really appreciate your efforts in the past and hope you weren't offended by my comments. I'm just trying to get to the bottom of it too.

Regarding all the different editions, what i did was select "Server Edition" because that is the only one supported by the Standard license. The command line installer then prompted me for my serial #. At that point it just spat out a generic error message "Your serial number is not valid". So, I had no other option, but to proceed with the trial license. A message at that point would have cleared up the licensing issue straight away and I'll be sure to log a bug with Adobe about it. If I were on the design team I'd ask for the serial first and then supply options for different editions. That would save the user from having know the ins and outs of CF licensing. :)

Anyhow, I guess the search continues. I'll post more details here when I get it sorted out.

- thanks again

Submitted by Jason on Sun, 2008-09-07 20:55.

Cheers Charlie,
Isn't the ultimate answer '42'? The problem I have now is that i can't remember what the question was!! :P

Thanks too for the heads up on wsconfig :)

Submitted by Jason on Mon, 2008-09-08 03:04.

Ok .. this is really pissing me off now. After hours of scouring the net and trying everything I could think of I managed to get the 32-bit installer to run. There was about 30 seconds of relief before my world came crashing down again.

To cut a long story short I figured out that by setting an environment variable LAX_DEBUG=true I could see the debugging output from the InstallAnywhere script.

# export LAX_DEBUG=true

After looking at that I figuring out how to pass a different JVM into the installer and it finally ran. You can pass LAX_VM $JAVA_HOME/bin/java in the command line to use a different JVM.

# ./coldfusion-801-lin.bin LAX_VM $JAVA_HOME/bin/java

So .... woohoo I thought I was all set and then bam .. "The serial number that you entered is invalid. (Press ENTER to continue)"

I have confirmed that the serial is valid through Adobe support, but the installer is still not accepting it. At this point I'm at a total loss ............

Submitted by Jason on Mon, 2008-09-08 13:21.

Hi Charlie,
yeah .. did that. I uninstalled and deleted the old directory structure.

Submitted by Jason on Wed, 2008-09-10 14:37.

Cheers dc, I'll give it a try.

Submitted by Jason on Wed, 2008-09-10 15:00.

Hmm .. seems lipo is an Apple program. I couldn't find any other reference to it for linux. However, I did find this informative post on running 32-bit apps on 64-bit Ubuntu. It sheds a bit more light on what's going on under the covers.

http://narnia.cs.ttu.edu/drupal/node/113

Submitted by Jason on Fri, 2008-09-12 16:00.

The saga continues... Umal from Adobe Tech support has gone beyond the call of duty in helping resolve this issue. However, the solution he posted is still not working. I'm getting yet another dependency issue when trying to compile apache in 32-bit mode. Specifically, the following error occurs when I run make:

/usr/lib/libaprutil-1.so: could not read symbols: File in wrong format

So, now I'm stuck trying to resolve another dependency issue in attempting to shoehorn a 32-bit version of coldfusion into a 64-bit server. When will the madness end? It's issues like this that have left a sour taste in my mouth with coldfusion. When it runs it's a beautiful thing, but over the years, I've wasted so much time getting it to work as advertised that it nullifies the gains made with the RAD framework. In most cases I'd be better off developing with a Spring, JSP and Blaze DS stack.

Even if I was to try running on a supported platform, i.e. RedHat, I'd still have all these issues to contend with. Also, at the end of the day even if I do get it going, it leaves my server in an unstable condition having to rely on hacks to perform upgrades, etc. Adobe, if you're listening, pleeeaaase remove this crazy licensing policy and allow the standard license to run in 64-bit mode.....

Submitted by Jason on Sat, 2008-09-13 14:48.

At long last I can confirm that I was able to get everything to work. The final problem was caused by the aprutils package installed in the Ubuntu package manager. I ran ./configure again and kind of stumbled across this error after removing the existing apache2 package.

Configuring Apache Portable Runtime Utility library...
checking for APR-util... reconfig
configure: error: Cannot use an external APR with the bundled APR-util

Ok .. that kind of lined up with what Vinu was saying, but the 64-bit version was actually installed by the package manager and not the initial attempt to compile apache. After removing the following packages with #apt-get remove libapr1 libaprutil1 the apache compilation went through smoothly.

Now, I've just got to setup Apache and Coldfusion daemons and we should be sorted.

Thanks to everyone for your help with all these issues.

Drupal theme by Kiwi Themes.