Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp3prepare-tomcat [2018/11/28 15:00]
Silke Meyer [Installation]
de:shibidp3prepare-tomcat [2019/08/15 16:16] (aktuell)
Silke Meyer [Java Standard Tag Library (JSTL)]
Zeile 3: Zeile 3:
 ==== Installation ==== ==== Installation ====
  
-=== Debian ​8/9 ===+=== Debian ​10 ===
  
 <code bash> <code bash>
-root@idp:~# apt-get install ​tomcat8+root@idp:~# apt install ​tomcat9
 </​code>​ </​code>​
  
-Hinweis: Sofern Sie tomcat8 aus Debian-Jessie-Backports verwenden (nicht unbedingt nötig) brauchen Sie auch das Paket '​libservlet3.1-java'​ um den IdP betreiben zu können. +=== Debian 8/9 ===
- +
-=== RHEL === +
- +
-EPEL installieren +
- +
-RHEL/CentOS 6 32-Bit+
  
 <code bash> <code bash>
-wget http://​download.fedoraproject.org/​pub/​epel/​6/​i386/​epel-release-6-8.noarch.rpm +root@idp:~# apt-get install tomcat8
-rpm -ivh epel-release-6-8.noarch.rpm+
 </​code>​ </​code>​
  
-RHEL/CentOS ​6 64-Bit+=== CentOS ​7 ===
  
-<code bash> +CentOS 7 bringt über das Repository noch Tomcat 7 mitNeuere Versionen können Sie manuell installieren.
-wget http://​download.fedoraproject.org/​pub/​epel/​6/​x86_64/​epel-release-6-8.noarch.rpm +
-rpm -ivh epel-release-6-8.noarch.rpm +
-</​code>​ +
- +
-EPEL verifizieren+
  
 <code bash> <code bash>
-yum repolist+root@idp:​~# ​yum -y install tomcat
 </​code>​ </​code>​
  
-EPEL aktivieren+=== OpenSUSE Leap 15.1 ===
  
-<code bash> +OpenSUSE Leap 15 kommt mit Tomcat 9.
-yum-config-manager --enable epel +
-</​code>​+
  
 <code bash> <code bash>
-yum install tomcat+root@idp:~# zypper ​install tomcat
 </​code>​ </​code>​
  
-==== Java-Konfiguration ====+==== Startup-Konfiguration ====
  
 Einige globale Java-Parameter müssen beim Tomcat-Start festgelegt werden. Das IdP-Servlet benötigt mehr Speicher, als gemäß den Voreinstellungen vorgesehen ist und Zugriff auf das Filesystem: Einige globale Java-Parameter müssen beim Tomcat-Start festgelegt werden. Das IdP-Servlet benötigt mehr Speicher, als gemäß den Voreinstellungen vorgesehen ist und Zugriff auf das Filesystem:
  
-=== Debian ===+=== Debian ​10 ===
  
-<file bash /​etc/​default/​tomcat8>+<file bash /​etc/​default/​tomcat9>​ 
 +# den Tomcat mit genug Speicher starten: 
 +JAVA_OPTS="​-Djava.awt.headless=true -XX:​+UseConcMarkSweepGC -Xms1024m -Xmx2048m"​ 
 +</​file>​ 
 + 
 +<file ini /​etc/​systemd/​system/​tomcat9.service.d/​override.conf>​ 
 +[Service] 
 +ReadWritePaths=/​opt/​shibboleth-idp/​logs/​ 
 +ReadWritePaths=/​opt/​shibboleth-idp/​metadata/​ 
 +</​file>​ 
 + 
 +=== Debian 8/9 === 
 + 
 +<file bash /​etc/​default/​tomcat[8|9]>
 # den Tomcat mit genug Speicher starten: # den Tomcat mit genug Speicher starten:
 JAVA_OPTS="​-Djava.awt.headless=true -XX:​+UseConcMarkSweepGC -Xms1024m -Xmx2048m"​ JAVA_OPTS="​-Djava.awt.headless=true -XX:​+UseConcMarkSweepGC -Xms1024m -Xmx2048m"​
Zeile 58: Zeile 57:
 </​file>​ </​file>​
  
-=== CentOS/RHEL ===+=== CentOS ​und OpenSUSE ​===
  
-Die Tomcat-Start-Optionen werden in /etc/tomcat8/tomcat8.conf festegelegt.+Die Tomcat-Start-Optionen werden in ''​/etc/tomcat/tomcat.conf''​ festgelegt.
  
 ==== Port-Konfigurtion ==== ==== Port-Konfigurtion ====
Zeile 69: Zeile 68:
   * auf Port 8009 der AJP-Connector aktiviert über den der vorgelagerte Webserver Anfragen an Tomcat weiterleitet   * auf Port 8009 der AJP-Connector aktiviert über den der vorgelagerte Webserver Anfragen an Tomcat weiterleitet
  
