June 12, 2006

ColdfusionMX7 on Fedora Core 4

First this is insane, and many you you will rightfully say I am out of my mind for suggesting this a solution to installing ColdfusionMX7 on a Fedora Core 4 box, but nevertheless its the solution that seemed to work for me.

Here we go.

I'm assuming that you have installed FC4 with the apache web server from the FC4 distro and then have run yum update to update your server before moving forward. So if you haven't done that...do so now.

Once your all up to date and you can start and stop apache succesfully (which should work out of the box) then get the CFMX7 install binary and run it.

Accept all the defaults and go ahead and configure coldfusion but don't tell it to use apache. Have it install it's built in web server.

Before you do what the end of the install script says to do...do this.

First insure that your local hosts file is setup correctly. If CF can't access things via localhost it gets really confused. I tell you this because I host several virtual sites on my web server and had already set up interfaces for them and things went haywire until I corrected the hosts file.

Go ahead and start the coldfuison server, tail the /opt/coldfusionmx7/logs/cfserver.log file to ensure that there weren't any error's starting the coldfusion server. Go ahead and login to the administrator website and make sure everything looks good.

once that's done edit the /opt/coldfusionmx7/runtime/servers/coldfusion/SERVER-INF/jrun.xml file.

-Go to the section labeld "This is the build in Jrun Web Server
-Set the "deactivated" section to "true"
-Go to the section that starts out "This service is for communicating with native (IIS, Apache..
-Set the "deactivated section to "false"

-Restart Coldfusion and make sure there are no errors.

-Start apache with service httpd start

now both CF and apache should be running but not working together yet. This is more just an exercise to show that both can be started before integrating them.

next use this command to run the cf connector on apache.

from the /opt/coldfusionmx7/runtime/bin/ directory

./wsconfig -ws apache -dir /etc/httpd/conf -bin /usr/sbin/httpd -script /etc/init.d/httpd -coldfusion

It should give you and error when it tries do restart the apache server. and typically speaking issuing a

service httpd start or restart

should fail with NO ERROR MESSAGES. None in the log files and none from the console. This is were I was totally stumped.

If you edit the /etc/httpd/conf/httpd.conf file it should look like this for the connector information:

# JRun Settings
LoadModule jrun_module "/opt/coldfusionmx7/runtime/lib/wsconfig/1/mod_jrun20.so"

JRunConfig Verbose false
JRunConfig Apialloc false
JRunConfig Ssl false
JRunConfig Ignoresuffixmap false
JRunConfig Serverstore "/opt/coldfusionmx7/runtime/lib/wsconfig/1/jrunserver.store" JRunConfig Bootstrap
#JRunConfig Errorurl optionally redirect to this URL on errors
AddHandler jrun-handler .cfm .cfc .cfml .jsp .jws

This is where the craziness starts...

-Change the selinux settings to start running in permissive mode.



I know that sounds insane and I've never never never had to reboot a linux box after installing a piece of software...but unless you reboot the server...apache never tells you what the errors are. Once you reboot the server either apache will just start and you'll be all good...OR it will give you an error about permisions. If it does...it's a SELinux problem...just do a google on the error and you'll see how to use chcon to fix the security context.

If things still aren't working right...do a netstat -a and insure that port's 2920 and 51011 are being listened on. if they aren't then there is something wrong with cf.

Anyway...that's my experience...I only wish i had rebooted the server once apache didn't return errors upon failing sooner. I hope this helps...I have not verified this information in any way...it's just what it took for me to get it working in my environment.


No comments: