navigation
Home
admin
|
Tomcat
October 18th, 2016
|
| Table des matières |  |
- Démarrage
- Compilation pour Solaris (2007)
- Options de démarrage
- Monitoring (05/2011)
- Installation sur Mac OS X
- Installation sur Debian via apt-get
- Installation sur Debian via téléchargement du zip ou du tar gz (05/2011)
- Installation sur Centos via téléchargement du zip ou du tar gz (08/2016)
- Messages d'erreur (07/2011)
- Déploiement d'une application et redirection AJP
| Démarrage |  |
Pour éviter des problèmes de cache, lors de la relance du tomcat
il peut être nécessaire de supprimer le répertoire tomcat/work/Catalina
| Compilation pour Solaris (2007) |  |
regarder BUILDING.txt de tomcat
modifier path pour aller ds repertoire jakarta-ant/bin
pour java xml pack :
setenv JAVA_XML_PACK_HOME /export/lucke
setenv JAXM_HOME $JAVA_XML_PACK_HOME/java_xml_pack-summer-02_01/jaxm-1.1_01
setenv JAXP_HOME $JAVA_XML_PACK_HOME/java_xml_pack-summer-02_01/jaxp-1.2_01
setenv JAXR_HOME $JAVA_XML_PACK_HOME/java_xml_pack-summer-02_01/jaxr-1.0_02
setenv JAXRPC_HOME $JAVA_XML_PACK_HOME/java_xml_pack-summer-02_01/jaxrpc-1.0_01
|
Liaison Mysql (conf jdbc mysql) :
ds conf/Catalina/localhost/
jar mysql :
common/lib/mysql-connector-java-5.0.8-bin.jar
| Installation sur Mac OS X |  |
dezipper apache-tomcat-5.5.27.zip dans /export
chmod 755 /export/apache-tomcat-5.5.27/bin
rajouter au début de startup.sh et de catalina.sh :
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home
export CATALINA_HOME=/export/apache-tomcat-5.5.27
et lancer startup.sh
de l'aide http://developer.apple.com/internet/java/tomcat1.html
| Installation sur Debian via apt-get |  |
>apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps
Modifier le fichier tomcat-users.xml + ses droits :
cat tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="admin"/>
<role rolename="tomcat"/>
<role rolename="manager"/>
<role rolename="role1"/>
<user username="admin" password="monpass" roles="tomcat,admin,manager"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>
|
Note 1 : le webapps est /var/lib/tomcat/webapps
Note 2 : l'accès à l'interface se fait via l'adresse http://machine.domaine:8180
Note 3 : voir également "tomcat" de la section privée
| Installation sur Debian via téléchargement du zip ou du tar gz (05/2011) |  |
Installation de jdk
Installation de apache-tomcat-6.0.29
- récupération du fichier KEYS
- récupération du fichier .asc
gpg --verify apache-tomcat-6.0.29.asc apache-tomcat-6.0.29.tar.gz
gpg: Signature faite le [...]
gpg: Bonne signature de [...]
gpg: ATTENTION: Cette clé n'est pas certifiée avec une signature de confiance !
gpg: Rien ne dit que la signature appartient à son propriétaire.
Empreinte de clé principale: [...] |
- modifs ds conf de tomcat-users.xml et de server.xml
- modifs ds bin de catalina.sh
- creation de l'utilisateur tomcat
- droits de l'arbo tomcat à l'utilisateur tomcat
Lancement
| Installation sur Centos via téléchargement du zip ou du tar gz (08/2016) |  |
modifs ds conf de tomcat-users.xml
Ne pas utiliser les comptes par défaut
Rajouter le role si on veut utiliser l'interface Web d'admin
modifs ds bin de catalina.sh : JAVA_HOME, JRE_HOME
création de l'utilisateur tomcat
droits de l'arbo tomcat à l'utilisateur tomcat
Création du script de lancement :
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.7.0_60
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/share/apache-tomcat-8.0.8
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0 |
Source : http://www.davidghedini.com/pg/entry/install_tomcat_8_on_centos
chkconfig --add tomcat8
chkconfig --level 234 tomcat8 on
chkconfig --list tomcat8
service tomcat8 start
Autoriser l'accès à l'interface d'admin :
création du fichier conf/Catalina/localhost/manager.xml :
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
|
Note that the allow attribute of the Valve element is a regular expression that matches the IP address of the connecting host. Other Valve classes cater for other rules (e.g. RemoteHostValve for matching host names).
Source : http://stackoverflow.com/questions/36703856/access-tomcat-manager-app-from-different-host
| Options de démarrage relatives à la mémoire (2010) |  |
http://www.developpez.net/forums/d799005/java/serveurs-conteneurs-java-ee/jboss/permgen-space-outofmemory/
permGen est une partie de la JVM dans laquelle les classes générées par des mécanismes de déploiement à chaud y sont stockés, lorsque elle est saturée l'erreur permgen space outOfMemory est généré.
20 Mo sont utilisés par le CAS. Par défaut, la taille est de 64Mo => je n'alloue rien de plus
Cependant, pour aller plus vite, je les alloue dès le lancement :
-XX:PermSize=64m -XX:MaxPermSize=64m
dans catalina.sh :
CATALINA_OPTS='-server -Xms128m -Xmx256m -XX:PermSize=64m -XX:MaxPermSize=64m'
---------------
Note d'Emeric :
-server (la détection dépend des caractéristiques physiques de la machine, cpu et mémoire ; forcer le paramétrage évite des surprises d'être en -client ; -server est un peu plus lent au démarrage et réserve la mémoire dont il aura besoin).
-Xms -Xmx (mémoire d'exécution initiale et max)
Plus d'infos :
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
Tu peux tester la "catégorie" détectée par défaut de la machine (Client or Server VM) avec : java -version
| Monitoring (2010) |  |
- L'utilitaire jmap est pratique pour jeter un coup d'oeil sur l'usage mémoire :
jmap -heap <pid-java>
ps -eo pmem,pid,command | sort -r |
- Compter les threads :
| Messages d'erreur (07/2011) |  |
Apache-tomcat-6.0.32
Lors de l'arrêt :
GRAVE: La suspension du gestionnaire de protocole a échouée
java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:218)
at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:492)
at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:288)
at org.apache.jk.server.JkMain.pause(JkMain.java:726)
at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
at org.apache.catalina.connector.Connector.pause(Connector.java:1037)
at org.apache.catalina.core.StandardService.stop(StandardService.java:578)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:788)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:662)
at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
7 juil. 2011 18:51:26 org.apache.catalina.core.StandardService stop
INFO: Arrêt du service Catalina
|
Surement du à un problème de config réseau :
$HOSTNAME est différent du nom dns
Source : http://powerntt.iteye.com/blog/788546
| Déploiement d'une application et redirection AJP |  |
Objectif : déployer une application sans écraser les pages d'administration tomcat (accès au tomcat manager) et utiliser une redirection AJP pour accéder à cette application.
mots clés : redirection AJP, service, context path
Déploiement de l'appli
je déploie une application nommée plami :
cp plami.war /usr/local/apache-tomcat-6.0.37/webapps |
Je relance le serveur tomcat. L'application a été déployée automatique dans webapps/plami.
Note : j'ai ensuite désactivé cette option pour plus de sécurité.
more conf/server.xml
[...]
<!--
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
-->
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
[...] |
L'appli est maintenant accessible à l'adresse http://mon-serveur:8080/plami
Je voudrais qu'elle soit accessible sans le "/plami". Cependant je ne veux pas perdre le ROOT (i.e. les pages d'administration tomcat). Je vais donc créer un nouveau service.
Création d'un service
<Service name="Catalina8081">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000" />
<Connector port="8009" protocol="AJP\1.3" redirectPort="8081" />
<Engine name="Catalina8081" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="plami"/>
</Host>
</Engine>
</Service> |
A noter, le connecteur AJP à l'écoute sur le port 8009. Toutes les entrées seront redirigées vers le port 8081.
Source : http://tomcat.apache.org/tomcat-5.5-doc/config/context.html
L'appli est maintenant accessible aux adresses
http://mon-serveur:8080/plami
http://mon-serveur:8081
Redirection AJP
On configure maintenant le apache pour qu'un virtuahost redirige les requêtes vers le port 8081 du tomcat.
(qques infos ici aussi : http://perso.univ-lemans.fr/~brichard/secu/?doc=Cas#ajp )
cat /etc/apache2/sites-enabled/plami
[...]
ServerName plami
[...]
ProxyPass / ajp://localhost:8009/
[...] |
L'appli est maintenant accessible aux adresses
http://mon-serveur:8080/plami
http://mon-serveur:8081
http://plami
|
|
Dernières modifs
|
|---|
VNC (November 22nd, 2020) Editeurs (October 20th, 2016) Awk (October 18th, 2016) Claws Mail (October 18th, 2016) Cups (October 18th, 2016) Gimp (October 18th, 2016) Git (October 18th, 2016) |
Contact
|
|---|
Pour m'envoyer un mail, Pour me laisser un commentaire :richard.brunooo chez gmail.com |  |
|
|