Installation: Unterschied zwischen den Versionen

Aus Letto-Wiki
Wechseln zu: Navigation, Suche
(Betreiben des TomEE-Servers hinter dem Apache-Server)
(Einrichten der Datenbank)
(10 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 13: Zeile 13:
 
* 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/java
+
# 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
Zeile 36: Zeile 35:
 
# 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
 
* Einstellung an der Datei mysqld.cnf als root
Zeile 50: Zeile 89:
 
<pre>
 
<pre>
 
[mysqld]
 
[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"
+
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
 +
default-time-zone='SYSTEM'
 
</pre>
 
</pre>
 
* Mysql neu starten
 
* Mysql neu starten
Zeile 58: Zeile 98:
  
 
= Installation des Webservers =
 
= Installation des Webservers =
Als Webserver wurde von uns der Glassfish 4.1.2 und TomEE 7.1.0 getestet.
 
* [[Installation Glassfish Server]]
 
* [[Installation TomEE Server]]
 
  
== Betreiben des TomEE-Servers hinter dem Apache-Server ==
+
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.
In der Konfigurationsdatei des Apache wenn der AJP Port des TomEE-Servers auf 8089 liegt:
+
* [[Installation TomEE-8]]
<pre>
+
* [[Betreiben hinter einem Apache-Server|Konfiguration Apache-Server]]
<IfModule mod_ssl.c>
+
 
    <VirtualHost _default_:443>
+
Zu Testzwecken wird empfohlen, den Produktionsserver und die neue TomEE8-Version parallel zu verwenden.
        ServerAdmin x.y@z.at
+
Siehe [[Umstieg von Glassfish 4.1 auf TomEE 8]]
        ...
+
 
        SSLProxyEngine  On
+
Die folgenden Links zeigen auf die '''veraltelte Installation''' unter TomEE-7 oder Glassfish 4.1
        ProxyRequests Off
+
* [[Installation Glassfish Server|Installation Glassfish 4.1 - veraltet]]
        ProxyPreserveHost  On
+
* [[Installation TomEE Server|Installation TomEE 7 - veraltet]]
       
+
* [[Betreiben hinter einem Apache-Server]]
        <Location /letto>
 
              ProxyPass ajp://localhost:8089/letto
 
        </Location>
 
      ...
 
    </VirtualHost>
 
</IfModule>
 
</pre>
 
  
 
= globale Konfiguration =
 
= globale Konfiguration =
Folgende Einstellungen sollte der [[Globaler Administrator|globle Administrator]] vornehmen:
+
Folgende Einstellungen sollte der [[Globaler Administrator|globale Administrator]] vornehmen:
 
* Anpassen der notwendigen Systemeinstellungen in der '''[[Globale Konfiguration|globalen Konfiguration]]'''.
 
* 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 Active-Directory-Login|Parameter]] für die Active-Directory oder LDAP Authentifikation

Version vom 15. September 2020, 14: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