Artikel-Schlagworte: „java ispcp“

Tomcat mit ISPCP

Montag, 27. April 2009

Dieses Tutorial zeigt Ihnen, wie Sie Tomcat und die aktuelle ISPCP Version auf einem Webserver ohne Konflikte betreiben können. Leider bietet die aktuelle ISPCP Version noch keinte Unterstützung in diesem Bereich an, daher ist zum einrichten eines Tomcat Webhosting Tarifs über ISPCP etwas Handarbeit gerfordert.

1. Schaffen der Grundstrukturen auf dem Serversystem
Wir gehen beim Hosting System von Debian bzw. Ubuntu Server aus:
Pakete installieren: apt-get install tomcat6 tomcat6-admin libtomcat6-java sun-java5-bin libapache2-mod-jk

2. Konfiguration des Tomcat nach der Installation

Erklärung: domain.tld steht für den Domainnamen, welcher eingerichtet werden soll.

Vorab erstellt man in dem Verzeichnis der entsprechenden Domain den Ordner webapps.

cd /var/www/virtual/domain.tld

mkdir webapps

Damit Tomcat auf die entsprechenden Dateien im Verzeichnis webapps zugreifen kann, muss man jetzt den richtigen User und die Gruppe zuordnen. Mit dem Befehl ls -l lässt sich feststellen, welchen User die anderen Verzeichnisse gehören.

ls -l

chown -R vu0001:www-data webapps

chmod -R 777 webapps

Wenn der Tomcat Server nicht in der selben Gruppe www-data eingerichtet ist, sind Schreibrechte 777 erforderlich, dies ist aber mit Vorsicht zu genießen, denn 777 bedeutet, jeder User darf lesen und schreiben. Besser ist 775 oder gar 770, aber wie gesagt, das ist nur möglich, wenn der Tomcat Server ebenfalls ein Mitglied der Gruppe www-data ist.

Damit Tomcat weiß, wo er jetzt das entsprechende Verzeichnis der Domain findet, muss in der server.xml Datei von Tomcat noch die entsprechende Information hinterlegt werden.

nano /etc/tomcat6/server.xml

Die folgenden Zeilen müssen in dem Bereich zwischen

<Service\>
<Engine>
<Server>
–hier der Eintrag–
</Engine>
</Server>
</Service>
</Engine>

gesetzt werden.

<Host name=”domain.tld” appBase=”/var/www/virtual/domain.tld/webapps” unpackWARs=”true”>
<Alias>www.domain.tld</Alias>

</Host>

Jetzt muss nur noch Tomcat neugestartet werden und schon können .war Archive im webapps Verzeichnis durch Tomcat entpackt werden.

Für unerfahrene Tomcat Nutzer: Standardmäßig ist bei dem Ubuntu Paket von Tomcat der AJP Connector auskommentiert. Dieser muss für eine korrekte Funktionsweise ebenfalls noch aktiviert werden in der Datei /etc/tomcat6/server.xml

<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ enableLookups=”false” />

Einfach die <!– vor und die –> nach diesem Eintrag entfernen.

/etc/init.d/tomcat6 restart

3. Setzen der Informationen in Apache

Zuerst muss man den “mainworker” konfigurieren, welcher dafür zuständig ist, dass alle Informationen über das Java Apache Modul korrekt an Tomcat übermittelt werden.

Hierzu einfach folgenden Code in der Datei /etc/apache2/apache2.conf am Ende ergänzen:

<IfModule mod_jk.c>
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel error
</IfModule>

Außerdem noch die Datei /etc/libapache2-mod-jk/workers.properties prüfen, dass diese wie folgt strukturiert ist:

# Tomcat and Java configuration
#
workers.tomcat_home=/var/lib/tomcat6
workers.java_home=/usr/lib/jvm/java-6-sun-1.6.0.07
ps=/
worker.list=mainworker

# Definition for local worker using AJP 1.3
#
worker.mainworker.type=ajp13
worker.mainworker.port=8009
worker.mainworker.cachesize=20

Die Einträge zur Java und Tomcat Pfad können je nach Tomcat und Java Version abweichen.

Jetzt muss man wissen, was man möchte, möchte man das komplette htdocs Verzeichnis, ein Unterverzeichnis von htdocs oder alle .jsp Dateien im htdocs Verzeichnis an Tomcat weiterreichen lassen.

Die Befehle sehen wie folgt aus:
JkMount “/*” “mainworker” – Gibt alle Inhalte im htdocs Verzeichnis an Tomcat weiter
JkMount “/unterverzeichnis” “mainworker” – gibt nur den Ordner htdocs/unterverzeichnis an Tomcat weiter
JkMount “/*.jsp” “mainworker” - gibt nur alle .jsp Dateien an Tomcat weiter

Der JkMount wird einfach zwischen

<VirtualHost 81.95.3.242:80>

JkMount ….

</VirtualHost>

der entsprechenden Domain, die Tomcat nutzt abgelegt. Anschließend muss Apache neugestartet werden.

Soft Restart:

/etc/init.d/apache2 force-reload

Hard Restart:

/etc/init.d/apache2 restart

Wenn der Neustart von Apache erfolgreich abgeschlossen wurde, muss nur noch die Einstellung fest in den Zyklus von ISPCP verankert werden und schon ist die Einrichtung abgeschlossen.

cp /etc/apache2/sites-enabled/ispcp.conf /etc/ispcp/apache/working

Jetzt können problemlos Java Scripte über Tomcat und Apache2 auf der Webseite angezeigt werden.

Anmerkung:
In der server.xml von Tomcat (/etc/tomcat6/server.xml) muss erst AJP aktiviert werden, damit das JK Apache Modul die Scripte handeln kann. Dies kann man indem man nach den Port 8009 in der Datei sucht und die Informationen für die Auskommentierung entfernt. Anschließend muss Tomcat 6 neugestartet werden, damit der Handler gestartet ist.

Achten Sie auch darauf, dass der User tomcat Mitglied der Gruppe www-data ist.