Instalacja Tomcat 6 i bibliotek mu towarzyszących w Debian Lenny

Instalacja Tomcat 6 i bibliotek mu towarzyszących w Debian Lenny (wersja 32bitowa z jądrem 2.6.26-2-686) – powód, dopiero w Ubuntu znajdziemy oficjalne paczki z Tomcat 6.

Założenie jest takie, że Tomcat oraz JDK
zostaną zainstalowane z paczek przygotowanych
przez producentów,
(Oracle [niegdyś Sun) JDK)
i Tomcat fundacji Apache

Dla Tomcata wymagane jest zainstalowanie JDK w wersji 5
lub wyższej, stabilną jest 6u20 (1.6.0.20)

0a. Na potrzeby pobrania wszystkich bibliotek
trzeba się będzie zaopatrzyć w strukturę katalogów

mkdir /root/java
cd /root/java

1. Niestety, trzeba skorzystać z wizualnych
przeglądarek, aby pobrać JDK
(wymagana jest obsługa javascriptu)

http://java.sun.com/javase/downloads/widget/jdk6.jsp

i zapisujemy jako

jdk-6u20-linux-i586.bin

2. Pobieramy Tomcat w wersji 6.0.26

wget http://www.apache.net.pl/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26.zip

3. Pobieramy dodatkowy program "Deployer",
którym będziemy się posługiwać z linii poleceń,
do usuwania/wgrywania aplikacji.

wget http://www.apache.net.pl/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26-deployer.zi

4. Tworzymy katalog /opt/java/libs
i przenosimy do katalogu /opt/java/libs instalator
lub go kopiujemy

mkdir -p /opt/java/libs
mv /root/java/jdk-6u20-linux-i586.bin /opt/java/libs

5. Nadajemy uprawnienia do wykonania dla instalatora JDK

chmod +x /opt/jdk-6u20-linux-i586.bin

Należy przy tym pamiętać, że instalator domyślnie
rozpakowuje biblioteki do katalogu, w którym się
aktualnie znajdujemy,
czyli warto przejść do /opt/java/libs

cd /opt/java/libs
./jdk-6u20-linux-i586.bin

Czeka nas długie przewijanie ekranu poprzez przytrzymanie
Enter i czytanie licencji, aż dojdziemy do pytania
"Please enter "yes" or "no".
Do you agree to the above license terms? [yes or no]“

wpisujemy yes i “Enter”

Na zakończenie instalacji też raz Enter
i done

6. To teraz czas sprawdzić, czy java odpowiada

/opt/java/libs/jdk1.6.0_20/bin/java -version

7. Przystępujemy do instalacji serwera Tomcat,
i tak, aby nie zakłócić struktury umieszczania
bibliotek w systemie

mkdir -p /opt/http-servers/j2ee/tomcat
cp /root/java/apache-tomcat-6.0.26.zip /opt/http-servers/j2ee
cp /root/java/apache-tomcat-6.0.26-deployer.zip /opt/http-servers/j2ee
cd /opt/http-servers/j2ee/

apt-get install unzip
unzip /opt/http-servers/j2ee/tomcat

i mamy rozpakowaną dystrybucję serwera

8. Kroki konfiguracyjne,

Tomcat bez Javy, nie ruszy.

cd /opt/http-servers/j2ee/apache-tomcat-6.0.26/bin

i tworzymy skrypt do uruchamiania Tomcata
zawierający wiersze

mkdir -p /root/scripts/j2ee
vim /root/scripts/j2ee/start-tomcat.sh

skrypt:
#!/bin/sh
CATALINA_HOME=/opt/http-servers/j2ee/apache-tomcat-6.0.26
export CATALINA_HOME
JAVA_HOME=/opt/java/libs/jdk1.6.0_20
export JAVA_HOME
$CATALINA_HOME/bin/startup.sh

chmod +x /root/scripts/j2ee/start-tomcat.sh

należy również nadać uprawnienia do wykonywania
dla wszystkich skryptów sh
w katalogu $CATALINA_HOME/bin

