Kapsin logo

Kapsi Internet-käyttäjät ry

Java-sivujen käyttö Tomcatilla

Vanhentunut ohje
Tämä ohje on joko osin tai kokonaan vanhentunut. Ohjetta saattaa kyetä soveltamaan uudemmilla www-palvelimilla, mutta toiminnasta ei ole takeita.

Tomcat on alusta Java-pohjaisten sivujen ajamiseen. Kapsilla sitä ei ole keskitetysti asennettuna, mutta kohtuullisella vaivalla palvelimen käyttö onnistuu myös kotihakemistosta.

Huom: Erillisen Tomcat-palvelimen ajaminen vie paljon muistia, joten java-sivujen tarve kannattaa harkita tarkasti, ja käyttää muita sivustotekniikoita mikäli mahdollista.

Tässä ohjeessa neuvotaan Tomcatin asentaminen proxy-tyyppisesti. Tällöin Apache www-palvelin asetetaan välittämään pyynnöt toisessa portissa ajettavalle Tomcat-palvelimelle.

Tomcatia varten tarvitaan paikallisesti käytettävä portti, jonka voi valita vapaasti väliltä 30000–­­­40000. Ristiriitojen välttämiseksi kannattaa valita satunnainen porttinumero, eikä tasalukua.

Ohje edellyttää jonkin verran shell-käytön osaamista ja ennenkaikkea viitseliäisyyttä, joten aivan aloittelijoille sitä ei voi suositella.

Ohjelmien asennus

Komennot suoritetaan Lakka-palvelimella ssh-yhteyden kautta.

  1. Luodaan hakemisto Tomcatille ja Javalle. Ohjeessa käytetään hakemistoa tomcat kotihakemiston juuressa:
    mkdir ~/tomcat
    cd ~/tomcat
    
  2. Java JRE:n lataaminen. Sunin sivuilta ladataan Java Runtime Environment (JRE) Linux self-extracting file. Tiedoston nimen pitäisi olla suunnilleen jre-6u2-linux-i586.bin.
  3. Puretaan Java JRE tomcat-hakemiston alla. Purkuohjelma pyytää ensin hyväksymään lisenssin, ja purkautuu sitten hakemistoon jre1.6.0_02.
    sh jre-6u2-linux-i586.bin
  4. Tomcatin lataaminen. Tomcatin sivuilta ladataan uusin core-binäärijakelu .tar.gz-muodossa.
  5. Puretaan Tomcatin paketti tomcat-hakemiston alla:
    tar xzf apache-tomcat-6.0.14.tar.gz
  6. Aiemmin valitun porttinumeron asettaminen. Muokataan tiedostoa ~/tomcat/apache-tomcat-6.0.14/conf/server.xml :

    Www-palvelun portti asetetaan tiedoston keskivaiheilla (huomioi, että tiedostossa on esimerkkejä kommentoituna, joiden muuttaminen ei hyödytä):

    <Connector port="34567" protocol="HTTP/1.1" ...

    Lisäksi täytyy asettaa hallintapuolen käyttämä portti:

    <Server port="34568" shutdown="SHUTDOWN">

    Lisäksi tiedostossa on erinäisiä muita kommentoimattomia porttiasetuksia. Niitä ei tarvita, joten ne kannattaa kommentoida jottei tule porttiristiriitoja muiden käyttäjien kanssa.

  7. Tomcatin käyttämän java-ympäristön muuttaminen. Tämän voi tehdä asettamalla JRE_HOME .bashrc:ssä, mutta skriptikäytön kannalta lienee parempi muokata Tomcatin tiedostoa ~/tomcat/apache-tomcat-6.0.14/bin/setclasspath.sh .

    Tiedoston alkuun muutaman ensimmäisen rivin (komentotulkin nimi ja kommentteja) jälkeen lisätään seuraava rivi. Polkuun vaihdetaan oma käyttäjätunnus, sekä JRE:n polku mikäli versio on muu kuin ohjeessa.

    JRE_HOME=/home/users/käyttäjätunnus/tomcat/jre1.6.0_02
  8. Tomcatin testikäynnistys:

    sh ~/tomcat/apache-tomcat-6.0.14/bin/startup.sh

    Tomcatin esimerkkisivuja voi testata www-palvelimelta paikallisesti tekstiselaimella. Osoitteeseen vaihdetaan itse valittu portti:

    w3m http://10.0.0.8:portti/

Apachen proxy-toiminto

Haluttuun www-hakemistoon (esimerkiksi ~/public_html/tomcat/) luodaan .htaccess-tiedosto. Tiedoston sisältöön täytyy muuttaa itse valittu portti.

RewriteEngine On
RewriteRule ^(.*)$ http://10.0.0.8:portti/$1 [P]

Nyt Tomcatin sivujen pitäisi näkyä ko. osoitteessa, (esimerkissä http://kapsi.fi/~kayttaja/tomcat/). Tosin jotkin linkit ovat yhä rikki, koska Tomcat antaa väärän polun uudelleenohjauksiin, kuten osoitteella http://kapsi.fi/~kayttaja/tomcat/docs. Sen saa korjattua server.xml:ssä lisäämällä Connector-osioon proxyName ja proxyPort-asetukset:

<Connector port="34567" protocol="HTTP/1.1" ...
     proxyName="koti.kapsi.fi/~kayttaja/tomcat" proxyPort="80"/>

Asetuksen jälkeen Tomcat täytyy käynnistää uudelleen shutdown.sh ja startup.sh -skripteillä.

Ongelmatilanteet

Ongelmatilanteissa apua voi etsiä logs-hakemiston alla olevista lokitiedostoista. Näistä catalina-logit kannattaa tarkistaa ensimmäisenä, sillä niistä näkyy käynnistyykö palvelin laisinkaan.