Es gibt schon einige Installationsanleitungen im Netz, wie ein Railo Server inklusive dem Indianerhäuptling Apache2 auf einer Linux Kiste installiert werden kann.
Wieso also noch einmal ein solches Howto schreiben?! Dazu gibts mehrere gute Gründe. Der Beste davon ist wahrscheinlich, dass ich durch abklappern einiger Blogs und Webseiten einen für mich funktionstüchtigen Bausatz an Anweisungen und Anleitungen zusammenstellen musste, damit die Installation überhaupt geklappt hat. Das möchte ich mir in Zukunft ersparen, deshalb hier kurz und knackig wies für mich funktioniert hat.
Mein Bausatz basiert auf einer Ubuntu 9.04 Karmic Koala Kiste welche auf einem vServer bei den Jungs von Rackspace Cloud läuft.
Als allererstes muss die APT-Konfiguration um die Multiverse Pakete erweitert werden, damit das sun-java6-jdk Paket installiert werden kann. Also sicherstellen, dass die /etc/apt/sources.list folgenden Inhalt besitzt:
deb <a href="http://archive.ubuntu.com/ubuntu/">http://archive.ubuntu.com/ubuntu/</a> karmic main restricted universe multiverse
deb-src <a href="http://archive.ubuntu.com/ubuntu/">http://archive.ubuntu.com/ubuntu/</a> karmic main restricted universe multiverse
deb <a href="http://archive.ubuntu.com/ubuntu/">http://archive.ubuntu.com/ubuntu/</a> karmic-updates main restricted universe multiverse
deb-src <a href="http://archive.ubuntu.com/ubuntu/">http://archive.ubuntu.com/ubuntu/</a> karmic-updates main restricted universe multiverse
deb <a href="http://security.ubuntu.com/ubuntu">http://security.ubuntu.com/ubuntu</a> karmic-security main restricted universe multiverse
deb-src <a href="http://security.ubuntu.com/ubuntu">http://security.ubuntu.com/ubuntu</a> karmic-security main restricted universe multiverse
Nun die neuen Paketinformationen laden und da meine Ubuntu Box ganz frisch war, hab ich grad noch das System auf einen aktuellen Stand gebracht. Danach noch die benötigten Pakete installieren und wir sind bereit für die weiteren Konfigurationen.
root@linux# apt-get update
root@linux# apt-get upgrade
root@linux# apt-get install build-essential
root@linux# apt-get install automake
root@linux# apt-get install apache2
root@linux# apt-get install apache2-threaded-dev
root@linux# apt-get install sun-java6-jdk
Damit Java ausgeführt werden kann, müssen wir die JAVA_HOME Variable in der /etc/profile hinzufügen und die Umgebungsvariablen neu auslesen.
root@linux# vi /etc/profile
#Am Ende der Datei folgende Zeile hinzufuegen und danach speichern:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
root@linux# source /etc/profile
Als nächstes laden wir uns den aktuellen Railo Server von http://www.getrailo.org herunter und zwar den ohne JRE (die haben wir ja bereits von Hand installiert).
root@linux# wget <a href="http://www.getrailo.org/down.cfm?item=/railo/remote/download/3.1.2.001/server/all/railo-3.1.2.001-resin-3.1.9-without-jre.tar.gz">http://www.getrailo.org/down.cfm?item=/railo/remote/download/3.1.2.001/server/all/railo-3.1.2.001-resin-3.1.9-without-jre.tar.gz</a>
Railo installieren wir unter /opt. Also das Tar-File dahin verschieben, entpacken und zu Komfortzwecken einen Symlink anlegen.
root@linux# mv railo-3.1.2.001-resin-3.1.9-without-jre.tar.gz /opt/railo-3.1.2.001-resin-3.1.9-without-jre.tar.gz
root@linux# tar -xvzf railo-3.1.2.001-resin-3.1.9-without-jre.tar.gz
root@linux# ln -s railo-3.1.2.001-resin-3.1.9-without-jre railo
Et Voilà! Railo und Resin sind bereits fertig installiert. Um den Railo Application Server zu starten führt man das folgende Shellscript aus:
/opt/railo/bin/httpd.sh start
Ein Aufruf der URL http://my.domain.ch:8600 beweist: Der Server läuft!
Da die Auslieferung von ColdFusion Templates über Apache mehr Spass macht, muss dieser nun noch konfiguriert werden. Dazu muss zuerst das Modul mod_caucho kompiliert werden. Klingt kompliziert? Überhaupt nicht! Einfach folgende Schritte im Verzeichnis /opt/railo ausführen:
root@linux# ./configure --with-apxs=apxs2
root@linux# make
root@linux# make install
DER KOMPILIERUNGSVORGANG MUSS HIER FEHLSCHLAGEN
Die Makefile.in als nächstes sichern und mit der Makefile.am ersetzen und das ganze noch eins mal ausführen.
root@linux# mv Makefile.in Makefile.in.bak
root@linux# mv Makefile.am Makefile.in
root@linux# ./configure --with-apxs=apxs2
root@linux# make
root@linux# make install
Diesmal sollte es klappen und das Caucho Modul wurde erfolgreich installiert. Der letzte Schritt ist die Anzeige des Caucho-Status zu deaktivieren und danach bei den gewünschten VirtualHosts den Caucho-Request-Handler hinzuzufügen. Aber eins nach dem anderen… Jetzt erst mal den Caucho-Status Publikator in der /etc/apache2/httpd.conf abschalten. Dazu den Parameter CauchoStatus auf no setzen:
#
# mod_caucho Resin Configuration
#
LoadModule caucho_module /usr/lib/apache2/modules/mod_caucho.so
ResinConfigServer localhost 6800
CauchoConfigCacheDirectory /tmp
CauchoStatus no
Und nun bei den gewünschten VirtualHosts (Dateien unter /etc/apache2/sites-available den Caucho-Request-Handler hinzufügen…
<VirtualHost *:80>
ServerAdmin admin@domain.ch
ServerAlias my.domain.ch
DocumentRoot /var/www/my.domain.ch
DirectoryIndex index.cfm index.html index.htm
<Directory /var/www/my.domain.ch>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
<Location /var/www/my.domain.ch/*>
SetHandler caucho-request
</Location>
</VirtualHost>
Damit die Webseite auch wirklich aktiviert ist, muss unter Ubuntu ein Symlink zum soeben konfigurierten File existieren. Es ist also sicher zu stellen, dass unter /etc/apache2/sites-enabled ein Symlink existiert der auf die genannte Datei verweist.
Neustart des Indianers nicht vergessen.
Als letzten Schritt muss dem Resin nun die neue Webseite bekannt gemacht werden. Dazu bearbeitet man die /opt/railo/conf/resin.conf, kopiert im Bereich der Cluster den Default Host und ändert die Parameter entsprechend ab:
<!-- configures the default host, matching any host name -->
<host id="" root-directory=".">
<!--
- configures an explicit root web-app matching the
- webapp's ROOT
-->
<web-app id="/" root-directory="webapps/ROOT"/>
<web-app id="/resin-admin" root-directory="${resin.home}/php/admin">
<!--
- Administration application /resin-admin
-->
<prologue>
<resin:set var="resin_admin_external" value="false"/>
<resin:set var="resin_admin_insecure" value="true"/>
</prologue>
</web-app>
</host>
<!-- Hier wirds interessant -->
<host id="my.domain.ch">
<root-directory>/var/www/my.domain.ch</root-directory>
<web-app id="/" document-directory="" />
</host>
Jetzt Railo noch einmal neu starten und die Installation ist abgeschlossen. War gar nicht soooo schwierig oder?
/opt/railo/bin/httpd.sh stop
/opt/railo/bin/httpd.sh start
Immer nützlich: Die angepassten Files befinden sich als Beispiel im Zipfile im Anhang. Zusätzlich befindet sich dort auch das fertig kompilierte Modul mod_caucho, welches nur noch nach /usr/lib/apache2/modules kopiert werden muss. Zusätzlich im Zipfile: Jeweils ein Start respektive Stop Skript welches den Start / Stop von Apache2 sowie Railo in einem vornimmt.