pondělí 8. března 2010

mod_jk 1.2.30 na Ubuntu 8.04.4 ze src

V Ubuntu Hardy Heron nebo číselně 8.04.4 LTS je velmi stará verze Apache2 modulu mod_jk 1.2.25 z 7.8..2007 :-( Např. ve FreeBSD je daný modul v aktuální vezi.

Pokud řešíte problém jako je nastavení workers.properties, ve kterém vyžaduji nastavení viz sekce v dokumentaci / Load Balancing Directives - sticky_session a Advanced Worker Directives - session_cookie / je problém na světě. Daná funkcinalita Tomcat Load Balancingu a chování session je funkční od až od veze 1.2.27. No a zde nám Debian a Ubuntu nějak usnulo. Neaktuálnost balíku v LTS verzi mě trošku zaráží. Hledal jsem nějaký externí repozitář, ale nenašel jsem. Rozhodl jsem se modul aktualizovat kompilací ze src.

Stručný popis, jak na to:

sudo su -
mkdir install
wget http:// kdesi cosi /tomcat-connectors-1.2.30-src.tar.gz
tar xvzf tomcat-connectors-1.2.30-src.tar.gz
cd tomcat-connectors-1.2.30-src/
less BUILD.txt

Dle popisu, jak kompilovat je patrné, že potřebuji APache eXtenSion tool pro Apache2. Hledám, v jakém balíčku se nachází.

apt-cache search apxs2
apache2-prefork-dev - development headers for apache2
apache2-threaded-dev - development headers for apache2

Jelikož používám apache2-mpm-worker volím druhý balík.

apt-get install apache2-threaded-dev

Kompiluji ...

cd native/
./configure --with-apxs=/usr/bin/apxs2
make
make install

Installing files to Apache Modules Directory...
/usr/bin/apxs2 -i mod_jk.la
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' mod_jk.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp mod_jk.la /usr/lib/apache2/modules/
cp .libs/mod_jk.so /usr/lib/apache2/modules/mod_jk.so
cp .libs/mod_jk.lai /usr/lib/apache2/modules/mod_jk.la
cp .libs/mod_jk.a /usr/lib/apache2/modules/mod_jk.a
ranlib /usr/lib/apache2/modules/mod_jk.a
chmod 644 /usr/lib/apache2/modules/mod_jk.a
PATH="$PATH:/sbin" ldconfig -n /usr/lib/apache2/modules
----------------------------------------------------------
Libraries have been installed in:
/usr/lib/apache2/modules

Je třeba si uvědomit, že příkazem make install se nám přepíše modul z instalované verze v systému libapache2-mod-jk 1:1.2.25-2. Dále je třeba brát v patrnosti, fakt, že jsme vzali čisté zdrojáky, ale na systémový balíček je aplikován patch udržovatelů daného balíčku. Takže je velkou neznámou, zda je možno tuto verzi modulu takto zkompilovanou nasadit na produkční server.

Dále jsem si všiml, že direktivu JkMount jem musel z jk.conf přesunout do souboru kde definuji virtualni web server, ale to si musí každý vyzkoušet sam. Jistá změna tam prostě je.

Žádné komentáře: