Cette partie décrira le déploiement du portal en utilisant le couple Tomcat /MySQL dans l'optique de profiter pleinement de l'environnement de développement fournit par Liferay. En effet, bien qu'à posteriori bien pensé et trés flexible, le principe de fonctionnement est aussi complexe et difficile à prendre en main. Rassurez-vous, une fois le principe compris, les choses paraissent beaucoup plus claires.
Prérequis
Pour suivre le tutorial, il est nécessaire d'avoir :
- une base de données MySQL fonctionnelle.
- le J2SE SDK 1.4 installé.
- installer Ant
- une bonne bande passante. Au final vous devriez avoir à télécharger un peu plus de 100mo.
Tomcat sera téléchargé directement par Liferay.
Téléchargement
Pour commencer nous allons directement télécharger les sources du portail. Rendez vous à l'adresse suivante et téléchargez Liferay Portal 3.6.1 Source (3.6.1 étant la dernière version au moment de la rédaction de l'article). Décompressez ensuite l'archive dans un répertoire de votre choix.
unzip liferay-portal-ent-3.6.1-src.zipVous devez maintenant avoir un répertoire portal contenant les sources de Liferay Portal.
Configuration
L'environnement de développement sera crée à partir des sources du portail. Mais avant tout, il est nécessaire de procèder à quelques configurations.
Dans le répertoire portal de l'application se trouve 2 fichiers de configuration importants : release.properties et build.properties. Ces fichiers ne doivent pas être modifiés directement. Faîtes des copies de ces fichiers et renommez les respectivement release.${user.name}.properties et build.${user.name}.properties ou ${user.name} correspond à l'identifiant de l'utilisateur - niveau système d'exploitation - courant.
Éditez le fichier build.${user.name}.properties et assurez vous d'avoir les valeurs suivantes :
javac.compiler=modernjavac.fork=true
- javac.compiler
- correspond au compilateur utilisé lors du processus de build. Par défaut utilise jikes. Il s'agit d'un compilateur Java plus performant. Pour éviter de l'installer on utilise le compilateur modern qui correspond à celui du SDK 1.4.
- javac.fork
- précise si la compilation doit être lancer dans la même JVM ou dans une autre. Avec la valeur false j'ai eu souvent des exceptions du type java.lang.OutOfMemoryException. Préférez true dans ce cas.
Pour avoir plus d'informations au sujet de ces valeurs vous pouvez vous reportez à la page concernant la tâche Javac de Ant : http://ant.apache.org/manual/CoreTasks/j(..).
Ensuite vous devez initialiser les valeurs suivantes du fichier release.${user.name}.properties :
lp.eclipse.dirlp.ext.dir lp.source.dir
- lp.eclipse.dir
- correspond au chemin complet de votre workspace eclipse. Pas nécessaire mais intéressant si vous utilisez Eclipse .
- lp.ext.dir
- est le chemin complet où vous désirez avoir votre répertoire d'extensions.
- lp.source.dir
- est le chemin complet du répertoire des sources de Liferay, c'est à dire le répertoire courant.
Pour ma part je vous conseille les valeurs ci-dessous :
lp.eclipse.dir=/path/to/eclipselp.ext.dir=/path/to/eclipse/ext lp.source.dir=/path/to/eclipse/portal
Dans la suite de l'article je ferai référence aux répertoire extensions et source respectivement via ${lp.ext.dir} et ${lp.source.dir}.
Création de l'environnement de développement
Il ne nous reste plus qu'à lancer les tâches de compiler par l'intermédiare de Ant.
ant start build-ext
Une fois la tâche terminée, vous devriez avoir le répertoire d'extension crée à l'emplacement spécifié par lp.ext.dir.
Eclipse
Si vous utilisez Eclipse, lancez aussi la tâche :
ant build-eclipse
La tâche créera le workspace Eclipse avec la configuration correspondante. Vous pouvez maintenant lancer Eclipse en spécifiant comme workspace la valeur de la propriété lp.eclipse.dir.
Téléchargement de Tomcat
Placez vous dans le répertoire ${lp.ext.dir}/servers qui vient d'être crée et lancez la commande suivante
ant install-tomcat
Cette tâche va télécharger un Tomcat préconfiguré pour Liferay et le décompresser dans le répertoire ${lp.ext.dir}/servers/tomcat. Il est évidemment possible d'utiliser un Tomcat qui serait déjà installé sur votre machine. Cela demande une étape de configuration supplémentaire qui ne sera pas décrite ici. Vous pouvez trouver des informations à ce sujet sur le site de Liferay .
Si vous n'êtes pas administrateur de la machine sur laquelle vous travaillez, Tomcat refusera de se lancer car par défaut il se lance sur le port 80. Pour éviter ce désagrément, éditez cette partie du fichier ${lp.ext.dir}/servers/tomcat/conf/server.xml
...
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
...
Configuration de la base de données
Comme dis précédemment, MySQL sera utilisé pour la partie base de données. Il faut bien entendu passer par une étape de configuration.
- Démarrez votre serveur de base de données MySQL.
- Placez vous dans la répertoire ${lp.ext.dir}/sql/portal.
- Créez une base de donnée lportal.
- Lancez le script de création des tables.
mysql -u <user> lportal < portal-mysql.sql
Liferay se voulant indépendant du SGBD , nous avons besoin du driver JDBC pour MySQL. Fort heureusement Liferay est livré avec la plupart des librairies nécessaires dont celle de MySQL. Ces librairies se trouvent dans le répertoire ${lp.ext.dir}/lib.
Pour utiliser le driver MySQL copier le fichier ${lp.ext.dir}/lib/mysql.jar vers ${lp.ext.dir}/ext-lib/. À ce stade, je vous demande de faire cette manipulation sans vraiment comprendre ces implications. Le fonctionnement du répertoire d'extensions sera expliqué en détails plus tard.
Enfin, il est nécessaire de configurer le pool de connexions de Tomcat pour utiliser MySQL. Pour cela, éditez le fichier ${lp.ext.dir}/servers/tomcat/conf/Catalina/localhost/liferay.xml et configurez comme suit :
... <ResourceParams name="jdbc/LiferayPool"> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/lportal</value> </parameter> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value></value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> </ResourceParams>...
Deploiement et lancement du portail
La fin est proche! Vous aurez bientôt votre portail Liferay fonctionnel.
Placez vous dans le répertoire ${lp.ext.dir}. Comme précédemment dans le répertoire ${lp.source.dir}, vous devez faire des copies app.server.properties et build.properties et les nommer respectivement app.server.${user.name}.properties et build.${user.name}.properties. Éditez le fichier app.server.${user.name}.properties comme suit pour spécifier que vous utilisez Tomcat.
... #app.server.type=jboss-jetty #app.server.type=jboss-tomcat #app.server.type=jetty #app.server.type=jrun #app.server.type=oc4j #app.server.type=orion #app.server.type=pramati #app.server.type=resin #app.server.type=rexip #app.server.type=sunapp.server.type=tomcat
#app.server.type=weblogic #app.server.type=websphere...
Vous pouvez maintenant déployer le portail à partir de l'environnement d'extensions avec la commande
ant deploy
Placez vous maintenant dans le répertoire ${lp.ext.dir}/servers/tomcat/bin et lancez les commandes suivantes :
chmod +x *.sh./startup.sh
startup.bat
sous environnement Windows.
Le démarrage est relativement long. Sous Unix attendez vous à avoir des erreurs du type
Cannot create directory: /home/liferay/lucene/liferay.com
si vous n'êtes pas administrateur de la machine lorsque vous lancez Liferay. Il s'agit du répertoire où Lucene écrit ses index. Nous verrons plus tard comment modifier cette valeur.
Vous pouvez maintenant ouvrir votre navigateur Web à l'adresse http://localhost ou http://localhost:8080 en fonction du port que vous avez préciser dans le fichier server.xml. Connectez vous avec l'utilisateur test@liferay.com:test qui dispose par défaut des droits administrateurs.

Comments
Problème de déploiement
Excellent article
merci!
Post new comment