Difference between revisions of "Installationsanleitung eSciDoc imeji CoNE"

From MPDLMediaWiki
Jump to navigation Jump to search
(Replaced content with "'''Please note:''' Content was moved to http://imeji.org/wordpress/install/server-setup/#Install_eSciDoc_Optional")
Line 1: Line 1:
{{Imeji_Tech}}
'''Please note:''' Content was moved to http://imeji.org/wordpress/install/server-setup/#Install_eSciDoc_Optional
 
'''eSciDoc 1.2 und imeji Installations Tutorial Video vom Zuse Internet Archive der FU:''' http://www.zib.de/zuse/video<br>
 
=== eSciDoc / JBOSS Security ===
 
Tuturial / Help - SecureJBoss4.2 <br>
https://www.escidoc.org/wiki/SecureJBoss4.2
 
JBoss behind an Apache Webserver <br>
https://www.escidoc.org/wiki/JBossBehindWebserver
 
UsingMod_proxyWithJBoss<br>
http://community.jboss.org/wiki/UsingModproxyWithJBoss
 
Apache Module mod_proxy<br>
https://httpd.apache.org/docs/2.2/mod/mod_proxy.html
 
Securing the JMX Console and Web Console (HTTP)<br>
http://community.jboss.org/wiki/SecureTheJmxConsole
 
General Info - Introduction - hosting applications with JBoss Application Server<br>
http://chiralsoftware.com/linux-system-administration/jboss-server-deployment.seam
 
Security Warning for eSciDoc Infrastructure version 1.3 and 1.4<br>
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.<br>
Please secure your JMX console like described at https://access.redhat.com/kb/docs/DOC-30741<br>
If you do not use the console for administrative purpose, you can alternatively disable the JMX console.
 
=== eSciDoc 1.4 auf Scientific Linux 64bit ===
 
==== Java Development Kit (JDK) von Sun installieren ====
 
