Installation TomEE-8: Unterschied zwischen den Versionen

Aus Letto-Wiki
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:
* /opt/letto  
* /opt/letto  
In diesem Ordner liegen alle Daten, die von LeTTo gespeichert und verwendet werden.
In diesem Ordner liegen alle Daten, die von LeTTo gespeichert und verwendet werden.
* /opt/letto/war
In diesen Ordner wird die aktuelle Version der letto.war heruntergeladen (händisch oder vom Update-Script)


* /opt/letto/images ... Speicherort für alle Bilder und Dateien, die innerhalb von Letto hochgeladen werden.
* /opt/letto/images ... Speicherort für alle Bilder und Dateien, die innerhalb von Letto hochgeladen werden.
Zeile 39: Zeile 42:
sudo chmod 755 /opt
sudo chmod 755 /opt
</pre>
</pre>
* Download des Servers [https://mirror.klaus-uwe.me/apache/tomee/tomee-8.0.1/], entpacken der Datei, verschieben nach /opt und einen Link auf /opt/tomee legen
* Download des Servers [https://mirror.klaus-uwe.me/apache/tomee/tomee-8.0.3/], entpacken der Datei, verschieben nach /opt und einen Link auf /opt/tomee legen
<pre>
<pre>
wget https://mirror.klaus-uwe.me/apache/tomee/tomee-8.0.1/apache-tomee-8.0.1-plume.tar.gz
wget https://mirror.klaus-uwe.me/apache/tomee/tomee-8.0.3/apache-tomee-8.0.3-plume.tar.gz
tar -xzf apache-tomee-8.0.1-plume.tar.gz
tar -xzf apache-tomee-8.0.3-plume.tar.gz
sudo mv apache-tomee-plume-8.0.1 /opt/tomee8
sudo mv apache-tomee-plume-8.0.3 /opt/tomee8


cd /opt/letto
cd /opt/letto
ln -s /opt/tomee8 /opt/tomee
ln -s /opt/tomee8 /opt/tomee
</pre>
</pre>
* Kontrolle ob der Benutzer "letto" alle Recht im Verzeichnis /opt/tomee8 hat
* Kontrolle ob der Benutzer "letto" alle Recht im Verzeichnis /opt/tomee hat
* MySQL Database-Connector [https://dev.mysql.com/downloads/connector/j/] herunterladen und ins TomEE-Verzeichnis kopieren:
* MySQL Database-Connector [https://dev.mysql.com/downloads/connector/j/] herunterladen und ins TomEE-Verzeichnis kopieren:
<pre>wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.zip
<pre>wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.zip
Zeile 55: Zeile 58:
</pre>
</pre>


* Datenbank eintragen in der Datei '''/opt/tomee8/conf/tomee.xml'''
* Datenbank eintragen in der Datei '''/opt/tomee/conf/tomee.xml'''
<pre>
<pre>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Zeile 78: Zeile 81:
</pre>
</pre>


* Für die Funktion von Primefaces einfügen am Ende der Datei '''/opt/tomee8/conf/catalina.properties'''
* Für die Funktion von Primefaces einfügen am Ende der Datei '''/opt/tomee/conf/catalina.properties'''
<pre>
<pre>
org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
</pre>
</pre>


* In /opt/tomee8/conf/context.xml => Kommentar löschen, sodass diese Zeile aktiv
* In '''/opt/tomee/conf/context.xml''' => Kommentar löschen, sodass diese Zeile aktiv
<pre>
<pre>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
Zeile 89: Zeile 92:
</pre>
</pre>
    
    
* Port Festlegen in der Datei '''/opt/tomee8/conf/server.xml''': <br> zB.: http(8088), https(8483), AJP(8089)
* Port Festlegen in der Datei '''/opt/tomee/conf/server.xml''': <br> zB.: http(8088), https(8483), AJP(8089)
<pre>
<pre>
...
...
Zeile 105: Zeile 108:
   </Service>
   </Service>
</Server>
</Server>
</pre>
* Damit mit den korrekten Dateirechten gespeichert wird suche in der Datei '''/opt/tomee/bin/catalina.sh''' nach
<pre>
# Set UMASK unless it has been overridden                                                                                                                                  if [ -z "$UMASK" ]; then                                                                                                                                                        UMASK="0027"                                                                                                                                                            fi                                                                                                                                                                          umask $UMASK
</pre>
und ersetze 0027 durch 002 :
<pre>
# Set UMASK unless it has been overridden                                                                                                                                  if [ -z "$UMASK" ]; then                                                                                                                                                        UMASK="0002"                                                                                                                                                            fi                                                                                                                                                                          umask $UMASK
</pre>
</pre>


== Einrichten des Security-Managers für das SourceCode-Plugin ==
== Einrichten des Security-Managers für das SourceCode-Plugin ==
* Von der Konsole aus die Datei /opt/tomee8/conf/catalina.policy bearbeiten
* Von der Konsole aus die Datei '''/opt/tomee/conf/catalina.policy''' bearbeiten
* Am Ende anfügen:  
* Am Ende anfügen:  
<pre>
<pre>
Zeile 116: Zeile 128:
     permission java.lang.RuntimePermission "setSecurityManager";
     permission java.lang.RuntimePermission "setSecurityManager";
     permission java.security.SecurityPermission "getPolicy";
     permission java.security.SecurityPermission "getPolicy";
    permission java.security.SecurityPermission "setPolicy";
     permission java.lang.RuntimePermission "accessDeclaredMembers";
     permission java.lang.RuntimePermission "accessDeclaredMembers";
    permission java.io.FilePermission "C:\workspace-oxygen-letto\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps", "read";
     permission java.lang.RuntimePermission "setIO";
     permission java.lang.RuntimePermission "setIO";
     permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
     permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};
};
</pre>
== Setzen des Heap-Speichers für den TomEE Server ==
Der Heap-Speicher sollte für den Server auf 2/3 bis 3/4 vom physikalischen Speicher gesetzt werden.
Dazu ist eine Datei '''/opt/tomee/bin/setenv.sh''' zu erstellen, in der der Speicher in Megabyte anzugeben ist.
Hier ein Beispiel für einen Rechner mit 16GB physikalischem RAM und demnach 12GB Heap-Speicher:
<pre>
#!/bin/sh -e
export CATALINA_OPTS="-Xms12000M -Xmx12000M\"
</pre>
Diese Datei ist dann noch mit Ausführungsrechten zu versehen.
<pre>
chmod 755 /opt/tomee/bin/setenv.sh
</pre>
</pre>


Zeile 130: Zeile 158:
== TomEE stoppen ==
== TomEE stoppen ==
<pre>
<pre>
/opt/tomee8/bin/shutdown.sh
/opt/tomee/bin/shutdown.sh
</pre>
</pre>


== letto.war deployen ==
== letto.war deployen ==
<pre>
<pre>
cd /opt/war
cd /opt/letto/war
wget -q -c --user letto --password https://letto.at/download/letto/letto-daily.war
wget -q -c --user letto --password xxxPASSWORTyyy https://letto.at/download/letto/letto-daily.war
cp letto-daily.war /opt/tomee8/webapps/letto.war
cp letto-daily.war /opt/tomee/webapps/letto.war
</pre>
</pre>
Das Passwort wird von uns auf Anfrage zur Verfügung gestellt.


== Update der Anwendung ==
== Update der Anwendung ==

Aktuelle Version vom 29. September 2020, 14:12 Uhr

Verzeichnisse einrichten

Empfohlene Verzeichnisstruktur

  • /opt/letto

In diesem Ordner liegen alle Daten, die von LeTTo gespeichert und verwendet werden.

  • /opt/letto/war

In diesen Ordner wird die aktuelle Version der letto.war heruntergeladen (händisch oder vom Update-Script)

  • /opt/letto/images ... Speicherort für alle Bilder und Dateien, die innerhalb von Letto hochgeladen werden.
  • /opt/letto/js ... Speicherort für Javascript-Dateien. Alle extern verwendeten Javaspript-Dateien können in der Letto-Konfiguration hierher kopiert werden, damit bei der Durchführung von Tests keine externen Daten benötigt werden. Damit kann die Firewall für User-Browser alle externen Zugriffe sperren.

Diese 2 Verzeichnisse (images, js) müssen auch in das [Apache|Apache-Base-Verzeichnis verlinkt] werden.

Der Ordner /opt/letto/images muss in das Backup eingebunden werden!

Die weiteren Ordner werden von LeTTo automatisch erzeugt:

  • /opt/letto/pdf ... Ordner zum Zwischenspeichern von erzeugten User-PDF-Dokumenten.
  • /opt/letto/tex ... Ordner zum Zwischenspeichern von erzeugten Tex-Dokumenten (Verwendung auch bei der Generierung von PDFs).
  • /opt/letto/projekt ... In diesem Ordner werden Schülerprojekte gezippt für alle Abgaben abgelegt.
  • /opt/letto/images/photos ... Speicherort für Schülerfotos: Bildname: SokratesID.jpg

Erzeugung der Ordner und Verlinkung zum Apache-Server

sudo mkdir /opt/letto/images
sudo mkdir /opt/letto/js

Symbolische Links für Apache

cd /var/www/html
ln -s /opt/letto/images images
ln -s /opt/letto/js js

Installation TomEE 8 Server

TomEE download und Installation

  • Aktionen durchführen als user "letto"
    • Der user "letto" sollte Schreibrechte im Verzeichnis /opt haben, am einfachsten man trägt den Benutzer als Owner ein.
sudo chown letto /opt
sudo chmod 755 /opt
  • Download des Servers [1], entpacken der Datei, verschieben nach /opt und einen Link auf /opt/tomee legen
wget https://mirror.klaus-uwe.me/apache/tomee/tomee-8.0.3/apache-tomee-8.0.3-plume.tar.gz
tar -xzf apache-tomee-8.0.3-plume.tar.gz
sudo mv apache-tomee-plume-8.0.3 /opt/tomee8

cd /opt/letto
ln -s /opt/tomee8 /opt/tomee
  • Kontrolle ob der Benutzer "letto" alle Recht im Verzeichnis /opt/tomee hat
  • MySQL Database-Connector [2] herunterladen und ins TomEE-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/tomee/lib/
  • Datenbank eintragen in der Datei /opt/tomee/conf/tomee.xml
<?xml version="1.0" encoding="UTF-8"?>
<tomee>
  <!-- see http://tomee.apache.org/containers-and-resources.html -->
  <!-- activate next line to be able to deploy applications in apps -->
  <!-- <Deployments dir="apps" /> -->
  <Resource id="jdbc/letto" type="DataSource">
		JdbcDriver  com.mysql.jdbc.Driver
		JdbcUrl     jdbc:mysql://localhost/letto?autoReconnect=true
		UserName    letto
		Password    xxx-gewähltesPasswort-xxx                
                jtaManaged = true
                testOnReturn = true
                testWhileIdle = true
                timeBetweenEvictionRunsMillis = 60
                initialSize = 2
                minIdle = 2
                validationQuery = "select 1"
  </Resource>
</tomee>
  • Für die Funktion von Primefaces einfügen am Ende der Datei /opt/tomee/conf/catalina.properties
org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
  • In /opt/tomee/conf/context.xml => Kommentar löschen, sodass diese Zeile aktiv
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
  <Manager pathname="" />
  • Port Festlegen in der Datei /opt/tomee/conf/server.xml:
    zB.: http(8088), https(8483), AJP(8089)
...
<Server port="8005" shutdown="SHUTDOWN">
   ...
   <Service name="Catalina">
      ...
      <Connector port="8088" protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="8483" xpoweredBy="false" server="Apache TomEE" />
      ...
      <Connector port="8089" protocol="AJP/1.3" redirectPort="8483" />
      ...
    
   </Service>
</Server>
  • Damit mit den korrekten Dateirechten gespeichert wird suche in der Datei /opt/tomee/bin/catalina.sh nach
# Set UMASK unless it has been overridden                                                                                                                                   if [ -z "$UMASK" ]; then                                                                                                                                                        UMASK="0027"                                                                                                                                                            fi                                                                                                                                                                          umask $UMASK 

und ersetze 0027 durch 002 :

# Set UMASK unless it has been overridden                                                                                                                                   if [ -z "$UMASK" ]; then                                                                                                                                                        UMASK="0002"                                                                                                                                                            fi                                                                                                                                                                          umask $UMASK 

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

  • Von der Konsole aus die Datei /opt/tomee/conf/catalina.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";
};

Setzen des Heap-Speichers für den TomEE Server

Der Heap-Speicher sollte für den Server auf 2/3 bis 3/4 vom physikalischen Speicher gesetzt werden.

Dazu ist eine Datei /opt/tomee/bin/setenv.sh zu erstellen, in der der Speicher in Megabyte anzugeben ist.

Hier ein Beispiel für einen Rechner mit 16GB physikalischem RAM und demnach 12GB Heap-Speicher:

#!/bin/sh -e
export CATALINA_OPTS="-Xms12000M -Xmx12000M\"

Diese Datei ist dann noch mit Ausführungsrechten zu versehen.

chmod 755 /opt/tomee/bin/setenv.sh

TomEE starten

/opt/tomee/bin/startup.sh

TomEE stoppen

/opt/tomee/bin/shutdown.sh

letto.war deployen

cd /opt/letto/war
wget -q -c --user letto --password xxxPASSWORTyyy https://letto.at/download/letto/letto-daily.war
cp letto-daily.war /opt/tomee/webapps/letto.war

Das Passwort wird von uns auf Anfrage zur Verfügung gestellt.

Update der Anwendung

siehe Update TomEE


siehe auch