Le but est d’installer le portail Liferay sous un système GNU/Linux. La distribution retenue est une Ubuntu Server 8.10 mais la parocédure suivante devrait être valable pour d’autres systèmes Linux et BSD aux locations des fichiers de configurations près.
Installation du système d’exploitation GNU/Linux
Je suis partie sur une installation standard en mode texte. Les modules serveurs à installer sont les suivants:
- Serveur SSH (pour l’administration à distance)
- Java (JRE) 1.6 ou supérieure (installé par défaut sous Ubuntu)
Une fois le serveur installé, on peut entrer dans le vif du sujet avec l’installation de Liferay. Pour la suite de ce billet, je me suis basé sur le livre “Portal Administrator’s Guide” disponible au format PDF en anglais PDF (ici pour la version 5.1).
Installation de Liferay
On commence par récupérer la dernière version de Liferay sur le site officiel. Dans notre cas, il faut récupérer l’archive nommé “Bundled with Tomcat 6.0″. Cette version inclue Liferay + Apache + Tomcat 6.0 + BD interne.
cd /usr/src
wget http://heanet.dl.sourceforge.net/sourceforge/lportal/liferay-portal-tomcat-6.0-5.1.2.zip
cd /usr/local
unzip /usr/src/liferay-portal-tomcat-6.0-5.1.2.zip
L’ensemble des fichiers se trouvent donc dans le répertoire /usr/local/liferay-portal-tomcat-6.0-5.1.2. Nous allons créer un lien symbolique vers le répertoire /usr/local/liferay afin de simplifier les choses et facilité les prochaines migrations.
ln -s liferay-portal-tomcat-6.0-5.1.2 liferay
Premier lancement de Liferay
On peut alors lancer Liferay, pour cela on utilise la séquence suivante:
cd /usr/local/liferay
./bin/startup.sh & tail -f ./logs/catalina.out
Si tout est ok, vous devriez voir s’afficher la page (http://adresseipduserveur:8080):
Vous pouvez utiliser le login/password suivant:
Login: [email protected]
Password: test
Pour une rapide introduction des fonctions de Liferay, vous pouvez lire ce billet.
Si vous souhaitez arrêter Liferay, il faut utiliser les commandes suivantes:
cd /usr/local/liferay
./bin/shutdown.sh
Automatiser le lancement de Liferay
Si vous souhaitez lancer Liferay sur le port découte Web standard (TCP port 80), il faut d’abord être sûr qu’un autre serveur Web ne tourne pas. Par exemple pour empêcher Apache de se lancer au démarrage d’un système GNU/Linux Ubuntu, il faut saisir les commandes:
apache2ctl stop
update-rc.d -f apache2 remove
update-rc.d apache2 stop 80 0 1 2 3 4 5 6 .
Configurer Liferay pour écouter sur le port TCP/80. Il faut éditer le fichier /usr/local/liferay/conf/server.xml et changer toutes les occurences 8080 par 80.
Plusieurs solutions sont alors possibles pour automatiser le lancement du bundle Liferay lors du démarrage du système GNU/Linux Ubuntu. Personnellement, je modifie le fichier /etc/rc.local pour lui ajouter la ligne suivante:
export JAVA_HOME=/usr/lib/jvm/default-java & PATH=$JAVA_HOME/bin:$PATH & cd /usr/local/liferay/bin & ./startup.sh
Il ne reste plus qu’a relancer notre serveur Liferay:
./bin/shutdown.sh
./bin/startup.sh
Puis à vérifier que le serveur Tomcat répond bien aux requêtes HTTP sur le port 80: http://adresseipduserveur
Sécuriser les connections
A ce stade de l’installation, vous devriez disposer d’un serveur Liferay opérationnel répondant aux requêtes HTTP arrivant sur son port TCP/80. C’est déjà bien mais on peut mieux faire. Par exemple en sécurisant la connexion client serveur dans un tunnel SSL (HTTPs).
Pour cela, nous allons configurer le serveur Tomcat pour répondre seulement aux requêtes HTTPs et rediriger les requêtes HTTP vers HTTPs. Pour cet exemple, nous utiliserons un certificat que nous allons généré nous même (le navigateur Web va sûrement râler la première fois que vous allez accéder à votre portail), pour un serveur en production, il faudra utiliser un certificat généré par une autorité compétente (par exemple chez VeriSign).
Génération de la clés SSL
Nous allons générer une clés qui sera stocké dans le répertoire /usr/local/liferay/webapps/keystore.key:
/usr/lib/jvm/default-java/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/liferay/webapps/keystore.key
Je vous laisse répondre aux questions que keytool va vous poser (bien noter votremotdepasse).
Configuration du serveur Tomcat 6 pour la prise en compte du SSL
Il faut éditer le fichier ./conf/server.xml et remplacer la bonne section SSL (qui doit être commenté par défaut) par:
<Connector port=”443″
maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
enableLookups=”false” disableUploadTimeout=”true”
acceptCount=”100″ debug=”0″ scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS”
keystoreFile=”/usr/local/liferay/webapps/keystore.key”
keystorePass=”votremotdepasse” />
Configuration du serveur Liferay pour la prise en compte du SSL
On ajoute la section suivante au fichier ./conf/web.xml (avant le tag </web-app>):
<security-constraint>
<web-resource-collection>
<web-resource-name>securedapp</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Il ne reste plus qu’a relancer notre serveur Liferay:
./bin/shutdown.sh
./bin/startup.sh
Puis à vérifier que le serveur Tomcat répond bien aux requêtes HTTPs: https://adresseipduserveur
Conclusion
Votre portail Liferay est maintenant opérationnel, il ne reste plus qu’a le configurer pour qu’il répondre à vos besoins. Pour celà, je vous laisse lire ce PDF (en Anglais), qui est le “quick start guide” du protail.