''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.''<br><br>
Für escidoc wird ausdrücklich das JDK von Java Sun empfohlen. <br>
Benötigt wird die aktuelle Version aus Java 6 (jdk-6u<version>-linux-x64.bin).<br>
<version> meint die aktuelle Versionsnummer z.B. 45<br>
Ein Downloadlink findet sich bei escidoc unter: https://www.escidoc.org/JSPWiki/en/InstallJavaForRelease1.4 <br>
'''!!!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.<br>
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.<br>
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).<br>
<br>
Als nächstes sollte die Umgebungsvariable für das JDK konfiguriert werden:<br>
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)<br>
Danach müssen alle Kommandozeilen geschlossen werden, um die Einstellung zu übernehmen.<br>
<br>
Die richtige Konfiguration kann mittels Java-Befehl getestet werden.<br>
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.<br>
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 ====
 
Es wird Version 8.4 oder höher benötigt: https://www.escidoc.org/JSPWiki/en/InstallPostgreSQLForRelease1.4 <br>
Unter Scientific Linux kann PostgreSQL mit YUM installiert werden. Es werden der PostgreSQL Server und Contrib benötigt.<br>
(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.<br>
<br>
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:
<pre>
# 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
</pre>
Und speichern.<br>
Das Ersetzen von "ident" durch "md5" ermöglicht die Anmeldung mit einem md5-Passwort.<br>
<br>
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 ====
 
Installer herunterladen (aktuell Release 1.4) von https://www.escidoc.org/JSPWiki/en/InstallationForRelease1.4
 
PostgreSQL sicherheitshalber neustarten:
    su
    service postgresql restart
 
<strong>Hinweis:</strong> eSciDoc <strong>NICHT</strong> als root installieren! <br>
(Ein potentieller Einbrecher über den JBoss Application Server hätte sonst root-Rechte.)<br>
<br>
Installer ausführen mit:
    java -jar escidoc-core-1.4.5-installer.jar
 
<ul>
<li>Als Sprache kann Deutsch (deu) ausgewählt werden.<br>
OK
</li><li>
Weiter
</li><li>
Ja, ich stimme diesen Lizenzvereinbarungen zu.<br>
Weiter
</li><li>
Installationsvoraussetzungen<br>
Weiter
</li><li>
Neue eSciDoc-Infrastruktur installieren<br>
Weiter
</li><li>
Rechnername: localhost<br>
Portnummer: 8080<br>
Weiter
</li><li>
PostgreSQL<br>
Weiter
</li><li>
PostgreSQL-Datenbankverbindung<br>
Die voreingestellten Werte beibehalten.<br>
Weiter
</li><li>
postgres (root-Passwort)<br>
Weiter
</li><li>
Datenbankbenutzer escidoc (ist der Nutzer für die neue Postgres-Datenbank)<br>
Passwort eintragen<br>
Weiter
</li><li>
fedoraAdmin (Admin für Fedora, und ein weiterer PostgreSQL Benutzer, wird hauptsächlich intern benötigt)<br>
Passwort eintragen<br>
emailAdress: email (für Fehlermeldungen, Feld darf nicht leer sein, muss aber keine Adresse enthalten)<br>
Weiter
</li><li>
Verwende die JAVA_HOME Umgebungsvariable (vorgegebene Werte stimmen)<br>
Weiter
</li><li>
Installationspfad: /home/<username>/location/escidoc<br>
Weiter
</li><li>
Alles angehakt lassen<br>
Weiter
</li><li>
sysadmin (Hat Zugang zu allen Resourcen und kann Benutzer mit deren Rechten verwalten)<br>
Passwort eintragen<br>
Weiter
</li><li>
inspector (read-only, für Infrastruktur-internes wie Indexierung)<br>
Passwort eintragen<br>
Weiter
</li><li>
depositor (erstellen neuer Resourcen innerhalb der Infrastruktur - User für das meiste des Tagesgeschäfts)<br>
Passwort eintragen<br>
Weiter
</li><li>
JBoss JMX-Console löschen? <br>
Nein (wenn man sie noch benutzen möchte).
</li><li>
JBoss-Benutzername: (Passwortgeschützter Zugriff auf JMX-Console des JBoss-Application-Servers)<br>
Passwort eintragen<br>
Weiter<br>
</li><li>
Keystore für https<br>
Alle Felder frei lassen (kann auch später konfiguriert werden)<br>
Weiter
</li><li>
ESciDoc wird nun installiert<br>
Installationsfortschritt des Pakets: [Fertig]<br>
Overall installation progress: 14/14<br>
Weiter
</li><li>
Glückwunsch<br>
Weiter
</li><li>
Die Installation wurde erfolgreich durchgeführt!<br>
Ein Deinstallationsprogramm wurde in folgendem Dateipfad gespeichert: /home/<username>/location/escidoc/Uninstaller<br>
Wenn gewünscht kann ein automatisches Installationsscript generiert werden.<br>
Fertig
</li>
</ul>
 
<strong>Hinweis:</strong><br>
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)<br>
<br>
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<br>
<br>
<strong>Hinweis</strong> für lokale Tests OHNE Sicherung der JMX-Console durch einen Apache-Server:<br>
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 ===
 
==== Benötigte Dateien ====
imeji.ear (imeji Programmpaket - aus Sourcecode compilieren)<br>
imeji.properties (Konfigurationsdatei für imeji)<br>
imeji2oai_dc.xslt (eigenes XSLT für die Darstellung der Daten, die über OAI-PMH abgerufen werden)<br>
oai.properties (Konfigurationsdatei für die OAI-PMH-Schnittstelle)<br>
vocabulary.properties (Konfigurationsdatei für verwendete Vokabularien (standardisiert von CoNE abgerufen))<br>
 
==== imeji.ear für OAI-PMH vorbereiten ====
(Führe das folgende in der Datei fds.properties in fledgeddata_presentation aus bevor imeji kompiliert wird.)<br>
(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.<br>
Spitze Klammern sind entsprechend zu ersetzen:
<pre>
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.
 
</pre>
 
Diese Einstellungen müssen auch in die oai.properties kopiert werden.<br>
 
==== Dateien an entsprechende Orte kopieren ====
Die imeji.ear in den Ordner deploy des JBoss verschieben (z.B. /home/<username>/location/eSciDoc/JBoss/server/default/deploy).<br>
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).<br>
 
 
==== esciDoc-IDs generieren ====
<ul>
<li>
escidoc starten und zum Admin Tool wechseln (links aus der Liste auswählen)
</li><li>
Oben rechts auf Login klicken und als sysadmin einloggen<br>
(Falls das Login nicht funktionieren sollte - prüfen ob postgreSQL gestartet wurde)
</li><li>
Nun wähle links Content Models aus<br>
gib als Title z.B. IKB ein (mit zugehöriger Description - beschreibender Text)<br>
(A new Content Model with the ID escidoc:1 is created)<br>
Die Object ID unter dem Feld Description notieren - hier escidoc:1
</li><li>
Nun unter Organizational Units die organisatorische Struktur der Institution abbilden:<br>
z.B.: <br>
<li>zuerst "HU-Berlin" erstellen ("Save" und danach auf "Open" klicken für die Aktivierung)</li>
<li>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)</li>
<li>dann "IKB" erstellen, bei Parents auf Add klicken und "Phil Fak III" auswählen ("Save" und danach auf "Open" klicken für die Aktivierung)</li>
</li><li>
Dann wähle links Contexts aus<br>
Einen neuen Context anlegen z.B. Bildsammlungen am IKB<br>
Alle Felder mit einem roten Stern müssen ausgefüllt werden.<br>
Bei dem Feld Organizational Units auf Add klicken und IKB auswählen<br>
Save<br>
danach zur Aktivierung auf "Open".<br>
Die Object ID unter dem Feld Description merken - hier escidoc:5
</li><li>
vom Admin Tool abmelden (Logout)
</li>
</ul>
 
 
==== imeji.properties editieren (eigene Anpassungen) ====
 
imeji.properties öffnen (im Ordner: /home/<username>/location/eSciDoc/JBoss/server/default/conf)<br>
<br>
URL-Pfade zur imeji-Instanz und zur eSciDoc-Instanz:
<pre>
# >>>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
</pre>
 
eSciDoc Context ID einfügen:
<pre>
# Identifier of the eSciDoc context used by Imeji
escidoc.faces.context.id=escidoc:5
</pre>
<br>
eSciDoc Content-Model ID einfügen:
<pre>
# Identifier of the eSciDoc content-model used by Imeji
escidoc.faces.content-model.id=escidoc:1
</pre>
<br>
Email server konfigurieren (falls gewünscht):
<pre>
# 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)
</pre>
<br>
Speicherort der imeji-Metadaten festlegen:
<pre>
#Path to Jena's TDB database
imeji.tdb.path = /home/<username>/location/eSciDoc/JBoss/server/default/data/imeji_tdb/imeji_data
</pre>
Im Ordner /home/<username>/location/eSciDoc/JBoss/server/default/data/ muss der Ordner imeji_tdb/ erstellt werden.<br>
und im Ordner imeji_tdb/ muss der Ordner imeji_data/ erstellt werden.<br>
<br>
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.
<pre>
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...
</pre>
<br>
Speichern<br>
<br>
eSciDoc neu starten <br>
<strong>Wichtig!</strong> immer wenn man die properties ändert muss escidoc neu gestartet werden!
<br>
Browser öffnen:<br>
http://<Servername>:8080/imeji bzw. (mit Apache-Konfiguration) http://<Servername>/imeji<br>
<br>
Mit der imeji-sysadmin-email einloggen (z.B. ikb@ikb.de).<br>
<br>
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).
<br>
<br>
imeji ist installiert :)
 
 
 
 
[[Category:Imeji |Installationsanleitung]]
[[Category:eSciDoc]]
[[Category:CoNE]]
[[Category:How_To |Installation escidoc imeji cone]]

Revision as of 10:32, 3 January 2014