Een goede ontwikkelomgeving, Adobe ColdFusion en Railo - 2

Posted by Erik-Jan Jaquet on January 25, 2010

0 comments

Zoals beloofd het vervolg over mijn installatie van een goede ontwikkelomgeving, waarin ik met meerdere servers kan testen.

In deel 1 beschreef ik al de installatie van Adobe Coldfusion, in dit deel gaan we daar Railo aan toevoegen. Ik gebruik hiervoor Tomcat als Java server.

De truc is, om in de Apache configuratie per virual host aan te geven welke server gebruikt dient te worden.

De benodige Sun Java versie hadden we in deel 1 al geinstalleerd, deze is dus al aanwezig. Dan is de eerste stap om Tomcat te installeren.

Tomcat

Download eerst de benodigde versie van Tomcat. Momenteel is dat 6.0.20. Deze pak je dan uit in een tijdelijke directory.

wget http://apache.hoxt.com/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
tar xvzf apache-tomcat-6.0.20.tar.gz

Daarna verplaatsen we hem naar een permanente lokatie, en met een naam zonder het versie nummer erin. Ik gebruik zelf altijd de OPT directory voor alle te installeren pakketten.

sudo mv apache-tomcat-6.0.20 /opt/tomcat

Nu wil ik ervoor zorgen dat Tomcat automatisch wordt opgestart, dus een startup script is noodzakelijk:

sudo gedit /etc/init.d/tomcat

Het volgende script heb ik van het internet, deze plak je in het net aangemaakte bestand.

# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid

export JAVA_HOME=/usr/lib/jvm/java-6-sun

case $1 in
start)
        sh /opt/tomcat/bin/startup.sh
        ;; 
stop)   
        sh /opt/tomcat/bin/shutdown.sh
        ;; 
restart)
        sh /opt/tomcat/bin/shutdown.sh
        sh /opt/tomcat/bin/startup.sh
        ;; 
esac   
exit 0

Nu nog dit script de goede rechten geven en een symbolic link aanmaken:

sudo chmod 755 /etc/init.d/tomcat
sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat

Tomcat is nu geinstalleerd en klaar om Railo te ondersteunen!

Railo

Als eerste download je de Railo Custom versie, en kopieer je deze bestanden naar de Tomcat lib directory.

wget http://www.getrailo.org/down.cfm?item=/railo/remote/download/3.1.2.001/custom/all/railo-3.1.2.001-jars.tar.gz
tar zxvf railo-3.1.2.001-jars.tar.gz
sudo mv railo-3.1.2.001-jars/* /opt/tomcat/lib

De volgende stap is om Railo en Tomcat samen te laten werken.

Eerst passen we de web.xml file van Tomcat aan, om te vertellen dat hij Coldfusion pagina's kan serveren:

sudo gedit /opt/tomcat/conf/web.xml

Binnen het web-app element plak je de volgende code:

<servlet>
<servlet-name>CFMLServlet</servlet-name>
<servlet-class>railo.loader.servlet.CFMLServlet</servlet-class>
<init-param>
<param-name>configuration</param-name>
<param-value>{web-root-directory}/WEB-INF/railo/</param-value>
<description>Configuraton directory</description>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CFMLServlet</servlet-name>
<url-pattern>*.cfm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CFMLServlet</servlet-name>
<url-pattern>*.cfml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CFMLServlet</servlet-name>
<url-pattern>*.cfc</url-pattern>
</servlet-mapping>

En in de welcome-file list de volgende regels:

<welcome-file>index.cfm</welcome-file>
<welcome-file>index.cfml</welcome-file>

Nu weet Tomcat van het bestaan van Railo en voor welke bestanden hij Railo kan gebruiken.

Apache en Tomcat

Als laatste dan moeten we Apache en Tomcat samen laten werken, en per site aan kunnen geven of deze gebruik maakt van Adobe CF of van Railo.

Apache heeft een extra module nodig voor Tomcat dus deze installeren we als eerste:

sudo apt-get install libapache2-mod-jk

Om aan te geven dat Apache met Tomcat moet samen werken maken we een bestand aan dat workers.properties heet en de informatie voor de connector bevat.

sudo gedit /etc/apache2/workers.properties

Plak hier de volgende inhoud in:

worker.list=default

worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Dan moeten we aan Apache vertellen deze file in te lezen, door de volgende regels toe te voegen aan httpd.conf:

# Mod_jk settings
JkWorkersFile workers.properties

Virtual host

Nu zijn we klaar om de virtuele host in Apache aan te maken. Voor iedere virtuele host in Apache maken we ook een site aan in Tomcat:

sudo gedit /opt/tomcat/conf/server.xml

De site definieren we als volgt:

<Host name="www.jeeigensite.nl" appBase="webapps">
    <Context path="" docBase="/var/www/www.jeeigensite.nl"/>
</Host>

Hierbij vul je dus bij Host name de hostname in van je nieuwe host. De appBase blijft altijd webapps. Bij context dien je alleen de docBase aan te passen naar de directory van je site, meestal in de /var/www directory.

Dan in Apache een virtual host aanmaken:

sudo gedit /etc/apache2/sites-available/localhost.railo

Hierin plak je de volgende regels:

<VirtualHost *:80>
    ServerName www.jeeigensite.nl
    DirectoryIndex index.cfm index.html
    DocumentRoot "/var/www/www.jeeigensite.nl"

    <Directory /var/www/www.jeiegensite.nl>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    JkMount /*.cfm* default
</VirtualHost>

Hierbij de ServerName en de DocumentRoot weer aanpassen met je eigen gegevens.

Ook deze site moeten we weer activeren:

$ sudo a2ensite localhost.railo

Nu twee servers herstarten en klaar:

$ sudo /etc/init.d/apache2 restart
$ sudo /etc/init.d/tomcat restart

Als alles goed is gegaan dan kan je nu de Railo admin benaderen op de volgende URL;

http://www.jeiegensite.nl/railo-context/admin/web.cfm

Dat was het! Nu kan je je eigen virtual hosts aanmaken en aangeven van welke CF server ze gebruik moeten maken!

Veel succes!

Comments

Leave Your Response

Tell us about yourself
Comment and preferences
Leave this field empty: