Difference between revisions of "Installationsanleitung eSciDoc imeji CoNE"

From MPDLMediaWiki
Jump to navigation Jump to search
Line 132: Line 132:
<br>
<br>
Installer ausführen mit:
Installer ausführen mit:
     java -jar escidoc-core-1.4.1-installer.jar
     java -jar escidoc-core-1.4.5-installer.jar


<ul>
<ul>

Revision as of 23:39, 26 November 2013

Imeji logo.png

Internal
Meetings
Cooperation

Specification
Architecture
Installer
Ingest
Functional Specification
Technical Specification

Metadata
RDF mapping
Metadata terms

edit


eSciDoc 1.2 und imeji Installations Tutorial Video vom Zuse Internet Archive der FU: http://www.zib.de/zuse/video

eSciDoc / JBOSS Security[edit]

Tuturial / Help - SecureJBoss4.2
https://www.escidoc.org/wiki/SecureJBoss4.2

JBoss behind an Apache Webserver
https://www.escidoc.org/wiki/JBossBehindWebserver

UsingMod_proxyWithJBoss
http://community.jboss.org/wiki/UsingModproxyWithJBoss

Apache Module mod_proxy
https://httpd.apache.org/docs/2.2/mod/mod_proxy.html

Securing the JMX Console and Web Console (HTTP)
http://community.jboss.org/wiki/SecureTheJmxConsole

General Info - Introduction - hosting applications with JBoss Application Server
http://chiralsoftware.com/linux-system-administration/jboss-server-deployment.seam

Security Warning for eSciDoc Infrastructure version 1.3 and 1.4
Because of an JBoss issue the JMX console is only secured for GET and POST requests although authenticated access is configured. An attacker could trigger arbitrary actions in the operating system.
Please secure your JMX console like described at https://access.redhat.com/kb/docs/DOC-30741
If you do not use the console for administrative purpose, you can alternatively disable the JMX console.

eSciDoc 1.4 auf Scientific Linux 64bit[edit]

Java Development Kit (JDK) von Sun installieren[edit]

Da Oracle nicht empfiehlt Javaversionen zu nutzen, die älter sind, als die aktuelle Version 7 (Stand November 2013), sollte java NICHT als root installiert werden.

Für escidoc wird ausdrücklich das JDK von Java Sun empfohlen.
Benötigt wird die aktuelle Version aus Java 6 (jdk-6u<version>-linux-x64.bin).
<version> meint die aktuelle Versionsnummer z.B. 45
Ein Downloadlink findet sich bei escidoc unter: https://www.escidoc.org/JSPWiki/en/InstallJavaForRelease1.4
!!!ACHTUNG!!! Java-Development-Kits, die älter sind als die aktuelle Version 7 (Stand November 2013), können NUR nach Registrierung bei Oracle (Emailadresse, Vollständiger Name, Institution, Beruf, Telefonnummer dienstl.) herunter geladen werden.
Glücklicherweise muss man keinen der angebotenen Newsletter abonnieren.


Das heruntergeladene .bin-File lässt sich mit der Kommandozweile wie folgt installieren:

   sh jdk-6u<version>-linux-x64.bin

und allem zustimmen.
Anschließend den Ordner an einen geeigneteren Ort kopieren. Hierfür kann man sich z.B. einen Ordner im "home" Verzeichnis anlegen. Wir wählen als Beispiel den Ordner "location": /home/<username>/location (hier soll später auch escidoc installiert werden).

Als nächstes sollte die Umgebungsvariable für das JDK konfiguriert werden:
Einen Editor starten

   vim .bashrc (/home/<username>/.bashrc)

dann folgendes ans Ende der .bashrc kopieren:

   # JAVA (JDK,JRE)
   export JAVA_HOME='/home/<username>/location/jdk1.6.0_<version>'
   PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

Speichern und schließen (:wq)
Danach müssen alle Kommandozeilen geschlossen werden, um die Einstellung zu übernehmen.

Die richtige Konfiguration kann mittels Java-Befehl getestet werden.
Dazu öffnet man eine Kommandozeile und trägt folgenden Befehl ein:

   java -version 

Es sollte nun z.B. folgendes ausgegeben werden:

   java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
   Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Falls der Befehl java -version das OpenJDK zurückgibt, muss das OpenJDK auf Java-Sun umgestellt werden.
Dies kann mit folgendem Befehl vorgenommen werden:

   update-alternatives --config java

Danach sollte java -version die eigens installierte Java-Version zurückgeben.

JAVA ist installiert :)

PostgreSQL installieren[edit]

Es wird Version 8.4 oder höher benötigt: https://www.escidoc.org/JSPWiki/en/InstallPostgreSQLForRelease1.4
Unter Scientific Linux kann PostgreSQL mit YUM installiert werden. Es werden der PostgreSQL Server und Contrib benötigt.
(contrib wurde bei eSciDoc 1.2 benötigt - wir installieren es um eventuellen Problemen vorzubeugen.)

PostgreSQL + Server + Contrib installieren:

   su
   yum install postgresql postgresql-server postgresql-contrib

PostgreSQL-DB initialisieren:

   service postgresql initdb

Die Konfigurationsdatei postgresql.conf editieren:

   vim /var/lib/pgsql/data/postgresql.conf
   #port = 5432 -> port = 5432 (kommentar weg)

Und speichern.

Die Konfigurationsdatei pg_hba.conf editieren:

   vim /var/lib/pgsql/data/pg_hba.conf

Nach den einführenden Kommentaren sollte die Datei wie folgt aussehen:

# Database administrative login by UNIX sockets
local   all         postgres                         ident


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

Und speichern.
Das Ersetzen von "ident" durch "md5" ermöglicht die Anmeldung mit einem md5-Passwort.

PostgreSQL-DB starten:

   service postgresql start

und PostgreSQL testen:

   su postgres
   psql
   \l (listet alle bestehenden datenbanken)

Wenn gewünscht, dann gleich das Postgres-root-Passwort ändern:

   \password postgres
   dann passwort eintragen


PostgreSQL mit den gewünschten Optionen ist installiert :)

eSciDoc 1.4 installieren[edit]

Installer herunterladen (aktuell Release 1.4) von https://www.escidoc.org/JSPWiki/en/InstallationForRelease1.4

PostgreSQL sicherheitshalber neustarten:

   su
   service postgresql restart

Hinweis: eSciDoc NICHT als root installieren!
(Ein potentieller Einbrecher über den JBoss Application Server hätte sonst root-Rechte.)

Installer ausführen mit:

   java -jar escidoc-core-1.4.5-installer.jar
  • Als Sprache kann Deutsch (deu) ausgewählt werden.
    OK
  • Weiter
  • Ja, ich stimme diesen Lizenzvereinbarungen zu.
    Weiter
  • Installationsvoraussetzungen
    Weiter
  • Neue eSciDoc-Infrastruktur installieren
    Weiter
  • Rechnername: localhost
    Portnummer: 8080
    Weiter
  • PostgreSQL
    Weiter
  • PostgreSQL-Datenbankverbindung
    Die voreingestellten Werte beibehalten.
    Weiter
  • postgres (root-Passwort)
    Weiter
  • Datenbankbenutzer escidoc (ist der Nutzer für die neue Postgres-Datenbank)
    Passwort eintragen
    Weiter
  • fedoraAdmin (Admin für Fedora, und ein weiterer PostgreSQL Benutzer, wird hauptsächlich intern benötigt)
    Passwort eintragen
    emailAdress: email (für Fehlermeldungen, Feld darf nicht leer sein, muss aber keine Adresse enthalten)
    Weiter
  • Verwende die JAVA_HOME Umgebungsvariable (vorgegebene Werte stimmen)
    Weiter
  • Installationspfad: /home/<username>/location/escidoc
    Weiter
  • Alles angehakt lassen
    Weiter
  • sysadmin (Hat Zugang zu allen Resourcen und kann Benutzer mit deren Rechten verwalten)
    Passwort eintragen
    Weiter
  • inspector (read-only, für Infrastruktur-internes wie Indexierung)
    Passwort eintragen
    Weiter
  • depositor (erstellen neuer Resourcen innerhalb der Infrastruktur - User für das meiste des Tagesgeschäfts)
    Passwort eintragen
    Weiter
  • JBoss JMX-Console löschen?
    Nein (wenn man sie noch benutzen möchte).
  • JBoss-Benutzername: (Passwortgeschützter Zugriff auf JMX-Console des JBoss-Application-Servers)
    Passwort eintragen
    Weiter
  • Keystore für https
    Alle Felder frei lassen (kann auch später konfiguriert werden)
    Weiter
  • ESciDoc wird nun installiert
    Installationsfortschritt des Pakets: [Fertig]
    Overall installation progress: 14/14
    Weiter
  • Glückwunsch
    Weiter
  • Die Installation wurde erfolgreich durchgeführt!
    Ein Deinstallationsprogramm wurde in folgendem Dateipfad gespeichert: /home/<username>/location/escidoc/Uninstaller
    Wenn gewünscht kann ein automatisches Installationsscript generiert werden.
    Fertig

Hinweis:
Wenn ein fatal error auftritt, ist möglicherweise der Zugriff auf die PostgreSQL-DB nicht richtig konfiguriert. Die Einstellungen in der Konfigurationsdatei pg_hba.conf (/var/lib/pgsql/data/pg_hba.conf) sollten nocheinmal geprüft werden. Sind die Zugänge auf md5 gestellt? (siehe PostgreSQL installieren)

