ECM

Come migrare un’installazione Liferay su un altro server

Di recente ho avuto la necessità di migrare un’installazione Liferay da una virtual machine locale Windows ad una virtual machine sul server di sviluppo Esxi (Linux).

liferay

In questo articolo desidero condividere tutti gli step che ho eseguito.

Passo 1. Copia bundle Tomcat

L’installazione sulla virtual machine locale del bundle tomcat è stata realizzata con il Liferay Development Configurator, un’interessante utility che consente la configurazione rapida di un ambiente di sviluppo mediante il lancio di un’applicazione standalone Java

 java -jar LiferayDevelopmentConfigurator.jar --project nomeProgetto --version 6.2.3

Per maggiori informazioni in merito vi consiglio di leggere questo articolo introduttivo di Marco Napolitano e/o visitare la pagina del progetto su SourceForge.

Riprendendo il suo file di configurazione (configuration.properties nella cartella conf sotto la root del programma)

...
# Liferay CE supported versions
# Add your own version number (if needed) and create the relative properties below
# using version number without periods, e.g. 6.2.3 -> 623
liferay.supported.versions=6.1.1,6.1.2,6.2.0,6.2.1,6.2.2,6.2.3

# This is the folder where to put every single downloaded ZIP
liferay.repository.folder=C:/Users/Administrator/Downloads/Liferay/ZIP

# This is the folder where to create development environment
liferay.working.folder=C:/Users/Administrator/Downloads/Liferay

# Set to true if you always want to download files overwriting existing ones
overwrite.existing.files=false

# Set to true if you want to unzip the portal source ZIP file
unzip.portal.source=true
...

ho potuto vedere la path del bundle ed ho copiato l’intera cartella al path

 C:\Users\Administrator\Downloads\Liferay\6.2.3CE\nomeProgetto\liferay-portal-6.2-ce-ga4 

sotto la

 /nodo1/nomeProgetto/ 

del mio server di sviluppo.

Passo 2. Copia cartella data

Nella cartella data, presente nella stessa cartella di tomcat, sono riportati i file di indice e gli allegati e pertanto la stessa va copiata nel relativo medesimo percorso sul server.

Nel mio caso, trattandosi di un ambiente di sviluppo, la cartella è già stata copiata al passo uno ma in produzione potremmo avere situazioni differenti (penso a NAS montati nel server e/o a configurazioni in cluster) e pertanto dobbiamo prestare attenzione a questo passaggio.

Passo 3. Backup & Restore database

Il database sotteso era MySQL.

Pertanto la sequenza di azioni è stata:

Sulla virtual machine di partenza

#backup database
C:\Users\Administrator\Downloads\software\mysql-5.1.73-winx64\bin>mysqldump -u my_user -p my_db > filedump.sql

Sulla virtual machine di destinazione

#creazione del db
mysql> CREATE DATABASE new_db ;
#creazione dell’utente
mysql> GRANT SELECT ON new_db.* TO newuser@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
#restore database
[root@devsrv ~]$ mysql -u newuser -p new_db < filedump.sql

Passo 4. Copia del portal-ext.properties

Nel portal-ext sono riportati tutti gli hook al core del portale. Modificando le properties di questo file è possibile ottenere comportamenti diversi del portale che pertanto vanno interamente riprodotti in fase di migrazione. Anche questo file è stato copiato al passo uno in quanto stiamo utilizzando il bundle.

Passo 5. Copia del portal-setup-wizard.properties

In questo file va eventualmente rivista la connessione al database principale di Liferay (se non impostata nel portal-ext.properties) e sopratutto modificata la path di home della directory che contiene la webapp.

admin.email.from.address=test@liferay.com
admin.email.from.name=Test Test
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.password=password
jdbc.default.url=jdbc:mysql://localhost/new_db?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false

jdbc.default.username=newuser

#DA
#liferay.home=C:/Users/Administrator/Downloads/Liferay/6.2.3CE/nomeProgetto/liferay-portal-6.2-ce-ga4
#A
liferay.home=nodo1/nomeProgetto/liferay-portal-6.2-ce-ga4

setup.wizard.enabled=false

Anche questo file è stato copiato al passo uno in quanto stiamo utilizzando il bundle.

Avviando Tomcat dovremmo vedere, se tutto è andato bene, la nostra installazione salire.

In bocca al lupo.