Wiki
Clone wikiPUMA / Installation
Inhaltsverzeichnis
- Installation
- address INCLUDING the trailing slash!
- (both home + img server)
- possible values realSynchronizationClient, mockSynchronizationClient
- PUMA buttons
Installation
Die Installationsanleitung bezieht sich auf GNU/Linux-Systeme. Getestet mit Ubuntu.
Voraussetzungen
- Oracle JDK 7 (oder JDK 11) und setzen sie
JAVA_HOME
. - Apache Maven 3
- Elasticsearch 2.0.0 und ab PUMA Version 3.9.0 Elasticsearch 6.8.X
- Oracle MySQL 5.5 oder höher.
- Git (nur für das Bauen der Applikation).
Source Repository klonen
#!bash $ cd ~ $ mkdir puma-src $ cd puma-src $ export PUMA_SRC=`pwd` $ git clone https://bitbucket.org/bibsonomy/puma $ git checkout stable
Bauen mit Maven
#!bash $ cd $PUMA_SRC/puma $ mvn clean install
Achten Sie auf die Ausgabe beim Bauen und notieren Sie sich die Versionsnummer:
Als Beispiel für die Ausgabe:
[INFO] Building PUMA 3.8.4
wäre die Version 3.8.4
Konfiguration MySQL
Bitte setzen Sie den MySQL Mode auf sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Datenbank einrichten
Im nächsten Schritt müssen Sie einige Datenbanken und Datenbank-Nutzer anlegen.
Kopieren Sie dazu folgenden Inhalt in eine Datei $PUMA_SRC/create_puma_db.sql
.
#!sql CREATE USER 'puma'@'localhost' IDENTIFIED BY '$$PASSWORD$$'; CREATE DATABASE IF NOT EXISTS `puma` ; GRANT ALL PRIVILEGES ON `puma` . * TO 'puma'@'localhost'; flush privileges; CREATE DATABASE IF NOT EXISTS `puma_opensocial` ; GRANT ALL PRIVILEGES ON `puma_opensocial` . * TO 'puma'@'localhost'; flush privileges; CREATE DATABASE IF NOT EXISTS `puma_recommender` ; GRANT ALL PRIVILEGES ON `puma_recommender` . * TO 'puma'@'localhost'; CREATE DATABASE IF NOT EXISTS `puma_item_recommender` ; GRANT ALL PRIVILEGES ON `puma_item_recommender` . * TO 'puma'@'localhost'; flush privileges; CREATE DATABASE IF NOT EXISTS `logging` ; GRANT ALL PRIVILEGES ON `logging` . * TO 'puma'@'localhost'; flush privileges; CREATE USER 'puma_ro'@'localhost' IDENTIFIED BY '$$PASSWORD$$'; GRANT SELECT ON `puma` . * TO 'puma_ro'@'localhost'; flush privileges;
Als nächstes legen Sie die Nutzer und Datenbanken an, indem Sie das SQL-Skript ausführen.
#!bash $ mysql -u root -p -h [dbhost] < $PUMA_SRC/create_puma_db.sql
Nun installieren Sie die Datenbanken-Schemata und die Initialisierung (Ersetzen Sie $$VERSION$$
durch die Version von PUMA und $$RECOMMENDER_VERSION$$
durch 1.0.2
).
#!bash $ cd $PUMA_SRC $ wget https://bitbucket.org/bibsonomy/bibsonomy/raw/v$$VERSION$$/bibsonomy-database/src/main/resources/database/bibsonomy-db-schema.sql $ wget https://bitbucket.org/bibsonomy/bibsonomy/raw/v$$VERSION$$/bibsonomy-database/src/main/resources/database/bibsonomy-db-init.sql $ wget https://bitbucket.org/bibsonomy/bibsonomy/raw/v$$VERSION$$/bibsonomy-logging/src/main/resources/database/logging-db-schema.sql $ wget https://bitbucket.org/bibsonomy/bibsonomy/raw/v$$VERSION$$/bibsonomy-recommender/src/main/resources/database/recommender-db-schema.sql $ wget https://bitbucket.org/bibsonomy/bibsonomy/raw/v$$VERSION$$/bibsonomy-opensocial/src/main/resources/database/opensocial-db-schema.sql $ wget https://bitbucket.org/bibsonomy/recommender-framework/raw/v$$RECOMMENDER_VERSION$$/recommender-core/src/main/resources/database/recommender_schema.sql $ mysql -u root -p -h [dbhost] puma < bibsonomy-db-schema.sql $ mysql -u root -p -h [dbhost] puma < bibsonomy-db-init.sql $ mysql -u root -p -h [dbhost] logging < logging-db-schema.sql $ mysql -u root -p -h [dbhost] puma_recommender < recommender-db-schema.sql $ mysql -u root -p -h [dbhost] puma_opensocial < opensocial-db-schema.sql $ mysql -u root -p -h [dbhost] puma_item_recommender < recommender_schema.sql
Installieren Sie den Admin-User:
#!sql insert into user (user_name, user_password, user_password_salt, role, spammer, to_classify, simple_interface) values ('PUMA_adm', MD5(concat(MD5('YOUR_PASSWORD'), 'SALT')), 'SALT', 0, 0, 0, 2);
Kopieren Sie das SQL statement in eine Datei db-init-user.sql
und ersetzen Sie YOUR_PASSWORD
durch ihr gewünschtes Passwort und ersetzen Sie ebenso SALT
durch eine beliebige Zeichenkette der Länge 16.
Nun importieren Sie den Datensatz.
#!bash $ mysql -u root -p -h [dbhost] puma < db-init-user.sql
Java Cryptography, Tomcat
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy
Für die Authentifizierung mittels Spring Security müssen Sie bei Java manuell die Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files installieren. http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html Die Installation läuft in etwa so:
#!bash $ unzip jce_policy-7.zip $ cd UnlimitedJCEPolicy $ jlibs=$JAVA_HOME/jre/lib/security $ sudo mv $jlibs/local_policy.jar $jlibs/local_policy.jar.old $ sudo mv $jlibs/US_export_policy.jar $jlibs/US_export_policy.jar.old $ sudo cp local_policy.jar $jlibs/local_policy.jar $ sudo cp US_export_policy.jar $jlibs/US_export_policy.jar $ ls -al $jlibs
Tomcat installieren
Installieren Sie den aktuellen Tomcat der Version 9.0.14, am besten ins Home-Verzeichnis. Installieren Sie folgende zusätzliche Bibliotheken wie folgt:
- mysql-connector
- xercesImpl
#!bash $ cd ~/tomcat/lib $ wget https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/5.1.16/mysql-connector-java-5.1.16.jar $ wget https://search.maven.org/remotecontent?filepath=xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar $ cp mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar . $ rm -r mysql-connector-java-5.0.8/; rm mysql-connector-java-5.0.8.tar.gz
Logging
Download log4j2.xml.
log4j2.xml
nach ~/tomcat/lib
kopieren. Danach die folgenden Jars herunterladen und in das lib-Verzeichnis des Tomcat kopieren:
- log4j-api Maven, 2.11.1
- log4j-core Maven, 2.11.1
- commons-logging-api Maven 1.1
- slf4j-api Maven, 1.6.3
- log4j-slf4j-impl Maven, 2.11.1 (Bridge slf4j to log4j)
- log4j-jcl Maven, 2.11.1 (Bridge slf4j to commons-logging)
- log4j-jul Maven, 2.11.1 (Bridge slf4j to Java Logging API)
- log4j-1.2-api Maven, 2.11.1 (Bridge slf4j to old Log4j 1.2)
Tomcat konfigurieren
context.xml
Please replace <Context>
with <Context sessionCookiePath="/">
.
catalina.properties
Öffnen Sie die Datei ~/tomcat/conf/catalina.properties
und fügen Sie folgende Zeil ans Ende der Datei an:
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true
Elasticsearch konfigurieren
Setzen Sie einen Clusternamen für Ihr Elasticsearch Cluster. Notieren Sie sich den Namen.
Webapp deployen
Deployen Sie die Webapp im konfigurierten Tomcat im Root-Context.
$ cp $PUMA_SRC/puma/bibsonomy-webapp-puma/target/bibsonomy-webapp-puma-$$VERSION$$.war ~/tomcat/webapps/bibsonomy-webapp.war
Ersetzen Sie $$VERSION$$
durch die aktuelle Versionsnummer.
puma.properties anpassen
Legen Sie Verzeichnisse für Dateien an
#!bash $ mkdir ~/puma_files/puma_docs/ $ mkdir ~/puma_files/puma_temp/ $ mkdir ~/puma_files/puma_pics/ Erstellen Sie die ``puma.properties``
Kopieren Sie folgenden Inhalt in die Datei.
address INCLUDING the trailing slash!
(both home + img server)
project.home = http://localhost:8080/ project.files.home = ${user.home}/puma_files
project.document.path = ${project.files.home}/puma_docs/ project.document.temp = ${project.files.home}/puma_temp/ project.picture.path = ${project.files.home}/puma_pics/
project.blog = http://www.academic-puma.de project.defaultLocale = de project.theme = puma project.bean.homepageController = pumaHomepageController
project.email = webmaster@xyz.cz project.noSpamEmail = no-spam@xyz.cz project.registrationFromAddress = register@xyz.cz project.joinGroupRequestFromAddress = groups@xyz.cz
password.reminder.cryptkey = $$CRYPT_KEY$$
project.img = http://img.puma.uni-kassel.de/
auth.order = INTERNAL auth.register.disabled = false
project.bean.pingback = mockPingback
possible values realSynchronizationClient, mockSynchronizationClient
project.bean.syncclient = realSynchronizationClient
PUMA buttons
project.addons.chrome.url = https://chrome.google.com/webstore/detail/puma-buttons/emdfjhapplcngnmhllpdmaecgoafjjmc project.addons.firefox.url = https://www.bibsonomy.org/puma_files/firefox/puma_buttons-latest.xpi project.addons.safari.url = /resources/addons/safari/puma-buttons-extension/puma_buttons.safariextz
news.group = puma news.tag = puma_news
search.es.address = localhost:9300 search.es.cluster.name = puma
project.groupcreationmode = automatic user.defaultToClassify=0
Passen Sie bitte die folgenden Einträge an Ihre Installation an: - `project.home`: Pfad zu Ihrer Applikation (bitte mit `/` enden lassen) - `project.email`: Die Anwendung erzeugt mit dieser Adresse links für die Benutzer zur Kontaktaufnahme - `project.noSpamEmail` - `registrationFromAddress` - `joinGroupRequestFromAddress` - `password.reminder.cryptkey`: Ersetzen Sie `$$CRYPT_KEY$$` durch einen zufällige Zeichenkette. - `search.es.address`: Die Adresse des laufenden Elasticsearch - `search.es.cluster.name`: Der konfigurierte Name des Clusters ### Datenbankverbindungen konfigurieren Ersetzen Sie ``$$DB_HOST$$`` und ``$$DB_PORT$$`` und ``**PASSWORD**`` entsprechend Ihrer Einstellungen und fügen Sie zusätzlich den foldenden Inhalt in die angelegte `puma.properties` ein:
database.clicklogger.url = jdbc:mysql://$$DB_HOST$$:$$DB_PORT$$/logging?${database.mysql.default.config}
database.search.username = puma_ro database.search.password = $$PASSWORD$$
database.recommender.tag.url = jdbc:mysql://$$DB_HOST$$:$$DB_PORT$$/puma_recommender?${database.mysql.default.config} database.recommender.tag.username = puma database.recommender.tag.password = $$PASSWORD$$
database.recommender.item.url = jdbc:mysql://$$DB_HOST$$:$$DB_PORT$$/puma_item_recommender?${database.mysql.default.config} database.recommender.item.username = puma database.recommender.item.password = $$PASSWORD$$
database.opensocial.url = jdbc:mysql://$$DB_HOST$$:$$DB_PORT$$/puma_opensocial?${database.mysql.default.config} database.opensocial.username = puma database.opensocial.password = $$PASSWORD$$
## Tomcat starten
## Webapp im Root Context ## Die PUMA Webapp läuft nicht ohne weiteres im ROOT Context. Die leichteste Variante ist, einen Apache als Proxy zu benutzen. Dazu definieren Sie einen VirtualHost wie folgt:
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# allow encoded slashes
AllowEncodedSlashes NoDecode
ProxyPass / http://127.0.0.1:8080/bibsonomy-webapp/ nocanon
ProxyPassReverse / http://127.0.0.1:8080/bibsonomy-webapp/ nocanon
</VirtualHost> ```
Als Admin einloggen
- Öffnen Sie Ihren Browser und geben Sie die Adresse
http://localhost/login
ein. - Melden Sie sich mit dem Benutzer
PUMA_adm
und dem gewählten Passwort an.
Updated