Alfresco sous Tomcat

De EjnTricks
Révision de 2 janvier 2014 à 13:01 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Dans le cadre de cette installation, l'emplacement de ${catalina.home} est /usr/share/tomcat6.

Hand-icon.png Votre avis

Current user rating: 67/100 (3 votes)

 You need to enable JavaScript to vote


Mise en place de l'environnement

Au niveau de la procédure officielle, il est indiqué la nécessité de modifier le fichier <TOMCAT-HOME>/conf/catalina.properties en modifiant les emplacements du classloader partagé comme ceci: shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar

Pour cette installation, les librairies tierces de Alfresco seront plutôt déployées dans un répertoire spécifique pour alfresco, et pour l'instance de Tomcat, soit ${catalina.home}/shared/alfresco. Deux sous répertoires sont créés classes et libs. Le fichier catalina.properties se situe au niveau de l'instance de Tomcat, soit dans le répertoire /var/lib/tomcat6/conf.

Il faut créer ces répertoires dans un premier temps, et le propriétaire de ceux ci est positionné avec le compte exécutant l'instance de Tomcat.

sudo mkdir /usr/share/tomcat6/shared/alfresco
sudo mkdir /usr/share/tomcat6/shared/alfresco/classes
sudo mkdir /usr/share/tomcat6/shared/alfresco/libs
sudo chown -R tomcat6:tomcat6 /usr/share/tomcat6/shared/alfresco

L'arborescence obtenue est donc la suivante:

+--- alfresco
|   +--- classes
|   |   +--- alfresco-global.properties
|   |   +--- alfresco
|   |   |   +--- extension
|   |   |   |   +--- ext-log4j.properties
|   +--- libs
|   |   +--- mysql-connector-java-5.1.13-bin.jar

A noter, que cette arborescence présente le driver MySql.


Icon-Configuration-Settings.png Configuration

Il faut ensuite référencer le nouveau répertoire share/classes dans le classpath du serveur, en modifiant le fichier Le fichier catalina.properties dans le répertoire /var/lib/tomcat6/conf.

#
# List of comma-separated paths defining the contents of the "shared"
# classloader. Prefixes should be used to define what is the repository type.
# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
# the "common" loader will be used as Catalina's "shared" loader.
# Examples:
#     "foo": Add this folder as a class repository
#     "foo/*.jar": Add all the JARs of the specified folder as class
#                  repositories
#     "foo/bar.jar": Add bar.jar as a class repository
# Please note that for single jars, e.g. bar.jar, you need the URL form
# starting with file:.
#shared.loader=${catalina.home}/shared/classes,${catalina.home}/shared/*.jar,/var/lib/tomcat6/shared/classes,/var/lib/tomcat6/shared/*.jar
shared.loader=${catalina.home}/shared/classes,${catalina.home}/shared/*.jar,/var/lib/tomcat6/shared/classes,/var/lib/tomcat6/shared/*.jar,
${catalina.home}/shared/alfresco/classes,${catalina.home}/shared/alfresco/libs/*.jar


L'installation de Alfresco ayant pour cible une base de données MySql, il faut copier le driver dans le classpath de l'instance. Celui ci est présent dans le package communautaire sous le répertoire /web-server/lib. Après copie, le propriétaire de celui est modifié, comme lors de la création des répertoires:

sudo cp mysql-connector-java-5.1.13-bin.jar /usr/share/tomcat6/shared/alfresco/libs/
sudo chown tomcat6:tomcat6 /usr/share/tomcat6/shared/alfresco/libs/mysql-connector-java-5.1.13-bin.jar


L'ultime configuration de Tomcat concerne l'encoding pour le décodage des URLs qui doit être positionné à UTF-8. Il faut éditer le fichier <TOMCAT_HOME>/conf/server.xml et s'assurer que la configuration de l'attribut URIEncoding du connecteur sur le port 8080 est bien la suivante:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8"
               redirectPort="8443" />


Process-Icon.png Déploiement application

Dans le cadre d'une installation sous Tomcat, il suffit de copier le fichier alfresco.war, sous le répertoire /web-server/webapps pour le package communautaire, dans le répertoire de déploiement de Tomcat, dans ce cas /var/lib/tomcat6/webapps/. Pour éviter toute erreur de manipulation, le serveur est arrêté avant copie.

sudo service tomcat6 stop
sudo cp alfresco.war /var/lib/tomcat6/webapps/
sudo chown tomcat6:tomcat6 /var/lib/tomcat6/webapps/alfresco.war

Le service Tomcat ne sera redémarré qu'après avoir configuré la connexion à la base de données.