-<file xml /etc/tomcat8/server.xml+<file xml /etc/tomcatX/​server.xml>​
-<Server port="​8005"​ shutdown="​SHUTDOWN"​>+
    <​!-- ... -->    <​!-- ... -->
   <Service name="​Catalina">​   <Service name="​Catalina">​
Zeile 91: Zeile 89:
   </​Service>​   </​Service>​
   <!-- ... -->   <!-- ... -->
-</​Server>​ 
 </​file>​ </​file>​
  
-Um das IdP-Servlet im Tomcat zu aktivierenerstellen Sie folgende Datei im Tomcat-localhost-Context:​ +IdP-Sessions gehen bei einem Tomcat-Neustart in jedem Fall verloren. Daher ergibt es keinen Sinn (bzw. führt nur zu unnötigen IdP-Fehlermeldungen)einzustellen,​ dass alte Sessions über Tomcat-Neustarts persistiert werden sollenDeaktivieren Sie daher dieses Tomcat-Feature:
- +
-/​etc/​tomcat8/​Catalina/​localhost/​idp.xml +
- +
-<code xml> +
-<Context docBase="/​opt/​shibboleth-idp/​war/​idp.war"​ +
-         ​privileged="​true"​ +
-         ​unpackWAR="​true"​ +
-         ​antiResourceLocking="​false"​ +
-         ​swallowOutput="​true"​ /> +
-</​code>​+
  
-**Achtung:​** ​ Unter CentOS 7 und Tomcat 7 muss ''​unpackWAR="​false"'' ​ gesetzt werden! +<file xml /etc/tomcatX/​context.xml>​
- +
-IdP-Sessions gehen bei einem Tomcat-Neustart in jedem Fall verloren. Daher macht es keinen Sinn (bzw. führt nur zu unnötigen IdP-Fehlermeldungen) wenn alte Sessions bei einen Tomcat-Neustart weiter existieren. Deaktivieren Sie daher dieses Tomcat-Feature:​ +
- +
-/etc/tomcat8/context.xml +
- +
-<​code ​xml>+
 <?xml version="​1.0"​ encoding="​UTF-8"?>​ <?xml version="​1.0"​ encoding="​UTF-8"?>​
 <!-- <!--
Zeile 131: Zeile 112:
  
 </​Context>​ </​Context>​
 +</​file>​
 +
 +==== Java Standard Tag Library (JSTL) ====
 +=== Debian 10 ===
 +Unter Debian 10 kann die JSTL aus dem Debian-Repository installiert werden:
 +<code bash>
 +root@idp:~# apt install libtaglibs-standard-impl-java
 </​code>​ </​code>​
  
-==== Java Server Tag Library (JSTL) ====+Anschließend muss der Pfad zur .jar-Datei noch ''/​etc/​tomcat9/​catalina.properties''​ hinzugefügt werden:
  
-Als letztes ​muss noch die Java Server ​Tag Library heruntergeladen und in das Tomcat-Verzeichnis $CATALINA_BASE/​lib gelegt werden ​(unter ​Debian/Unbuntu ​ist das /​var/​lib/​tomcat8/​lib,​ bei anderen Distributionen ​bitte entsprechend ​anpassen):+<file xml /​etc/​tomcat9/​catalina.properties>​ 
 +common.loader="​${catalina.base}/​lib","​${catalina.base}/​lib/​*.jar","​${catalina.home}/​lib","​${catalina.home}/​lib/​*.jar","/​usr/​share/​java/​*.jar"​ 
 +</​file>​ 
 + 
 +=== Debian 8/9 === 
 +Unter Debian 8 und 9 muss die fehlerfreie Version der Java Standard ​Tag Library heruntergeladen und in das Tomcat-Verzeichnis $CATALINA_BASE/​lib gelegt werden. Unter Debian/Ubuntu ​ist das ''​/​var/​lib/​tomcat8/​lib''​, bei anderen Distributionen ​passen Sie den Pfad ggf. entsprechend ​an:
  
 <code bash> <code bash>
 root@idp:~# wget https://​build.shibboleth.net/​nexus/​service/​local/​repositories/​thirdparty/​content/​javax/​servlet/​jstl/​1.2/​jstl-1.2.jar \ root@idp:~# wget https://​build.shibboleth.net/​nexus/​service/​local/​repositories/​thirdparty/​content/​javax/​servlet/​jstl/​1.2/​jstl-1.2.jar \
              -O /​var/​lib/​tomcat8/​lib/​jstl-1.2.jar              -O /​var/​lib/​tomcat8/​lib/​jstl-1.2.jar
 +</​code>​
 +
 +=== OpenSUSE Leap 15.1 ===
 +
 +<code bash>
 +root@idp:~# zypper install jakarta-taglibs-standard
 </​code>​ </​code>​
  
