This installment in my series detailing how my local web development environment is set up is going to deal with my application server setup. After visiting with several folks at the cf.Objective() conference this year, I was convinced that I needed to configure my ColdFusion 8 installation in “multi-server” mode.
There are a few advantages to installing ColdFusion in multi-server mode versus stand-alone mode. The main advantage for my situation is that multi-server mode lets me configure an instance of ColdFusion to match each of my clients’ environments. Imagine if you had two clients each with legacy applications that you need to support. If both clients had (as many development shops did at one time) created a ColdFusion mapping called “CustomTags”, you’d have a serious issue on your hands when trying to set up your local environment to work on these applications. Since ColdFusion can only point a mapping to a single folder, if you have installed the stand-alone version of ColdFusion, you’d either have to put all files from every “CustomTags” mapping in one folder, or constantly be updating the directory that mapping points to. Neither are good solutions and would ultimately lead to problems. With multi-server install, you get the ability to create a completely separate ColdFusion environment for each client, and therefore the ability to create a “CustomTags” mapping in each that points to the correct directory. The same applies to datasource connections and all the other settings managed by the ColdFusion administrator.
The typical install location for ColdFusion using the multi-server installation is /Applications/JRun4/servers/cfusion on the Mac and C:\JRun4\servers\cfusion on Windows. I’ve changed the install location on my setup to /opt/JRun4/servers/cfusion to more closely match the configuration when installing into Linux or Unix machines. This also has the advantage of getting the JRun4 directory out of my Applications folder–there is enough stuff in there already as it is.
I also don’t have ColdFusion services start when I boot my laptop. Since I regularly switch clients during any given period between reboots, I manually start all my ColdFusion instances in a terminal session with the command