How to configure a kick ass development setup - day 4
On our plate today, we'll be installing Apache. I'm using the 2.2.x branch.
- Go and grab your .msi, I'd recommend the one with OpenSSL included. http://httpd.apache.org/download.cgi#apache22
- Install Apache to c:\cf_dev\apache. You'll need to choose "custom install" to change the directory. The other values can be left at default.
- Get CF9 hooked up to Apache, Start-> All Programs-> Adobe-> CF9 xxxx-> Web Server Configuration Tool
- Click Add... to create a new connector
- Choose the CFusion instance and select Apache as your web server. You'll need to pick out the configuration directory (c:\cf_dev\apache\conf) and the binary object (c:\cf_dev\apache\bin\httpd.exe) and check "install CF9 services".
- Edit c:\cf_dev\apache\conf\httpd.conf and add at the bottom (the include pulls in any files we add to dev folder):
#Turn on virtualhosts
NameVirtualHost *:80
NameVirtualHost *:443
Include c:/cf_dev/apache/conf/dev/*.conf
<Files ~ ".hbmxml$">
Order allow,deny
Deny from all
</Files> - Find DirectoryIndex in the httpd.conf file, and add index.cfm to it.
- Create a new site vhost file, we'll start with site1 (from back on day 1). Create it as c:\cf_dev\apache\conf\dev\site1.conf
- Fill it like so:
#site1
<VirtualHost *:80>
<Directory "C:\cf_dev\projects\site1">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
alias /CFIDE C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\CFIDE
alias /cfide C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\CFIDE
# JRun Settings
<IfModule mod_jrun22.c>
JRunConfig Verbose false
JRunConfig Apialloc false
JRunConfig Ignoresuffixmap false
JRunConfig Serverstore "C:/JRun4/lib/wsconfig/1/jrunserver.store"
JRunConfig Bootstrap 127.0.0.1:51020
AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr .cfswf
</IfModule>
DocumentRoot "C:\cf_dev\projects\site1"
ServerName site1.local
ServerAdmin contact@localhost
</VirtualHost> - Note, you should now remove all but LoadModule jrun_module "C:/JRun4/lib/wsconfig/1/mod_jrun22.so" from c:\cf_dev\apache\conf\httpd.conf. This will allow us to use multiple J2EE engines under the same apache config.
- Edit http.conf, and uncomment:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so - Create a Railo based site for Site2 (follow the steps found on day one to first create the site2 project), fill the c:\cf_dev\apache\conf\dev\site2.conf with (we use proxypass to hand of CFM requests):
#site2
<VirtualHost *:80>
<Directory "C:/cf_dev/projects/site2">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<Proxy *>
Allow from 127.0.0.1
</Proxy>
ProxyPreserveHost On
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://localhost:8009/$1$2
DocumentRoot "C:/cf_dev/projects/site"
ServerName site2.local
ServerAdmin contact@localhost
</VirtualHost> - To make Tomcat aware of server, we need to add this just before the </engine> tag at the end of c:\cf_dev\tomcat6\conf\server.xml. It seems like duplication, but it just MUST be done:
<Host name="site2.local" appBase="webapps" unpackWARs="false" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="C:/cf_dev/projects/site2" />
</Host> - Edit your hosts file (mine is at C:\Windows\System32\drivers\etc\hosts) to locally route our requests to the correct place.
127.0.0.1 site1.local
127.0.0.1 site2.local