Installation: Unterschied zwischen den Versionen

Aus Letto-Wiki
Wechseln zu: Navigation, Suche
(Lizenz-Key einspielen)
(Einrichten der Datenbank)
(44 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= Allgemeines =
 
= Allgemeines =
 
Der Letto-Server wurde in Java für JavaEE [https://www.oracle.com/technetwork/java/javaee/overview/index.html] Server entwickelt. Prinzipiell sollte Letto auf jedem JavaEE-Server unter Windows oder Linux lauffähig sein.  
 
Der Letto-Server wurde in Java für JavaEE [https://www.oracle.com/technetwork/java/javaee/overview/index.html] 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 [https://javaee.github.io/glassfish/download] getestet und empfehlen deshalb auch diese Laufzeitumgebung.
+
Wir haben jedoch als Severumgebung nur Ubuntu-Server mit TomEE 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.
+
Als Datenbank wird eine MySQL-Datenbank verwendet, welche idealerweise am gleichen Server wie der TomEE 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 =
 
= Installation des Ubuntu Servers =
Zeile 10: Zeile 10:
  
 
== Installation unter Ubuntu 18.04 ==
 
== Installation unter Ubuntu 18.04 ==
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/18.04/release/] und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
+
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/18.04/release/] (Vorsicht nicht die Live-DVD verwenden!) und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
 
* Installation mit einem Benutzer letto
 
* Installation mit einem Benutzer letto
 
* Installation der benötigten Packete:
 
* Installation der benötigten Packete:
<pre># Repository für Java
+
<pre>
apt-add-repository -y ppa:webupd8team/javaapt-get -y update
+
# letzte Updates einspielen
 
apt-get -y update
 
apt-get -y update
 
# letzte Updates einspielen
 
 
apt-get -y upgrade
 
apt-get -y upgrade
 
apt-get -y dist-upgrade
 
apt-get -y dist-upgrade
 +
apt-get -y autoremove
  
# Java installieren
+
# Installation einer aktuellen Java8-JDK (hier die Open-JDK, es kann aber auch die Oracle-JDK verwendet werden)
apt-get install -y oracle-java8-installer
+
apt-get install -y openjdk-8-jre openjdk-8-jdk openjdk-8-demo openjdk-8-doc openjdk-8-jre-headless openjdk-8-source
  
 
# Maxima,Inkscape,komprimierer
 
# Maxima,Inkscape,komprimierer
apt-get install -y maxima inkscape arj zip unrar unzip
+
apt-get install -y maxima inkscape arj zip unzip
  
 
# Tex
 
# Tex
 
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 samba-common packagekit samba-common-bin samba-libs
+
#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
 
# Installation von MySQL, wenn es am Server installiert wird
 
apt-get install -y apache2 php mysql-server mysql-client phpmyadmin
 
apt-get install -y apache2 php mysql-server mysql-client phpmyadmin
 +
</pre>
 +
 +
== Installation unter Ubuntu 20.04 ==
 +
* Download von Ubuntu Server [http://cdimage.ubuntu.com/releases/20.04/release/]und Erzeugung eines Boot Mediums [https://wiki.ubuntuusers.de/Ubuntu-CD/] (zB. DVD)
 +
* Installation mit einem Benutzer letto
 +
* Installation der benötigten Packete:
 +
<pre>
 +
# letzte Updates einspielen
 +
apt-get -y update
 +
apt-get -y upgrade
 +
apt-get -y dist-upgrade
 +
apt-get -y autoremove
 +
 +
# Installation einer aktuellen Java8-JDK (hier die Open-JDK, es kann aber auch die Oracle-JDK verwendet werden)
 +
apt-get install -y openjdk-8-jre openjdk-8-jdk openjdk-8-demo openjdk-8-doc openjdk-8-jre-headless openjdk-8-source
 +
 +
# Maxima,Inkscape,komprimierer
 +
apt-get install -y maxima inkscape arj zip unzip scour
 +
 +
# Tex
 +
apt-get install -y tex-common texinfo texlive-base texlive-latex-recommended texlive texlive-latex-extra texlive-full fig2ps ttm
 +
 +
# Installation von Apache und MySQL, wenn es am Server installiert wird
 +
apt-get install -y apache2 php mysql-server mysql-client python3-certbot-apache net-tools software-properties-common
 
</pre>
 
</pre>
  
 
= Einrichten der Datenbank =
 
= 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.
 
* 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 eines Benutzers "letto" mit Zugriffsrecht auf die Datenbank "letto". Bitte verwenden sie '''keine Sonderzeichen oder Umlaute im Passwort''', da dies zu Problemen bei der Datenbankverbindung führen kann!!
* Anlegen einer leeren Datenbank "letto"
+
<pre>
 +
mysqldatabase=letto
 +
mysqluser=letto
 +
mysqlpassword=[passwort]
 +
mysqlltidatabase=lettolti
 +
mysqlltiuser=lettolti
 +
mysqlltipassword=[ltipasswort]
 +
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;"|mysql -u root -h localhost mysql
 +
echo "flush privileges;"|mysql -u root -h localhost mysql
 +
echo "create database if not exists $mysqldatabase ;"|mysql -u root -h localhost
 +
echo "CREATE USER if not exists '$mysqluser'@'localhost' IDENTIFIED WITH mysql_native_password BY '$mysqlpassword';"|mysql -u root -h localhost mysql
 +
echo "GRANT ALL PRIVILEGES ON $mysqldatabase.* TO '$mysqluser'@'localhost';"|mysql -u root -h localhost mysql
 +
echo "create database if not exists $mysqlltidatabase;"|mysql -u root -h localhost
 +
echo "CREATE USER if not exists '$mysqlltiuser'@'localhost' IDENTIFIED WITH mysql_native_password BY '$mysqlltipassword';"|mysql -u root -h localhost mysql
 +
echo "GRANT ALL PRIVILEGES ON $mysqlltidatabase . * TO '$mysqlltiuser'@'localhost';"|mysql -u root -h localhost mysql
 +
echo "flush privileges;"|mysql -u root -h localhost mysql
 +
</pre>
 
* Den Rest erledigt der Letto-Server
 
* Den Rest erledigt der Letto-Server
 
+
* Einstellung an der Datei mysqld.cnf als root
= Installation Glassfish Server=
+
<pre>
* Aktionen durchführen als user "letto"
+
nano /etc/mysql/mysql.conf.d/mysqld.cnf
* Download der glassfish-4.1.2.zip [https://javaee.github.io/glassfish/download], entpacken der zip und verschieben nach /opt
 
<pre>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/
 
 
</pre>
 
</pre>
* Kontrolle ob der Benutzer "letto" alle Recht im Verzeichnis /opt/glassfish4 hat
+
Am Ende der Datei einfügen:
* Glassfish Secure Admin starten und Admin-Passwort setzen (altes Passwort ist nach einer Neuinstallation leer!)
+
<pre>
<pre>/opt/glassfish4/glassfish/bin/asadmin --port 4848 change-admin-password
+
[mysqld]
/opt/glassfish4/glassfish/bin/asadmin --port 4848 enable-secure-admin
+
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
</pre>
+
default-time-zone='SYSTEM'
* MySQL Database-Connector [https://dev.mysql.com/downloads/connector/j/] herunterladen und ins Glassfish-Verzeichnis kopieren:
 
<pre>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/
 
</pre>
 
* Glassfish Server starten als Benutzer "letto"
 
<pre>/opt/glassfish4/glassfish/bin/asadmin start-domain
 
 
</pre>
 
</pre>
* Im Webbrowser die Glassfish-Admin-Konsole am Port 4848 öffnen und nun die Admin-Konsole konfigurieren
+
* Mysql neu starten
== Glassfish Konfiguration in der Admin-Konsole ==
 
=== Einrichten der JPA-Datenbank-Verbindung ===
 
* Resources - JDBC - JDBC Connection Pools - New
 
<pre>Pool Name: letto
 
Resource Type: java.sql.Driver
 
Database Driver Vendor: MySql
 
</pre>
 
-> Next
 
<pre>URL: jdbc:mysql://localhost/letto
 
user: letto
 
password: Passwort welches am MySQL-Server für den Benutzer letto angelegt wurde
 
</pre>
 
-> Finish
 
*Resources - JDBC - JDBC Resources - New
 
 
<pre>
 
<pre>
JNDI-Name: jdbc/letto
+
service mysql restart
Pool-Name: letto
 
</pre>
 
-> 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
 
<pre>-Xmx8192m
 
</pre>
 
== 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:
 
<pre>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";
 
};
 
</pre>
 
* Suche nach
 
<pre>permission java.io.FilePermission      "<<ALL FILES>>", "read,write";
 
</pre>
 
wenn es gefunden wurde -> ändern auf:
 
<pre>permission java.io.FilePermission "<<ALL FILES>>","read";
 
</pre>
 
== Nach den Konfigurationen Glassfish neu starten ==
 
* Glassfish Server starten als Benutzer "letto"
 
<pre>/opt/glassfish4/glassfish/bin/asadmin stop-domain
 
/opt/glassfish4/glassfish/bin/asadmin start-domain
 
 
</pre>
 
</pre>
  
= letto.war deployen =
+
= Installation des Webservers =
* Die aktuelle Version von letto als Datei letto.war auf einem Client herunterladen
+
 
* Im Webbrowser die Glassfish-Admin-Konsole am Port 4848 öffnen
+
Als Webserver wird von uns eine Kombination aus Apache-Server und TomEE 8 empfohlen. Der Apache-Server hostet alle statischen Dateien wie Images, Videos, Javascript-Libraries und stellt die Zertifikate für die https-Verbindung zur Verfügung.
* Applications - Deploy
+
* [[Installation TomEE-8]]
* Das war-File eintragen und ok
+
* [[Betreiben hinter einem Apache-Server|Konfiguration Apache-Server]]
* Nun sollte auf Port 8080 der http und auf Port 8181 der https-Server im Verzeichnis /letto zugreifbar sein
+
 
 +
Zu Testzwecken wird empfohlen, den Produktionsserver und die neue TomEE8-Version parallel zu verwenden.
 +
Siehe [[Umstieg von Glassfish 4.1 auf TomEE 8]]
 +
 
 +
Die folgenden Links zeigen auf die '''veraltelte Installation''' unter TomEE-7 oder Glassfish 4.1
 +
* [[Installation Glassfish Server|Installation Glassfish 4.1 - veraltet]]
 +
* [[Installation TomEE Server|Installation TomEE 7 - veraltet]]
 +
* [[Betreiben hinter einem Apache-Server]]
 +
 
 +
= globale Konfiguration =
 +
Folgende Einstellungen sollte der [[Globaler Administrator|globale Administrator]] vornehmen:
 +
* Anpassen der notwendigen Systemeinstellungen in der '''[[Globale Konfiguration|globalen Konfiguration]]'''.
 +
** [[Globale Konfiguration#Parameter für den Active-Directory-Login|Parameter]] für die Active-Directory oder LDAP Authentifikation
 +
** [[Globale Konfiguration#Parameter für den Serverbetrieb|Parameter]] für den Server-Betrieb
 +
** Wenn nur eine Schule vorhanden ist, die Konfiguration der [[Globale Konfiguration#Parameter der Schule|Schul-Parameter]]
 +
** Konfiguration des [[Globale Konfiguration#Allgemeine Konfiguration des Serververhaltens|Serververhaltens]]
 +
* Konfiguration des [[Schultypen|Schultyps]]
 +
* Anlegen einer neuen [[Schul-Konfiguration|Schule]]
 +
* Konfiguration der [[Globale Konfiguration#Parameter der Schule|Schul-Parameter]]
  
 
= Lizenz-Key einspielen =
 
= Lizenz-Key einspielen =
Zeile 126: Zeile 127:
  
 
= Einspielen der Daten =  
 
= Einspielen der Daten =  
* Das [[Einspielen der Daten]] wird bei einer Letto-Admin-Schulung erklärt
+
* Das [[Datenimport|Einspielen der Daten]] wird bei einer Letto-Admin-Schulung erklärt
 +
 
 +
= Konfiguration der globalen Einstellungen =
 +
:[[Datei:ClipCapIt-190121-191552.PNG|200px]]
 +
* 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 =
 
= letzte wichtige Server-Konfigurationen =
Zeile 135: Zeile 141:
 
* Zertifikat für den Glassfish für https  
 
* Zertifikat für den Glassfish für https  
 
* Verlinkungen und Weiterleitungen auf den Server einrichten
 
* Verlinkungen und Weiterleitungen auf den Server einrichten
 +
 +
[[Kategorie:Administration]]

Version vom 15. September 2020, 13:46 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 mit TomEE getestet und empfehlen deshalb auch diese Laufzeitumgebung.

Als Datenbank wird eine MySQL-Datenbank verwendet, welche idealerweise am gleichen Server wie der TomEE 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 [2] (Vorsicht nicht die Live-DVD verwenden!) und Erzeugung eines Boot Mediums [3] (zB. DVD)
  • Installation mit einem Benutzer letto
  • Installation der benötigten Packete:
# letzte Updates einspielen
apt-get -y update
apt-get -y upgrade
apt-get -y dist-upgrade
apt-get -y autoremove

# Installation einer aktuellen Java8-JDK (hier die Open-JDK, es kann aber auch die Oracle-JDK verwendet werden)
apt-get install -y openjdk-8-jre openjdk-8-jdk openjdk-8-demo openjdk-8-doc openjdk-8-jre-headless openjdk-8-source 

# 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

Installation unter Ubuntu 20.04

  • Download von Ubuntu Server [4]und Erzeugung eines Boot Mediums [5] (zB. DVD)
  • Installation mit einem Benutzer letto
  • Installation der benötigten Packete:
# letzte Updates einspielen
apt-get -y update
apt-get -y upgrade
apt-get -y dist-upgrade
apt-get -y autoremove

# Installation einer aktuellen Java8-JDK (hier die Open-JDK, es kann aber auch die Oracle-JDK verwendet werden)
apt-get install -y openjdk-8-jre openjdk-8-jdk openjdk-8-demo openjdk-8-doc openjdk-8-jre-headless openjdk-8-source

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

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

# Installation von Apache und MySQL, wenn es am Server installiert wird
apt-get install -y apache2 php mysql-server mysql-client python3-certbot-apache net-tools software-properties-common

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". Bitte verwenden sie keine Sonderzeichen oder Umlaute im Passwort, da dies zu Problemen bei der Datenbankverbindung führen kann!!
mysqldatabase=letto
mysqluser=letto
mysqlpassword=[passwort]
mysqlltidatabase=lettolti
mysqlltiuser=lettolti
mysqlltipassword=[ltipasswort]
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;"|mysql -u root -h localhost mysql
echo "flush privileges;"|mysql -u root -h localhost mysql
echo "create database if not exists $mysqldatabase ;"|mysql -u root -h localhost
echo "CREATE USER if not exists '$mysqluser'@'localhost' IDENTIFIED WITH mysql_native_password BY '$mysqlpassword';"|mysql -u root -h localhost mysql
echo "GRANT ALL PRIVILEGES ON $mysqldatabase.* TO '$mysqluser'@'localhost';"|mysql -u root -h localhost mysql
echo "create database if not exists $mysqlltidatabase;"|mysql -u root -h localhost
echo "CREATE USER if not exists '$mysqlltiuser'@'localhost' IDENTIFIED WITH mysql_native_password BY '$mysqlltipassword';"|mysql -u root -h localhost mysql
echo "GRANT ALL PRIVILEGES ON $mysqlltidatabase . * TO '$mysqlltiuser'@'localhost';"|mysql -u root -h localhost mysql
echo "flush privileges;"|mysql -u root -h localhost mysql
  • 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_ENGINE_SUBSTITUTION"
default-time-zone='SYSTEM'
  • Mysql neu starten
service mysql restart

Installation des Webservers

Als Webserver wird von uns eine Kombination aus Apache-Server und TomEE 8 empfohlen. Der Apache-Server hostet alle statischen Dateien wie Images, Videos, Javascript-Libraries und stellt die Zertifikate für die https-Verbindung zur Verfügung.

Zu Testzwecken wird empfohlen, den Produktionsserver und die neue TomEE8-Version parallel zu verwenden. Siehe Umstieg von Glassfish 4.1 auf TomEE 8

Die folgenden Links zeigen auf die veraltelte Installation unter TomEE-7 oder Glassfish 4.1

globale Konfiguration

Folgende Einstellungen sollte der globale 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