Installation: Unterschied zwischen den Versionen

Aus Letto-Wiki
Wechseln zu: Navigation, Suche
(Einrichten der Datenbank)
(Installation unter Ubuntu 18.04)
Zeile 30: Zeile 30:
 
apt-get install -y tex-common texinfo texlive-latex-extra fig2ps ttm texlive-full texlive-plain-extra  
 
apt-get install -y tex-common texinfo texlive-latex-extra fig2ps ttm texlive-full texlive-plain-extra  
  
# Samba und cifs für die Autentifizierung am einer Windows Domain
+
# Samba und cifs für die Autentifizierung an einer Windows Domain
apt-get install -y samba realmd sssd adcli libwbclient-sssd krb5-user sssd-tools packagekit  
+
#apt-get install -y samba realmd sssd adcli libwbclient-sssd krb5-user sssd-tools packagekit  
apt-get install -y samba-common samba-common-bin samba-libs
+
#apt-get install -y samba-common samba-common-bin samba-libs
  
 
# Installation von MySQL, wenn es am Server installiert wird
 
# Installation von MySQL, wenn es am Server installiert wird

Version vom 21. März 2019, 15:34 Uhr

Allgemeines

Der Letto-Server wurde in Java für JavaEE [1] Server entwickelt. Prinzipiell sollte Letto auf jedem JavaEE-Server unter Windows oder Linux lauffähig sein. Wir haben jedoch als Severumgebung nur Ubuntu-Server getestet mit Glassfish 4.1 [2] getestet und empfehlen deshalb auch diese Laufzeitumgebung.

Als Datenbank wird eine MySQL-Datenbank verwendet, welche idealerweise am gleichen Server wie der Glassfish läuft. Es ist jedoch auch mögliche einen zentralen MySQL-Server zu verwenden welcher im LAN zur Verfügung steht.

Installation des Ubuntu Servers

Der Server kann entweder direkt auf einer PC-Hardware oder in einer virtuellen Umgebung installiert werden. Wir gehen hier nur auf die Direktinstallation ein, virtuelle Systeme sollten aber analog dazu installiert werden können.

Installation unter Ubuntu 18.04

  • Download von Ubuntu Server [3] (Vorsicht nicht die Live-DVD verwenden!) und Erzeugung eines Boot Mediums [4] (zB. DVD)
  • Installation mit einem Benutzer letto
  • Installation der benötigten Packete:
# Repository für Java
apt-add-repository -y ppa:webupd8team/java
apt-get -y update

# letzte Updates einspielen
apt-get -y upgrade
apt-get -y dist-upgrade

# Java installieren 
apt-get install -y oracle-java8-installer 

# Maxima,Inkscape,komprimierer
apt-get install -y maxima inkscape arj zip unzip

# Tex
apt-get install -y tex-common texinfo texlive-latex-extra fig2ps ttm texlive-full texlive-plain-extra 

# Samba und cifs für die Autentifizierung an einer Windows Domain
#apt-get install -y samba realmd sssd adcli libwbclient-sssd krb5-user sssd-tools packagekit 
#apt-get install -y samba-common samba-common-bin samba-libs

# Installation von MySQL, wenn es am Server installiert wird
apt-get install -y apache2 php mysql-server mysql-client phpmyadmin

Einrichten der Datenbank

  • Die Konfiguration kann über phpmyadmin,den mysql Konsolen-Client, MySQLWorkbench, oder irgend ein anderes Admin-Tool für die MySQL-Datenbank erfolgen.
  • Anlegen eines Benutzers "letto" mit Zugriffsrecht auf die Datenbank "letto"
  • Anlegen einer leeren Datenbank "letto"
  • Den Rest erledigt der Letto-Server
  • Einstellung an der Datei mysqld.cnf als root
nano /etc/mysql/mysql.conf.d/mysqld.cnf

Am Ende der Datei einfügen:

[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
  • Mysql neu starten
service mysql restart

Installation Glassfish Server

  • Aktionen durchführen als user "letto"
  • Download der glassfish-4.1.2.zip [5], entpacken der zip und verschieben nach /opt
wget http://download.java.net/glassfish/4.1.2/release/glassfish-4.1.2.zip
unzip glassfish-4.1.2.zip
sudo mv glassfish4 /opt/
  • Kontrolle ob der Benutzer "letto" alle Recht im Verzeichnis /opt/glassfish4 hat
  • Glassfish Secure Admin starten und Admin-Passwort setzen (altes Passwort ist nach einer Neuinstallation leer!)
/opt/glassfish4/glassfish/bin/asadmin --port 4848 change-admin-password
  • Glassfish Server starten als Benutzer "letto"
/opt/glassfish4/glassfish/bin/asadmin start-domain
  • Secure-Admin aktivieren
/opt/glassfish4/glassfish/bin/asadmin --port 4848 enable-secure-admin
  • MySQL Database-Connector [6] herunterladen und ins Glassfish-Verzeichnis kopieren:
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.zip
unzip mysql-connector-java-5.1.47.zip
cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47.jar /opt/glassfish4/glassfish/domains/domain1/lib/
  • Im Webbrowser die Glassfish-Admin-Konsole am Port 4848 öffnen und nun die Admin-Konsole konfigurieren

Glassfish Konfiguration in der Admin-Konsole

Einrichten der JPA-Datenbank-Verbindung

  • Resources - JDBC - JDBC Connection Pools - New
Pool Name: letto
Resource Type: java.sql.Driver
Database Driver Vendor: MySql

-> Next

URL: jdbc:mysql://localhost/letto
user: letto
password: Passwort welches am MySQL-Server für den Benutzer letto angelegt wurde

-> Finish

  • Resources - JDBC - JDBC Resources - New
JNDI-Name: jdbc/letto
Pool-Name: letto

-> ok

Heap-Speicher setzen

Der Heap-Speicher sollte maximal so groß gesetzt werden, dass noch genug RAM für Linux übrig bleibt (zB. 70-80% das verfügbaren RAM-Speichers)

  • Configuration - Server config - JVM settings - JVM Options
-Xmx8192m

Einrichten des Security-Managers für das SourceCode-Plugin

  • Von der Konsole aus die Datei /opt/glassfish4/glassfish/domains/domain1/config/server.policy bearbeiten
  • Am Ende anfügen:
grant {
      permission java.util.PropertyPermission "java.security.policy", "write";
      permission java.lang.RuntimePermission "createSecurityManager";
      permission java.lang.RuntimePermission "setSecurityManager";
      permission java.security.SecurityPermission "getPolicy";
      permission java.security.SecurityPermission "setPolicy";
      permission java.lang.RuntimePermission "accessDeclaredMembers";      
      permission java.lang.RuntimePermission "setIO";
      permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};
  • Suche nach
permission java.io.FilePermission       "<<ALL FILES>>", "read,write";

wenn es gefunden wurde -> ändern auf:

permission java.io.FilePermission "<<ALL FILES>>","read"; 

Nach den Konfigurationen Glassfish neu starten

  • Glassfish Server starten als Benutzer "letto"
/opt/glassfish4/glassfish/bin/asadmin stop-domain
/opt/glassfish4/glassfish/bin/asadmin start-domain

letto.war deployen

  • Die aktuelle Version von letto als Datei letto.war auf einem Client herunterladen
  • Im Webbrowser die Glassfish-Admin-Konsole am Port 4848 öffnen
  • Applications - Deploy
  • Das war-File eintragen und ok
  • Nun sollte auf Port 8080 der http und auf Port 8181 der https-Server im Verzeichnis /letto zugreifbar sein
  • Beim Ersten Zugriff auf den Server muss der globale Administrator gesetzt werden.
ClipCapIt-190125-224854.PNG
  • Danach kann man mit dem globalen Administrator einloggen und den Server weiter konfigurieren

globale Konfiguration

Folgende Einstellungen sollte der globle Administrator vornehmen:

Lizenz-Key einspielen

  • Der Lizenz-Key wird einfach in das Feld "Lizenz-Key" kopiert und mit "Lizenz übernehmen" bestätigt
  • Wird der Lizenz-Key korrekt angenommen, so ist letto danach einsatzbereit

Einspielen der Daten

Konfiguration der globalen Einstellungen

ClipCapIt-190121-191552.PNG
  • Im Dialog "Globale Konfiguration" müssen noch die Parameter für Server, AD-Login und Schule eingestellt werden.
  • Als globaler Administrator kann man mit dem Menüpunkt "AD-check" die Authentifikation an einem LDAP-Server oder an einem Active-Directory konfigurieren.

letzte wichtige Server-Konfigurationen

Folgende Konfigurationen sollten noch vorgenommmen werden, werden aber in diesem Wiki nicht explizit beschrieben, sondern sollten von einem Linux/Unix-Fachmann vorgenommen werden.

  • Letto beim Systemstart automatisch starten
  • Datensicherung einrichten
  • Firewall einrichten
  • Zertifikat für den Glassfish für https
  • Verlinkungen und Weiterleitungen auf den Server einrichten