Fedora-Home Variable in der .bashrc setzen

   vim .bashrc (/home/<username>/.bashrc)

Folgendes ans Ende der .bashrc kopieren:

   # FEDORA
   export FEDORA_HOME='/home/<username>/location/escidoc/fedora'

Speichern und schließen (:wq) Danach Terminal neustarten

Hinweis für lokale Tests OHNE Sicherung der JMX-Console durch einen Apache-Server:
Wenn der Zugriff auf den JBoss erlaubt werden soll, muss der Port 8080 in IPTABLES eingetragen werden:

   iptables -I INPUT -m tcp -p tcp --dport 8080 -j ACCEPT


ESciDoc ist installiert :)

imeji auf eSciDoc 1.4[edit]

Benötigte Dateien[edit]

imeji.ear (imeji Programmpaket - aus Sourcecode compilieren)
imeji.properties (Konfigurationsdatei für imeji)
imeji2oai_dc.xslt (eigenes XSLT für die Darstellung der Daten, die über OAI-PMH abgerufen werden)
oai.properties (Konfigurationsdatei für die OAI-PMH-Schnittstelle)
vocabulary.properties (Konfigurationsdatei für verwendete Vokabularien (standardisiert von CoNE abgerufen))

imeji.ear für OAI-PMH vorbereiten[edit]

(Führe das folgende in der Datei fds.properties in fledgeddata_presentation aus bevor imeji kompiliert wird.)
(Wenn nicht vor der Kompilierung durchgeführt, dann:) Gehe in den Ordner imeji.ear -> fledgeddata_presentation.war -> web_inf/classes und editiere dort die Datei fds.properties.
Spitze Klammern sind entsprechend zu ersetzen:

appname=Fledged Data Service

oai.serviceUnavailable=false 
#(Optional): Forces the server to return a SC_SERVICE_UNAVAILABLE code to inform the user that it is currently being worked on.
   
oai.description= Imeji Repository is an eSciDoc application of the Max Planck Digital Library to archive and manage images together with their specific metadata.
#(Optional): Describe your repository

oai.baseURL=http://<servername>/fledgeddata/oai
#(Optional): Force OAI responses to include the specified baseURL instead of getting it from the HttpServletRequest. This may be necessary if your firewall/router/port-mapper is messing with the request in some way.

oai.repositoryIdentifier=Image Url

oai.sampleIdentifier=http://imeji.mpdl.mpg.de/image/14

oai.repositoryName=Imeji

Repository.secondsToLive=undefined 
#(Optional): The number of seconds a resumptionToken is retained for reuse. The default is -1, which means that resumptionTokens are stateless and can be resent anytime.
   
Repository.harvestable=true
#(Optional): If present and false, the ListRecords and ListIdentifiers verbs will send back an error condition. This might be useful if you want to provide access to the other verbs but want to discourage general harvesting.
    
Repository.granularity=YYYY-MM-DD
#(Required): The supported level of datetime granularity for from/until parameters.

Repository.baseURL=http://<servername>/imeji

Repository.nativeFormat.Name=imeji

Repository.nativeFormat.Schema=imejiSchema

Repository.nativeFormat.ns=imejiNamespace

Repository.oai.stylesheet=imeji2oai_dc.xslt

Repository.oai.fetchURL=http://<servername>/export?format=rdf&type=image&q= (ID_URI.URI="FETCH_ID" )
#(Required): The url where to fetch the records from e.g. the export interface of imeji solution
  	     Please insert FETCH_ID as a placeholder for the identifier parameter

Repository.oai.listRecordsURL=http://<servername>/export?format=rdf&type=image
#(Required): The url where to get the record list from
  	     
Repository.oai.listSetsURL=http://<servername>/export?format=rdf&type=collection # http://imeji-mediathek.de/export?format=rdf&type=album
#(Required): The url where to get the set information from, seperate multiple urls with #

Identify.repositoryName=Imeji
#(Required): Text to use as the Identify verb's repositoryName value.
    
Identify.adminEmail=<adminEmail> 
#(Required): Text to use as the Identify verb's adminEmail value.
    
Identify.earliestDatestamp=[datetime stamp of earliest] 
#(Required): Text to use as the Identify verb's earliestDatestamp value.
    
Identify.deletedRecord=[no|transient|persistent] 
#(Required): Text to use as the Identify verb's deletedRecord value.

Diese Einstellungen müssen auch in die oai.properties kopiert werden.

Dateien an entsprechende Orte kopieren[edit]

Die imeji.ear in den Ordner deploy des JBoss verschieben (z.B. /home/<username>/location/eSciDoc/JBoss/server/default/deploy).
Die Dateien mit den Endungen .properties und .xslt in den Ordner conf des JBoss verschieben (z.B. /home/<username>/location/eSciDoc/JBoss/server/default/conf).


esciDoc-IDs generieren[edit]

  • escidoc starten und zum Admin Tool wechseln (links aus der Liste auswählen)
  • Oben rechts auf Login klicken und als sysadmin einloggen
    (Falls das Login nicht funktionieren sollte - prüfen ob postgreSQL gestartet wurde)
  • Nun wähle links Content Models aus
    gib als Title z.B. IKB ein (mit zugehöriger Description - beschreibender Text)
    (A new Content Model with the ID escidoc:1 is created)
    Die Object ID unter dem Feld Description notieren - hier escidoc:1
  • Nun unter Organizational Units die organisatorische Struktur der Institution abbilden:
    z.B.:
  • zuerst "HU-Berlin" erstellen ("Save" und danach auf "Open" klicken für die Aktivierung)
  • dann "Phil Fak III" erstellen, bei Parents auf Add klicken und "HU-Berlin" auswählen, ("Save" und danach auf "Open" klicken für die Aktivierung)
  • dann "IKB" erstellen, bei Parents auf Add klicken und "Phil Fak III" auswählen ("Save" und danach auf "Open" klicken für die Aktivierung)
  • Dann wähle links Contexts aus
    Einen neuen Context anlegen z.B. Bildsammlungen am IKB
    Alle Felder mit einem roten Stern müssen ausgefüllt werden.
    Bei dem Feld Organizational Units auf Add klicken und IKB auswählen
    Save
    danach zur Aktivierung auf "Open".
    Die Object ID unter dem Feld Description merken - hier escidoc:5
  • vom Admin Tool abmelden (Logout)


imeji.properties editieren (eigene Anpassungen)[edit]

imeji.properties öffnen (im Ordner: /home/<username>/location/eSciDoc/JBoss/server/default/conf)

URL-Pfade zur imeji-Instanz und zur eSciDoc-Instanz:

# >>>OHNE Apache<<<
# URL of this Imeji instance
escidoc.faces.instance.url=http://<Servername>:8080/imeji/

# URL of the FIZ framework instance
escidoc.framework_acess.framework.url=http://<servername>:8080

# >>>MIT Apache<<<
# URL of this Imeji instance
escidoc.faces.instance.url=http://<Servername>/imeji/

# URL of the FIZ framework instance (Zugang zu eSciDoc, damit Bilder abgespeichert werden können)
escidoc.framework_acess.framework.url=http://localhost:8080

eSciDoc Context ID einfügen:

# Identifier of the eSciDoc context used by Imeji
escidoc.faces.context.id=escidoc:5


eSciDoc Content-Model ID einfügen:

# Identifier of the eSciDoc content-model used by Imeji
escidoc.faces.content-model.id=escidoc:1


Email server konfigurieren (falls gewünscht):

# Spitze Klammern entsprechend ersetzen
# Email server config
imeji.email.server.smtp=<smtp-server>
imeji.email.user=<Benutzername>
imeji.email.password=<passwort>
imeji.email.auth=false (wenn false, dann werden Benutername und Passwort nicht benötigt)
imeji.email.sender=<versender@eigener-server.de> (eigene Versendeadresse)


Speicherort der imeji-Metadaten festlegen:

#Path to Jena's TDB database
imeji.tdb.path = /home/<username>/location/eSciDoc/JBoss/server/default/data/imeji_tdb/imeji_data

Im Ordner /home/<username>/location/eSciDoc/JBoss/server/default/data/ muss der Ordner imeji_tdb/ erstellt werden.
und im Ordner imeji_tdb/ muss der Ordner imeji_data/ erstellt werden.

Am Ende muss noch der imeji-Administratoraccount festgelegt sowie der Nutzer mit mindestens depositor und privileged-viewer Rechten in eSciDoc (hier der sysadmin von eSciDoc) angegeben werden.

imeji.sysadmin.email = beliebige email (Administrator von imeji) (z.B. ikb@ikb.de)
imeji.sysadmin.passwort...

imeji.escidoc.user = sysadmin (wird benötigt um Bilder in eSciDoc ablegen zu können, z.B. sysadmin)
imeji.escidoc.passwort...


Speichern

eSciDoc neu starten
Wichtig! immer wenn man die properties ändert muss escidoc neu gestartet werden!
Browser öffnen:
http://<Servername>:8080/imeji bzw. (mit Apache-Konfiguration) http://<Servername>/imeji

Mit der imeji-sysadmin-email einloggen (z.B. ikb@ikb.de).

Sollte es Probleme geben, so kann man über das Admin Tool auch die eSciDoc-Beispiele einspielen und die zugehörigen IDs in die imeji.properties übernehmen. (links unter Admin Tasks auf "Load Examples" klicken, rechts den Button "Load Examples" klicken, es erscheint eine Liste mit escidoc-IDs, diese merken und die Content-Model und Context-ID in die imeji.properties übernehmen).

imeji ist installiert :)