Tuesday, February 23, 2010

LifeRay Portal 5.2.3 - TomCat 6.0 - PostgreSQL on Debian (sid)

I was recently introduced to LifeRay and determined that I would setup a Virtual Machine & configure it to run LifeRay on TomCat 6.0 with a Postgres database.

I have a preference toward Debian and since I had a base install on a Virtual Machine, I began by duplicating it and updating it to Sid.  (I later installed on a testing version as well following the same procedures outlined below.)

After some light reading on the Liferay site I realized that they didn't have complete documentation for a PostgreSQL installation for the 5.x versions.   It appears that there have been extensive changes since these most recent releases.
_____________________________________

To begin I downloaded the LifeRay Portal bundle with TomCat 6.0 :

cd /usr/local/src/

wget http://sourceforge.net/projects/lportal/files/Liferay%20Portal/liferay-portal-tomcat-6.0-5.2.3.zip

cd /usr/local

unzip liferay-portal-tomcat-6.0-5.2.3.zip

Make the shell scripts executable.

cd /usr/local/liferay-portal-5.2.3/tomcat-6.0.18/bin/

chmod +x *.sh

Obtain the following package: 
Note:  You must have the option of "non-free" in your apt sources list.

apt-get install sun-java6-jdk

Check the java version

java -version

Update ./home/user/.bashrc and add the following line.

# JAVA6
export JAVA_HOME=/usr/lib/jvm/java-6-sun

Note: DEBIAN Users must modify the setenv.sh file for TomCat and add the following variable if using a testing version Debian or have upgraded from a testing version of Debian. (Thanks to Mr. LBR for pointing this out) You may reference this issue at the following website http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572048

Add the following to JAVA_OPTS line

-Djava.net.preferIPv4Stack=true

OPTIONAL:  If desired, you can simply start TomCat and allow LifeRay to use it's built in database HyperSQL.  I initially installed LifeRay with its default configuration so I could verify that I had a working installation prior to moving to PostgreSQL.

/usr/local/liferay-portal-5.2.3/tomcat-6.0.18/bin/start.sh

The default configuration starts TomCat on port 8080.

The log file is located at:

/usr/local/liferay-portal-5.2.3/tomcat-6.0.18/logs/

Tail the log file.

tail -f catalina.out

Once you see a line similar to the following, you may access your portal.

INFO:  Server startup in 62000 ms

Continuing on with a PostgreSQL database installation, you will need to stop TomCat by running the "Shutdown.sh" script found in the same location as the "start.sh" script.

 Obtain Postgres.  I also installed "-doc" package but didn't note it here.

 apt-get install postgresql 

 Start Postgres, setup a user for postgres, create a new database.

/etc/init.d/postgresql start

adduser newuser

Become a superuser

su postgres

Connect to the Database server.

psql template1 
template1=# CREATE USER newuser WITH PASSWORD 'newuserpassword';
template1=# CREATE DATABASE liferay;
template1=# GRANT ALL PRIVILEGES ON DATABASE liferay to newuser;
template1=# \q

Configure Liferay to use the PostgreSQL Database.

I found that the version or package that I downloaded did not actually have the following file.  I had to create this file.  If your version has this file please modify it with the following.

cd /usr/local/liferay-portal-5.2.3/tomcat-6.0.18/webapps/ROOT/WEB-INF/classes

vi portal-ext.properties

Insert the following lines with modifications to the database name, username & password to match your configuration.

jdbc.default.driverClassName=org.postgresql.Driver
jdbc.default.url=jdbc:postgresql://localhost:5432/liferay
jdbc.default.username=newuser
jdbc.default.password=newuserpassword

Start TomCat and tail the log file.

/usr/local/liferay-portal-5.2.3/tomcat-6.0.18/bin/start.sh

The default configuration starts TomCat on port 8080.

The log file is located at:

/usr/local/liferay-portal-5.2.3/tomcat-6.0.18/logs/

Tail the log file.

tail -f catalina.out

Once you see a line similar to the following, you may access your portal.

INFO: Server startup in 62332 ms

Login at:  http://localhost:8080

Admin access can be obtained by logging in with the following credentials (as per LifeRay.com)
Username: bruno@7cogs.com
Password: bruno

Overview:  Overall this was not a difficult process.  There were a few hurdles along the way getting the postgres database configured as I wanted with a different user than "postgres".  These were very minor and were primarily resolved once I found the proper location for the portal-ext.properties file.

Reference  & Info Links: 
LifeRay - LifeRay - website, documentation and wiki.
PostgreSQL - Postgresql - website & database commands.
YouTube - Howto change the default Logo on Liferay.  Saved me hunting around in the "control panel".

UPDATE 8/3/2010 - Tested ver. 6.0.4 GA2
  • Found documentation still applicable.  
  • Removed "SevenCogs" data in WEBAPPS folder prior to start up so no "example" data was deployed.  This required using the default username of test@liferay.com and password of "test" to access the admin console.
UPDATE 1/15/2011 - Tested ver. 6.0.5 GA3
  • Debian (testing) users will need to download and install (apt-get) default-java instead of sun-java6-jdk.
  • All other steps worked as documented

No comments: