Entorn de desenvolupament LifeRay – MySQL sobre Lubuntu

LifeRay
Aquest mes de juny m’ha portat una interessant novetat: sembla que professionalment m’hauré de dedicar al manteniment d’un grup de portals muntats amb LifeRay, un sistema de gestió de continguts basat en tecnologia java.

Sempre que és possible m’agrada disposar d’un entorn de proves així que, dit i fet, he muntat el meu propi entorn al sobretaula Linux, per a poder fer  proves i experiments amb LifeRay sense riscos. Aprofitant l’avinentesa, escric aquest article que també em serveix per “documentar” el procés.

Programari emprat
He muntat l’entorn LifeRay sobre una distribució Lubuntu 12.10. Per proporcionar la base de dades he fet servir una MySQL 5.0, però no la versió dels repositoris d’Ubuntu, si no la que ve incorporada al XAMPP, d’Apache Friends, un paquet que incorpora un stack complet de serviddor MySQL, Servidor Web Apache i PHP. Per què he triat aquesta versió? La resposta és prosaica: essencialment, perquè ja el tenia instal·lat 😉

El primer de tot ha estat descarregar de la web de LifeRay el programari. A la feina farem servir la versió Enterprise de Liferay, amb llicència comercial, però també es disposa d’una versió LifeRay Community. La versió community pot ser útil precisament per a desenvolupadors o per a desplegaments de petits llocs.

En aquest enllaç podeu trobar les diferències entre les versións enterprise i community de LifeRay.

Val a dir que es disposa de força documentació al lloc de LifeRay. Hi ha disponible documentació prou interessant i útil servida, és d’agraïr, sota llicència Creative Commons. Per exemple,la User Guide.

La versió community de LifeRay va amb una llicència lliure. Descarrego, doncs , la versió community que va empaquetada amb Tomcat. També es poden trobar a la web altres  paquets de LIferay amb JBoss, Geronimo, Glassfish… però la de Tomcat té un avantage principal:El LifeRay IDE per a desenvolupar portlets i components per al portal és un Eclipse al que s’afegeix un plugin. El plugin incorpora el control del servidor Tomcat on es munta LifeRay. Per a d’altres tipus de servidors cal descarregar-se un plugin addicional. Trio la versió Tomcat per simplificar la instal·lació.

El LifeRay IDE també em demanará disposar del paquet de documentació javadoc, del codi font -útil per a depuració- i del plugins SDK, és dir, del framework java necessari per a desenvolupar portlets, templates o themes per a LifeRay.

En el meu cas he descarregat, doncs, aquests quatre paquets:

El plugins SDK: liferay-plugins-sdk-6.2-ce-ga2-20140319114139101.zip
El Javadoc: liferay-portal-doc-6.2-ce-ga2-20140321115737138.zip
El codi font: liferay-portal-src-6.2-ce-ga2-20140319114139101.zip
El paquet LifeRay-Tomcat: liferay-portal-tomcat-6.2-ce-ga2-20140319114139101.zip

Els passos a seguir són directes. No m’invento res, és el que està descrit a aquest enllaç de la Wiki de LifeRay.

1. Descomprimeixo el paquet de LifeRay-Tomcat i obtinc un servidor Apache Tomcat 7.0 amb el .war del CMS desplegat.

2. Engego el servidor anant a la carpeta bin i executant startup.sh

3. Per a poder controlar l’arrencada, a un terminal faig

tail -f catalina.out 

de la carpeta logs del Tomcat.

Base de dades MySQL
L’arrencada inicial resulta força lenta, si més no a la màquina que estic fent servir.

4. Aprofito per engegar el servidor de BD, en el meu cas, que faig servir XAMPP, ho faig amb un

sudo /opt/lampp/lampp startmysql

5. Creo la base de dades que farà servir LifeRay. lportal és el nom que fa servir per defecte. Suposant que tinc al PATH la ruta /opt/lampp/bin, aleshores faig:

mysql --user=root

i un cop dins,

create database lportal;

Finalment, quan el servidor ha arrencat, s’obre el Firefox apuntant a la pàgina http://localhost:8080

6. En aquesta pàgina hi configuro el compte inicial

2014-06-08-171247_1024x744_scrot

7. En aquest punt cal indicar que vull fer servir la base de dades MySQL. Faig click a Change i obtinc

2014-06-08-171302_1024x744_scrot

Indico que és una BD de tipus MySQL. El user per defecte de la BD de XAMPP és root, i sense password.
Finalment, procedeix a la instal·lació.

Al portatil de la feina la instal·lació ha portat el seu temps, però s’ha completat. Un cop els objectes de la BD han estat creats i la instal·lació completada el FireFox m’ha mostrat la pàgina d’instal·lació completada amb èxit. A continuació m’ha mostrat el formulari de d’acceptació de les condicions d’us, m’ha demanat que actualitzés el password i m’ha demanat la pregunta de seguretat per si se m’oblida el password.

En canvi, a casa, el procés m’ha donat alguns problemes de time out. Em temo que em caldrà actualitzar l’equip. La tàctica que m’ha funcionat ha estat, simplement, no carregar les dades de prova, ignorar el time out i esperar a que segons el log tomcat (tail -f catalina.out) s’hagués completat el procés.

Pantalla de benvinguda
Quan ha estat llest he obert manualment http://localhost:8080 i m’he trobat amb la pàgina de login. Ara la tinc així: he deixat només el portlet de sign-in

2014-06-08-204530_1024x744_scrot

Coses ràpides que es poden fer. Afegir-hi portlets. Per exemple, li he afegit el portlet del generador de contrasenyes. Click a afegir. Triar el portlet i col·locar-lo. És similar a com s’editen pàgines amb el SharePoint de MS. D’aquests components encastables a MS en diuen WebParts, aquí es fa servir el nom (més clàssic i més java-ish) de portlet.

2014-06-08-205223_1024x744_scrot

Això ens dona una idea de quina mena de tasques podem esperar trobar:

Desenvolupament, podrem crear i modificar llocs, pàgines, plantilles de pàgina, temes, estils i, per descomptat, portlets. Algunes d’aquestes activitats es desenvoluparan des de la mateixa interfície web de LifeRay, i d’altres, des del LifeRay IDE. Es podria arribar a donar el cas, extraordinari, d’intervenir directament sobre la base de dades.

Administració. Trobarem tasques com donar d’alta i baixa usuaris i grups, modificar-ne els permisos d’accés a pàgines i llocs.

Interfície amb altres sistemes. Segurament on es troba la major dificultat. Les grans corporacions tenen sistemes molt diversos i necessitats d’interconnexió variades. No és gens estrany que l’autenticació i autorització dels usuaris i els grups a diversos sistemes i entorns estigui gestionada des de, sovint, més d’un sistema. El single-sign-on és un dels més grans maldecaps amb que es pot trobar el departament TIC. No es tant una tasca de LifeRay com una tasca genèrica, a mig camí entre el desenvolupament, l’administració i la gestió.

Continguts. Queda en mans dels usuaris. Els usuaris, tanmateix, poden demanar suport i assistència a l’hora de pujar contingut al CMS.

Son les mateixes tasques que hom es troba amb altres CMS. Varia la tecnologia, però les tasques son similars.

LifeRay IDE
Per a poder fer els desenvolupaments descrits es pot fer servir el LifeRay IDE. Com he dit abans, es tracta d’un plugin per a Eclipse que permet engegar i aturar el servidor de LifeRay, fer-ne desplegament i desenvolupar portlets, templates, themes, hooks…

La versió mínima d’Eclipse és la 3.7 (Indigo). Des de la web de LifeRay es pot descarregar versions d’Eclipse amb el plugin pre-instal·lat. La darrera versió que es pot descarregar del lloc LifeRay és la Kepler.

A la pàgina de descàrrega es pot obtenir tant l’URL per a instal·lació del plugin des de l’eclipse, com el paquet zip amb plugin propiament dit, o la versió del Kepler amb el plugin pre-instal.lat:

2014-06-08-222821_1024x744_scrot

En engegar el Liferay IDE puc observar que es tracta d’un Eclipse adaptat.

Java EE - Eclipse _002

A destacar aquests tres botons:

Selecció_001

Els botons anteriors permeten accedir als wizards dels diferents projectes i desenvolupaments que és poden fer amb el LifeRay IDE.

Selecció_003

Selecció_007

I també configurar l’IDE per accedir a servidors LifeRay.

Selecció_008

Faré això últim:

Configurar LifeRay IDE

És molt senzill:

Al següent vídeo mostro com establir el Plugin SDK i, a continuació, com configurar un nou servidor de LifeRay. A tenir en compte: he deixat els zips de docs, src i liferay-tomcat bundle dins de la carpeta home de la emva instal·lació de Liferay, i també dins d’aquesta carpeta he descomprimit el zip de plugins. Això és necessari per a configurar, primer de tot, el plugins SDK, i a continuació, el nou server.

Des d’aquest moment ja puc engegar o aturar el meu servidor de LieRay des de l’Eclipse:

2014-06-09-010051_1024x744_scrot

Per a un proper post, la creació d’un porlet que pugui posar a les pàgines.

Com instal·lar XAMPP a Ubuntu.

A l’hora de fer presentacions i demos d’aplicacions web, pot ser molt útil disposar d’una versió de la demo en un servidor web en localhost, potser en una clau usb.

També pot ser molt útil un servidor web d’aquest tipus a l’hora de preparar sessions de formació.

És possible trobar per Internet diverses distribucions que d’aquest tipus que combinen Apache amb  MySQL i PHP, tant sobre Linux (LAMP), com sobre Windows (WAMP), per exemple XAMPP o MoWeS Portable.

MoWeS Portable empaqueta, a més de la plataforma AMP, altres aplicacions que utilitzen aquesta infraestructura, com Joomla! o Drupal. Ara bé, MoWeS Portable només està disponible per a Windows.

XAMPP, en canvi, s’ofereix per a Linux i Windows.

En el post d’avuí el que faig és instal·lar el XAMPP a un netbook Linux.

No cal dir que la plataforma AMP es pot instal·lar des del Centre de Programari de l’Ubuntu. Però la instal·lació de XAMPP és encara més senzilla.

Dit i fet. El primer pas és descarregar-se el paquet d’instal·lació. El  puc trobar en aquesta adreça:  http://sourceforge.net/projects/xampp/files/BETAS/xampp-linux-1.7.7.tar.gz/download. Són uns 77MB.

Aquesta versió incorpora:   Apache, MySQL, PHP amb PEAR, Perl, ProFTPD, phpMyAdmin, OpenSSL, GD, Freetype2, libjpeg, libpng, gdbm, zlib, expat, Sablotron, libxml, Ming, Webalizer, pdf class, ncurses, mod_perl, FreeTDS, gettext, mcrypt, mhash, eAccelerator, SQLite i IMAP C-Client.

En particular Apache 2.2.21, MySQL 5.5.16, PHP 5.3.8, i phpMyAdmin 3.4.5.

Per instal·lar  n’hi ha prou amb desempaquetar el tar.gz. Cal tenir en compte que als fitxers d’instal·lació s’assumeix que la home del XAMPP serà /opt/lampp. Això NO vol dir que només es pugui instal·lar en aquesta carpeta. Això l’únic que vol dir és que caldrà que /opt/lampp sigui la “home” del XAMPP i això es podrà aconseguir amb un enllaç simbòlic des de /opt/lampp al directori d’instal·lació que triï.

Si la carpeta de destinació del XAMPP es troba en una clau usb caldrà que aquesta clau estigui formatada amb un sistema de fitxers que permeti els enllaços simbòlics, per exemple  ext2,ext3 o ext4.

A l’hora de fer l’enllaç simbòlic caldrà tenir en compte el punt de muntatge del dispositiu. Per exemple, al meu netbook amb Ubuntu 11.04, el punt de muntatge és /media.

Per a poder instal·lar correctament el XAMPP caldran, a més, permisos de root. I també per a posar en marxa i aturar els diversos components de la distribució.

Tenint en compte tot l’anterior, instal·lo el XAMPP a la meva carpeta home, on he deixat el tar.gz:

sudo tar xvfz xampp-linux-1.7.7.tar.gz -C .

Amb la ordre anterior es crea una carpeta lampp amb els dversos components del XAMPP.

Ara creo l’enllaç simbòlic:

sudo ln -s /home/albert/lampp /opt/lampp

I engego per primer cop el servidor. Aquesta primera arrencada acaba d’instal·lar i configurar els components.

albert@athena:~$ sudo /opt/lampp/lampp start
Starting XAMPP for Linux 1.7.7…
XAMPP: Starting Apache with SSL (and PHP5)…
XAMPP: Starting MySQL…
XAMPP: Starting ProFTPD…
XAMPP for Linux started.
albert@athena:~$ 

I per revisar la nova instal·lació en tinc prou amb obrir un navegador i apuntar-lo al localhost:

El directori arrel del servidor web es troba a /opt/lampp/htdocs (en el meu cas, mercès a l’enllaç simbòlic, és /home/albert/lampp/htdocs).

Per aturar el XAMPP puc fer:

albert@athena:~$ sudo /opt/lampp/lampp stop
Stopping XAMPP for Linux 1.7.7…
XAMPP: Stopping Apache with SSL…
XAMPP: Stopping MySQL…
XAMPP: Stopping ProFTPD…
XAMPP stopped.
albert@athena:~$ 

I per a eliminar la instal·lació sense deixar rastres, amb el XAMPP aturat, n’hi ha prou amb fer:
sudo rm -r lampp
És possible engegar i aturar individualment els diversos components del XAMPP. Examinant el fitxer $HOME/lampp/lampp es poden  trobar les diverses opcions disponibles. La forma d’invocar-les, en general, és: 
sudo /opt/lampp/lampp opció