Installation von Railo mit Tomcat und Apache unter Debian Linux (Teil 1)

Folgende Anleitung soll Euch helfen, Websites mit der kostenlosen Alernative zu Adobe Coldfusion Railo unter Debian zusammen mit Tomcat und Apache zu servieren. 

Als erstes wird ein Java benötigt, falls das noch nicht zur Verfügung steht. Dies sollte problemlos mittels folgendem Befehle machbar sein:

sudo apt-get install sun-java6-jdk

Als nächstes holen wir den Tomcat und entpacken ihn, bei mir aktuell war die Version 6.0.20 (die neueste Version solltet Ihr jeweils unter http://tomcat.apache.org/download-60.cgi finden)

wget http://apache.mirror.digionline.de/tomcat/tomcat-6/v6.0.20/bin/
apache-tomcat-6.0.20.tar.gz
tar zfvx apache-tomcat-6.0.20.tar.gz

Nach dem Download per wget wird der Tomcat in ein permanentes Verzeichnis verschoben, zum Beispiel so:

mv apache-tomcat-6.0.20 /usr/local/tomcat

Dann dafür sorgen, dass sich der Tomcat automatisch mitstartet bei Server-Start, dazu wird die Datei /etc/init.d/tomcat editiert, hier kommen folgenden Zeilen rein:

# 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 /usr/local/tomcat/bin/startup.sh
;;
stop)
sh /usr/local/tomcat/bin/shutdown.sh
;;
restart)
sh /usr/local/tomcat/bin/shutdown.sh
sh /usr/local/tomcat/bin/startup.sh
;;
esac
exit 0

Das Script muss ausführbar sein und beim Serverstart ausgeführt werden. Deswegen noch diese Anpassungen:

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

Gut, soweit fertig, der Tomcat sollte nun laufen. Gestoppt/Gestartet wird mit

/etc/init.d/tomcat start

Nun das Railo holen, entpacken und ins lib-Verzeichnis vom Tomcat legen:

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
mv railo-3.0.1.000-jars/ /usr/local/tomcat/lib

Nun muss die Konfigurationsdatei /usr/local/tomcat/conf/web.xml bearbeitet werden, da muss noch zusätzlich rein:

<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>

Im Element <welcome-file-list> muss noch folgende Ergänzung gemacht werden:

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

Unter Port 8080 sollte nun bereits das Railo mit dem Tomcat zusammenarbeiten, wir können cfml ausliefern.

Wie cfml auch über Port 80 mittels mod_proxy und mod_ajp ausgeliefert werden kann, werde ich einem seperaten Teil beschrieben

symbolischen Link zu Datei oder Ordner setzen

Unter Linux lann man symbolische Links zu einer Datei oder einem Ordner setzen,  so kann man bequem übers Dateisystem Verknüpfungen anlegen.
Ein Symlink ist lediglich eine Referenz und kein richtiges Element.

Hier eine beispielhafte Verwendung von ln:

ln -s /directory_1/file_1 /directory_2/file_2

Mit diesem Befehl wird also von /directory_1/file_1 ein Link zu /directory_2/file_2 gesetzt.

Mehr Informationen zu symbolischen Links gibt’s bei Wikipedia

Ubuntu: Passwort vergessen, was nun?

Vielleicht ist’s Euch ja auch schonmal passiert: am alten Ersatz-Rechner mit Ubuntu-Installation, den man nur alle paar Monate benutzt, habt Ihr das Passwort vergessen..nun gut, halb so wild: falls das Ubuntu das einzige installierte Betriebssystem ist (sind mehrere Betriebssysteme installiert, erscheint der Bootloader sowieso), kann man durch Drücken der ESC-Taste den Bootloader GRUB aufrufen und hier als Option das Starten von Ubuntu im Recovery Mode auswählen. Danach hat man im Terminal-Fenster Root-Rechte und kann mit dem Befehl

passwd <username>

das Passwort von jedem User leicht ändern. Nun nochmal das Passwort bestätigen und speichern, beim nächsten Anmelden ist es dann aktiv.

Terminal: ll statt ls -l benutzen

Für die Freunde der Kommandozeile und Benutzer von Terminal: der Befehl ll steht auf den meisten Linux-Systemen zur Verfügung und stellt eine Abkürzung von der Langform ls -l dar. Um ll auch in Ihrem Terminal benutzen zu können, erstellen Sie bitte in Ihrem Home-Verzeichnis eine Datei mit dem Namen .bash_profile. Dazu rufen Sie Terminal auf, dann sollten Sie sich bereits in Ihrem Home-Verzeichnis befinden. Ist das nicht der Fall, wechseln Sie mit cd ~ dorthin (die Tilde tippt sich auf dem Mac mit Alt+N).

Im Home-Verzeichnis erstellen Sie die Datei mit dem Befehl

touch .bash_profile

Danach editieren Sie die Datei mit vi:

vi .bash_profile

Nach Drücken der Taste "i" kommen Sie in den Einfügemodus, nun kopieren Sie folgende Passage in die Datei:

 

# custom ls commands
# f = no sorting
# G = colorize output
# h = human readable
alias ll="ls -lhfG"
alias la="ls -lahfG"

Dann nach dem Verlassen des Einfügemodus mit Esc jetzt noch speichern mit dem Befehl

:wq 

Nun ist der Alias gesetzt und die Übersichtlichkeit eines Verzeichnisses mit dem Befehl ll ist wesentlich verbessert. Das sieht dann so aus:

Terminal-Fenster mit ll-Optimierung

Besonderheiten char/varchar und nchar/nvarchar in MS-SQL

In MS-SQL gibt es zwei Datentypen die nahezu identisch sind:

char & varchar beziehungsweise nchar & nvarchar

Der einzige Unterschied zwischen char und varchar liegt darin, dass der char-Typ den kompletten Speicher in der Zeile reserviert., wo hingegen der varchar das ganze dynamisch macht.

Beispiel:
Char(255) würde exakt 255 Zeichen in der Zeile reservieren. Es ist egal ob da nur 1 oder 200 Zeichen drin stehen – der Rest wird mit blanks ausgefüllt, was natürlich unnötig Plattenkapazität in Anspruch nimmt.

Beim Suchen oder bei der Ausgabe müssen dann die Blanks wieder getrimmt werden bzw. like %ICHSUCHE% Abfragen durchgeführt werden. Dies geht auf natürlich auf Kosten der Performance.

Varchar(255) würde nur so viele Zeichen reservieren wie der String tatsächlich lang ist. Das ist schön, denn: weniger Speicherverbrauch & bessere und schnellere Suchabfragen

Gleiches gilt übrigens auch analog für binary & varbinary!