chmod 775 /opt/http-servers/j2ee/apache-tomcat-6.0.26/bin/*.sh

i uruchamiamy skrypt
/root/scripts/j2ee/start-tomcat.sh

Powinniśmy otrzymać komunikaty
informujące, że dane zmienne systemowe
są wykorzystywane:


Using CATALINA_BASE:   /opt/http-servers/j2ee/apache-tomcat-6.0.26
Using CATALINA_HOME:   /opt/http-servers/j2ee/apache-tomcat-6.0.26
Using CATALINA_TMPDIR: /opt/http-servers/j2ee/apache-tomcat-6.0.26/temp
Using JRE_HOME:        /opt/java/libs/jdk1.6.0_20
Using CLASSPATH:       /opt/http-servers/j2ee/apache-tomcat-6.0.26/bin/bootstrap.jar

Utworzenie skryptu do zatrzymania serwera

vim /root/scripts/j2ee/stop-tomcat.sh

skrypt:
#!/bin/sh
CATALINA_HOME=/opt/http-servers/j2ee/apache-tomcat-6.0.26
export CATALINA_HOME
JAVA_HOME=/opt/java/libs/jdk1.6.0_20
export JAVA_HOME
$CATALINA_HOME/bin/shutdown.sh

chmod +x /root/scripts/j2ee/stop-tomcat.sh

8a. Testowanie, czy usługa działa
Domyślnie serwer nasłuchuje na wszystkich interfejsach
sieciowych dostępnych dla serwera
na porcie 8080

Przeglądarka, http://adres_ip:8080/

i strona główna Tomcata

To jeszcze teraz przydałoby się spróbować
dowolną aplikację wgrać.

W tym celu uruchamiamy skrypt
/root/scripts/j2ee/stop-tomcat.sh

i przechodzimy do $CATALINA_HOME/conf

cd /opt/http-servers/j2ee/apache-tomcat-6.0.26/conf

i edytujemy plik tomcat-users.xml,

Jest to domyślny sposób przechowywania
listy kont użytkowników,
którymi możemy się posługiwać w ramach serwera.
W tomcat-users.xml również dla danego konta
użytkownika definiujemy role (od 1 do +)
oraz hasło.

Pomiędzy tagi <tomcat-users>
a </tomcat-users>

wstawiamy wiersz

<user username=”zarzadca” password=”twoje_tajne_haslo_1″ roles=”manager”/>

Otwieramy przeglądarkę,
przechodzimy do http://adres_ip:8080/

i klikamy na link Tomcat Manager

lub bezpośrednio

http://adres_ip:8080/manager/html

Jest to typowy sposób uwierzytelniania HTTP BASIC Authentication,
co ciekawe, nie potrzeba dodawać do tomcat-users.xml
wiersza <role rolename=”manager”/>
pomimo takiego wskazania w przypadku niepoprawnego
wprowadzenia danych.

8b. wgrywamy najprostszą aplikację w postaci pliku war
poprzez formularz z sekcji “WAR file to deploy”

10.

Instalujemy pakiet Deployer

I tu zaczynają się schody… chyba

Pakiet Deployer wymaga narzędzia ANT

cd /root/java
wget http://www.apache.net.pl/ant/binaries/apache-ant-1.8.1-bin.tar.gz
cp /root/java/apache-ant-1.8.1-bin.tar.gz /opt/java/libs
cd /opt/java/libs
tar -xf apache-ant-1.8.1-bin.tar.gz
rm apache-ant-1.8.1-bin.tar.gz

czyli posiadamy już ścieżkę do ANTa

/opt/java/libs/apache-ant-1.8.1/bin

więc co należy?

10a. Skrypty, skrypty, skrypty,

vim /root/scripts/j2ee/deployer-tomcat.sh

skrypt:
#!/bin/sh
CATALINA_HOME=/opt/http-servers/j2ee/apache-tomcat-6.0.26
export CATALINA_HOME
JAVA_HOME=/opt/java/libs/jdk1.6.0_20
export JAVA_HOME
ANT_HOME=/opt/java/libs/apache-ant-1.8.1
export ANT_HOME
$ANT_HOME/bin/ant $1 $2 $3 $4 $5

chmod +x /root/scripts/j2ee/deployer-tomcat.sh

10b.

Dodanie pakietu “Deployer” do Tomcata – w tym przypadku
tylko rozpakujemy zadania dla ANT_HOME/lib

[co ważne, nie musi się on znaleźć w katalogu
serwera, natomiast aby utrzymać w miarę
spójną bazę bibliotek dodamy do nowo tworzonego
katalogu deployer w $CATALINA_HOME ]

cd /opt/http-servers/j2ee/apache-tomcat-6.0.26
cp /root/java/apache-tomcat-6.0.26-deployer.zip /opt/http-servers/j2ee/apache-tomcat-6.0.26
unzip apache-tomcat-6.0.26-deployer.zip
mv apache-tomcat-6.0.26-deployer deployer
rm apache-tomcat-6.0.26-deployer.zip
cd ./deployer

10c.

Należy skopiować z katalogu deployer plik zawierający definicje
zadań (tasks), które można będzie wykonać.

cp lib/catalina-ant.jar /opt/java/libs/apache-ant-1.8.1/lib

teraz trzeba przygotować plik build.xml (w naszym przypadku domyślnym
zadaniem jest deploy, czyli wgranie aplikacji)

i uruchomić ANT z linii poleceń,
plik build.xml należy umieścić w tym samym katalogu co nasz skrypt
deployer-tomcat.sh

i wywołać przekazując parametry do wiersza poleceń

1)
-Dusername=login_konta_w_roli_manager
2)
-Dpassword=haslo_konta_w_roli_manager
3)
-DcontextPath=/adres_url_aplikacji

4)
deploy/reload/undeploy (z zależności co chcemy uzyskać)

5)     ten parametr jest tylko wymagany, kiedy będziemy chcieli
załadować aplikację na serwer
-DsrcWAR=sciezka_do_pliku_war

Przykłady:
./deployer-tomcat.sh -Dusername=zarzadca -Dpassword=twoje_tajne_haslo_1 -DcontextPath=/moja_aplikacja deploy -DsrcWAR=/root/java/testowa.war
./deployer-tomcat.sh -Dusername=zarzadca -Dpassword=twoje_tajne_haslo_1 -DcontextPath=/moja_aplikacja undeploy

*********************************

zawartość pliku build.xml

<project name=”Moja aplikacja” default=”deploy” basedir=”.”>

<!–
Tutaj jest okreslana zmienna, z wartości której pobierana jest
ścieżka bezwględna do lokalnego pliku war
–>
<property name=”srcWAR”    value=”"/>

<property name=”contextPath”     value=”/myapp”/>

<property name=”url”      value=”http://localhost:8080/manager”/>
<property name=”username” value=”myusername”/>
<property name=”password” value=”mypassword”/>

<taskdef name=”deploy”    classname=”org.apache.catalina.ant.DeployTask”/>
<taskdef name=”list”      classname=”org.apache.catalina.ant.ListTask”/>
<taskdef name=”reload”    classname=”org.apache.catalina.ant.ReloadTask”/>
<taskdef name=”resources” classname=”org.apache.catalina.ant.ResourcesTask”/>
<taskdef name=”roles”     classname=”org.apache.catalina.ant.RolesTask”/>
<taskdef name=”start”     classname=”org.apache.catalina.ant.StartTask”/>
<taskdef name=”stop”      classname=”org.apache.catalina.ant.StopTask”/>
<taskdef name=”undeploy”  classname=”org.apache.catalina.ant.UndeployTask”/>

<target name=”deploy” description=”Install web application”>
<deploy url=”${url}” username=”${username}” password=”${password}”
path=”${contextPath}” war=”file:${srcWAR}”/>
</target>

<target name=”reload” description=”Reload web application”>
<reload url=”${url}” username=”${username}” password=”${password}”
path=”${contextPath}”/>
</target>

<target name=”undeploy” description=”Remove web application”>
<undeploy url=”${url}” username=”${username}” password=”${password}”
path=”${contextPath}”/>
</target>
</project>

Informacje o interopnet

just a common very lazy software developer, speaking interop, not the computer language
Ten wpis został opublikowany w kategorii Java. Dodaj zakładkę do bezpośredniego odnośnika.

2 odpowiedzi na „Instalacja Tomcat 6 i bibliotek mu towarzyszących w Debian Lenny

  1. Guc pisze:

    Moje uwagi techniczne:

    Kawałki kodu przeklejane z konsoli powinny być pisane równą czcionką – na przykład Curier.
    Polecenia typu: “./deployer-tomcat.sh” powinny być poprzedzone # jeśli wykonywane są z roota, lub $ jeśli ze zwykłego usera. :)

    A teraz testuje wpisywanie:
    test

    asd
  2. Guc pisze:

    O tak:

    # ./deployer-tomcat.sh -Dusername=zarzadca -Dpassword=twoje_tajne_haslo_1 -DcontextPath=/moja_aplikacja deploy -DsrcWAR=/root/java/testowa.war

    :)
    PS. szkoda że nie ma możliwości edytowania swoich komentarzy – chociaż przez jakiś czas po ich opublikowaniu (jeszcze przed moderacją)

Dodaj komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Zmień )

Twitter picture

You are commenting using your Twitter account. Log Out / Zmień )

Facebook photo

You are commenting using your Facebook account. Log Out / Zmień )

Connecting to %s