Installation: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 43: | Zeile 43: | ||
* Den Rest erledigt der Letto-Server | * Den Rest erledigt der Letto-Server | ||
= Glassfish Server= | = Installation Glassfish Server= | ||
* Aktionen durchführen als user "letto" | * Aktionen durchführen als user "letto" | ||
* Download der glassfish-4.1.2.zip [https://javaee.github.io/glassfish/download], entpacken der zip und verschieben nach /opt | * Download der glassfish-4.1.2.zip [https://javaee.github.io/glassfish/download], entpacken der zip und verschieben nach /opt | ||
Zeile 86: | Zeile 86: | ||
* Configuration - Server config - JVM settings - JVM Options | * Configuration - Server config - JVM settings - JVM Options | ||
<pre>-Xmx8192m | <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> | </pre> |
Version vom 15. September 2018, 22:24 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] 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/javaapt-get -y update 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 unrar 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 am 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 # 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
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 /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 cp mysql-connector-java-5.1.47.zip /opt/glassfish4/glassfish/domains/domain1/lib/
- Glassfish Server starten als Benutzer "letto"
/opt/glassfish4/glassfish/bin/asadmin start-domain
- 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";