Samisk orddatabase - Spesifikasjonar - Programvare
Programvare som er brukt i servaren
Servar
Dette er det noverande oppsettet (29.11.2003) - det kan koma endringar etter kvart som prosjektet går framover.
- Apache 1.3.28
- servar statiske dokument og fungerer som ramme for php-skript
- eXist 0.9.2 (031125)
- XML-database, er lageret og søkjemotoren for alt som gjeld sjølve orddatabasen; skriven heilt i Java; har heimeside på http://www.exist-db.org/
- Jetty 4.1.4
- motor for alt som gjeld Java (eXist, Cocoon), inkludert i eXist
- PHP 4
- skriptspråk, brukt for dynamiske menyar
- Cocoon 2.1.3
- Javabaserte komponentar, tillegg til Jetty, tilbyr enklare tilgang til eXist, og eit reinare utviklingsmiljø (skil klart mellom logikk (databasesøk), innhald og form); inkludert i eXist
- Java 1.4.1
- miljø for å kunna køyra Java-program
All programvare er fri og open kjeldekode, og kan køyra på så godt som alle operativsystem.
Lokale endringar hjå meg
Utviklinga vert gjort på ein Mac med MacOS X 10.3. Java, Apache og PHP kjem ferdig installerte, eXist inkluderer Jetty og Cocoon. Eg har gjort nokre endringar etter standardinstallasjonen for å skapa ei ryddigare adresse (ikkje viktig no, men viktig seinare). Dei er:
Jetty
Laga fila workers.properties i $EXIST_HOME/Jetty-4.1.4/etc. Innhaldet er:
# Setup for Mac OS X workers.tomcat_home=/Applications/eXist-0.9.2/Jetty-4.1.4 workers.java_home=/Library/Java/Home ps=/ worker.list=ajp12, ajp13 # Definition for Ajp13 worker # worker.ajp13.port=8009 worker.ajp13.host=127.0.0.1 worker.ajp13.type=ajp13 # Definition for Ajp13 worker # worker.ajp12.port=8010 worker.ajp12.host=127.0.0.1 worker.ajp12.type=ajp12
Apache
- installerte mod_jk.so (last ned binær-arkiv, pakk ut, og kopier fila (som superuser) til /usr/libexec/httpd/)
- La til nokre liner i /etc/httpd/httpd.conf:
# Add and load the mod_jk module LoadModule jk_module libexec/httpd/mod_jk.so AddModule mod_jk.c JkWorkersFile /Applications/eXist-0.9.2/jetty-4.1.4/etc/workers.properties JkLogFile /Applications/eXist-0.9.2/Jetty-4.1.4/logs/mod_jk.log # level of details for logging: # debug, info, error or emerg; comment out this directive to turn off logging JkLogLevel debug <VirtualHost 127.0.0.1> DocumentRoot /Applications/eXist-0.9.2/webapp JkMount /*.jsp ajp13 JkMount /*.xsp ajp13 JkMount /*.xml ajp13 JkMount /examples/* ajp13 JkMount /exist/* ajp13 </VirtualHost>
- Endra fylgjande line i /etc/httpd/httpd.conf:
# Original setting, as from Apple: #DocumentRoot "/Library/WebServer/Documents" # # Changed to the eXist root, to avoid error messages: DocumentRoot "/Applications/eXist-0.9.2/webapp"
Variablar og miljø
Eg har sett opp nokre «miljøvariablar» (environment variables) som trengst for eXist og Jetty:
setenv JAVA_HOME "/Library/Java/Home" setenv EXIST_HOME="/Applications/eXist-0.9.2"
Referansar for mod_jk-installeringa og -endringane
Eg har brukt desse kjeldene:
- Integrating Tomcat with Apache Via the mod_jk Module
- Can Jetty be run with mod_jk?
- Working with mod_jk
Merknad: Mykje av dokumentasjonen pratar om Tomcat i staden for Jetty. Tomcat tilbyr same funksjonalitet som Jetty, og alle instillingane og endringane eg har gjort her gjeld båe to. Alle filreferansar og stigar må sjølvsagt tilpassast kvar einskild installasjon.
Adressering
Det er eit mål å kunna nå ordboksportalen med einast ei webadresse, dvs utan portnummer og utan underkatalogar. Portalen skal få eit eige domene, men inntil vidare gjeld berre IP-nummer. Eg har enno ikkje funne ut korleis eg skal få ein spesifikk webapp (t.d. webapps/samsan/ til å opptre som rotnote (dvs koma opp direkte når ein skriv inn servar-IP utan underkatalog), men eg har fått kopla i hop Apache og Tomcat slik at alt som ligg i webapps/ no blir serva av Apache. Kopla med omdirigering, vil eit kall til servaren automatisk bli ruta vidare til samsan/. Denne omdirigeringa ligg i ei vanleg html-fil (index.html, med språkversjonar som index.html.xx, der xx er språkvariant), og ser slik ut:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<meta http-equiv="Refresh" content="8;URL=http://81.93.97.7/samsan/index.html">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Velkommen til Samisk ordboksdatabase</title>
<SCRIPT LANGUAGE="JavaScript"><!--
function redirect () { setTimeout("go_now()",3000); }
function go_now () { window.location.pathname = "/samsan/index.html"; }
//--></SCRIPT>
</head>
<body onLoad="redirect()">
<h1 align="CENTER">
Velkommen til Samisk ordboksdatabase
</h1>
<p>
Du vil nå bli automatisk ført videre til den egentlige åpningssiden
for ordboksdatabasen. Dersom det ikke skjer, <a
href="samsan/index.html">klikk her</a>.
</p>
<hr>
<div align="CENTER">
<img src="apache_pb.gif" alt="Fyres av Apache">
</div>
</body>
</html>
Omdirigeringskoden har eg henta frå IRT.org (det finst meir info om dei brukte Javaskript-kommandoane hjå Sun, eller søk på window.location). Javaskript-omdiringeringa, som fungerer like bra over intranettet som Internett, skjer etter 3 sekund (bør kortast ned til 0 i den ferdige versjonen), http-omdirigeringa skjer etter 8 sekund (fungerer berre for Internett-bruk). Det finst òg ei manuell lenke for folk med (svært) gamle nettlesarar, men dei vil truleg ikkje kunna bruka portalen, sidan han krev støtte for Unicode (UTF-8).


