Generic Apache v. 2.0 kasutamine Oracle iAS ees

Allikas: Kuutõrvaja

Sissejuhatus

Eesmärgiks on seadistada käima http://httpd.apache.org/ Apache veebiserver (edaspidi üldotstarbeline, ingl. k. generic), st mitte Oracle enda 'Oracle HTTP Server' Oracle iAS rakendusserveri ees selliselt, et ta

  • termineerib SSL ühendusi
  • autendib kasutajaid Eesti ID-kaardi abil
  • peab andmevahetust Java rakendusserveriga üle nö ajp13 protokolli

Süsteemi võiks kujutada skeemil nt nii

 brauser <- http -> apache veebiserver <- ajp13 -> oracle rakendusserver <- ojdbc -> oracle andmebaas

Süsteemi ettevalmistamisel tuleb arvestada, et vajalikud Apache moodulid, mille abil Apache veebiserver saab suhelda Oracle iAS rakendusserveriga on olemas vaid 32 bit vormis Apache 2.0 ja 1.3 versioonile. Neid mooduleid jagatakse Oracle Application Serveri Companion CD koosseisus.

Kusjuures konkreetesel juhtumil edastab üldotstarbeline Apache rakendusserverile kasutaja identiteedi kasutades Apache veebiserveri RequestHeader direktiivi.

Kuna Oracle jagab 32 bit binaarseid mooduleid, siis kõige otsekohesem on kasutada 32 bit operatsioonisüsteemi. Kui aga mingil põhjusel on kasutada 64 bit operatsioonisüsteem, siis võiks saada toimetada nii nagu käesoleva pala viimastes punktides on kirjeldatud.

Generic Apache v. 2.0 kompileerimine ja paigaldamine

Kuna tõenäoliselt 2009 aastal enam ei pakendata Linuxi distributsioonide paketihaldusse Apache 2.2 versioonist vanemaid, tuleb kasutada teist võimalust ning versioon 2.0 kompileerida Apache veebikohas http://httpd.apache.org/ jagatavast lähtetekstist.

Esmalt tuleb kopeerida lähtetekst, 2009 aasta kevadel on stabiilne 2.0 haru versioon 2.0.63, http://www.apache.org/dist/httpd/httpd-2.0.63.tar.bz2 ning pakkida lahti

 # apt-get build-dep apache2
 # mkdir /usr/src && cd /usr/src
 # wget http://www.apache.org/dist/httpd/httpd-2.0.63.tar.bz2
 # tar jxf httpd-2.0.63.tar.bz2
 # cd httpd-2.0.63
 # ./configure --prefix=/usr/local/apache2 --enable-rewrite=shared \
   --enable-ssl=shared --enable-headers=shared
 # make
 # make install

iAS moodulite kasutamine

Esimese Oracle iAS Companion CD peal asuvad kataloogis Disk1/plugins/apache2 sellised teegid

 $ find Disk1/plugins/apache2 -type f -ls
 262373  136 -rwxr-xr-x   1 mart     mart       133765 Jan 25  2007 Disk1/plugins/apache2/libdms2.so
 262375  152 -rwxr-xr-x   1 mart     mart       148929 Jan 25  2007 Disk1/plugins/apache2/mod_oc4j.so
 262376   36 -rwxr-xr-x   1 mart     mart        34782 Jan 25  2007 Disk1/plugins/apache2/mod_onsint.so
 262374   76 -rwxr-xr-x   1 mart     mart        69942 Jan 25  2007 Disk1/plugins/apache2/libons.so

Neist kahe, libdms2.so ja libons.so asukoht tuleb näidata enne Apache käivitamist ning ülejäänud kaks tuleb laadida Apache LoadModule direktiiviga

 # mkdir /usr/lib-oc4j
 # cp libdms2.so libons.so /usr/lib-oc4j
 # export LD_LIBRARY_PATH=/usr/lib-oc4j

Lisaks peab olema kirjeldatud keskkonnamuutuja ORACLE_HOME

 # mkdir /tmp/oracle_home
 # export ORACLE_HOME=/tmp/oracle_home