Zeile 147: Zeile 146:
  
 <code bash> <code bash>
-root@idp:~# systemctl restart ​tomcat8+root@idp:~# systemctl restart ​tomcatX
 </​code>​ </​code>​
  
-Lassen ​Sie am besten ​beim restart des Tomcat ​in einem zweiten Fenster ​den Tomcat-Log ​mitlaufen ​um zu sehen ob es beim Start Probleme gibt:+Behalten ​Sie beim Neustart ​in einem zweiten Fenster ​das Tomcat-Log ​im Blick, ​um zu sehenob es beim Start Probleme gibt:
  
 <code bash> <code bash>
-root@idp:~# tail -f /var/log/tomcat8/catalina.out+root@idp:~# tail -f /var/log/tomcatX/catalina.DATUM.log 
 +# oder 
 +root@idp:~# journalctl -u tomcat -f
 </​code>​ </​code>​
  
-Sofern der Tomcat nicht fehlerfrei startet sollten Sie dem erst nachgehen bevor Sie mit dieser Anleitung weiter machen. Wenn im Log die Meldung "​Server startup in XXXXX ms" kommt ist der Tomcat betriebsbereit. Kontrollieren Sie dann ob die Port-Konfiguration erfolgreich war und der Tomcat nur noch an zwei Ports auf Localhost lauscht:+Sofern der Tomcat nicht fehlerfrei startet sollten Sie dem erst nachgehenbevor Sie mit dieser Anleitung weiter machen. Wenn im Log die Meldung "​Server startup in XXXXX ms" kommtist der Tomcat betriebsbereit. Kontrollieren Sie dannob die Port-Konfiguration erfolgreich war und der Tomcat nur noch an 1-2 Ports auf Localhost lauscht. Der **Port 8005** ist bei Debian/​Ubuntu mit Tomcat8 sowieso OpenSUSE mit Tomcat 9 noch standardmäßig offen, bei Debian/​Ubuntu mit Tomcat9 nicht mehr. Das ist okay so.
  
 <code bash> <code bash>
-root@idp:~# netstat -tlpen | grep java +root@idp:~# netstat -tlpn | grep java 
-tcp6       ​     0 127.0.0.1:​8005 ​         :::*                    LISTEN ​     ​118 ​       5994188 ​    2594/java +(tcp6     ​   0 127.0.0.1:​8005 ​   :::*    LISTEN ​  ​2594/java) 
-tcp6       ​     0 127.0.0.1:​8009 ​         :::*                    LISTEN ​     ​118 ​       5993661 ​    2594/java+ ​tcp6 ​    ​   0 127.0.0.1:​8009 ​   :::*    LISTEN ​  ​2594/java
 </​code>​ </​code>​
  
-==== Tomcat 7 ====+==== Konfiguration für das IdP-Servlet vorbereiten ​==== 
 +Um das IdP-Servlet im Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context:​
  
-Wir empfehlen Tomcat8, siehe obenFalls Sie noch Tomcat7 einsetzen, ist das folgende vielleicht hilfreich:+<file xml /​etc/​tomcatX/​Catalina/​localhost/​idp.xml> 
 +<Context docBase="/​opt/​shibboleth-idp/​war/​idp.war"​ 
 +         ​privileged="​true"​ 
 +         ​unpackWAR="​true"​ 
 +         ​antiResourceLocking="​false"​ 
 +         ​swallowOutput="​true"​ /> 
 +</​file>​ 
 + 
 +**Achtung:**  Unter CentOS 7 und Tomcat 7 muss ''​unpackWAR="​false"'' ​ gesetzt werden!
  
-Sollte es beim Neustart nach Installation und Konfiguration des IdP folgender Fehlermeldung kommen: \\ > "​Resource specification not allowed here for source level below 1.7" \\ … so muss die Tomcat-eigene web.xml angepasst werden. Siehe hierzu [[http://www.censore.blogspot.in/​2015/​04/​how-to-set-tomcat-7-source-level-to.html|http://​www.censore.blogspot.in/​2015/​04/​how-to-set-tomcat-7-source-level-to.html]] \\ +Solange nichts unter /opt/shibboleth ​liegt, ​startet der Tomcat jetzt nur mit Fehlern neu.
-Bei Debian/​Ubuntu ​liegt diese Datei unter /​etc/​tomcat7/​web.xmlbei SLES 12 unter /​usr/​share/​tomcat/​conf/​web.xml+
  
 Weiter geht es mit [[:​de:​shibidp3prepare-http|HTTP-Server]]. Weiter geht es mit [[:​de:​shibidp3prepare-http|HTTP-Server]].
  
  
  • Zuletzt geändert: vor 9 Monaten