TearbmaohcanDuogášGrammatihkkaTeknihkka dieđutDivvun
 

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:

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).