Apache veebiserveri seadistamine

Teegid mod_oc4j.so ja mod_onsint.so tuleb kopeerida teiste Apache teekide juurde kataloogi /usr/local/apache2/modules

 # cp mod_oc4j.so mod_onsint.so /usr/local/apache2/modules

ning kirjeldada veebiserveri seadistusfailis /usr/local/apache2/conf/httpd.conf teiste moodulite juures, järjekord on oluline

 ...
 LoadModule onsint_module modules/mod_onsint.so
 LoadModule oc4j_module modules/mod_oc4j.so

Lisaks võiks conf/httpd.conf seadistusfailis Listen direktiivi välja kommenteerida. Veebiserveri seadistusfaili conf/ssl.conf võiks paigutada sobivasse kohta nt sellise virtuaalhosti sektsiooni

 <VirtualHost 10.0.7.246:80>
   ServerAdmin webmaster@loomaaed.tartu.ee
   DocumentRoot /srv/www
   ServerName loomaaed.tartu.ee
   ErrorLog logs/loomaaed.tartu.ee-error.log
   CustomLog logs/loomaaed.tartu.ee-access.log common
 
   Oc4jMount /loomaaed/* ajp13://10.0.13.70:8888
   
   SSLEngine on
   SSLCertificateFile /usr/local/apache2/conf/serdid/loomaaed.tartu.ee-cert.pem
   SSLCertificateKeyFile /usr/local/apache2/conf/serdid/loomaaed.tartu.ee-key.pem
   SSLCertificateChainFile /usr/local/apache2/conf/serdid/server-cert-ca-chain.pem
   SSLOptions +StdEnvVars
 
 </VirtualHost>

Veebiserveri käivitamine

Veebiserveri käivitamiseks tuleb öelda

 # export ORACLE_HOME=/tmp/oracle_home
 # export LD_LIBRARY_PATH=/usr/lib-oc4j
 # cd /usr/local/apache2
 # bin/apachectl startssl

ja seiskamiseks

 # bin/apachectl stop

Või kasutada nt sellist skripti

 # cat /root/system/apache-start.sh
 #!/bin/bash
 export ORACLE_HOME=/tmp/oracle_home
 export LD_LIBRARY_PATH=/usr/lib-oc4j
 cd /usr/local/apache2
 bin/apachectl startssl

Seejuures tundub normaalne, et veebiserveri errorlogisse tehakse selline sissekanne

 [Sun Jan 03 18:28:35 2010] [emerg] mod_onsint can't initialize ons runtime.

64 bit keskkonnas 32 bit üldotstarbelise Apache veebiserveri ettevalmistamine

Kui kirjeldatud moel töötava üldotstarbelise Apache veebiserveri ettevalmistamiseks on kasutada 64 bit keskkond, siis saab 32 bit rakenduse kompileerimiseks kasutada sinna keskkonda moodustatud 32 bit chroot keskkonda

 # debootstrap --arch i386 lenny /srv/lenny-i386 http://ftp.aso.ee/debian
 # chroot /srv/lenny-i386

Edasised tegevused järgnevad nagu ülalkirjeldatud juhtumil.

64 bit keskkonnas 32 bit üldotstarbelise Apache veebiserveri kasutamine

Kui kirjeldatud moel töötava üldotstarbelise Apache veebiserveri kasutamiseks on kasutada 64 bit keskkond, siis saab 32 bit rakendust käivitada kui eelnevalt paigaldata pakett

 # apt-get install ia32-libs

Kui apache on kompileeritud ja paigaldatud /srv/lenny-i386 kataloogis, st ta asub absoluutse arvuti mõttes kataloogis /srv/lenny-i386/usr/local/apache2, siis sobib ta ühendada nii külge absoluutse arvuti failisüsteemi

 # mount --bind /srv/lenny-i386/usr/local/apache2 /usr/local/apache2

ning seejärel saab teda juba absoluutsest arvutist kasutada tavapärasel moel.