Liferay Installation unter Ubuntu Linux

Aus Laub-Home Wiki

Liferay Portal ist eine Enterprise-Web-Plattform für den Aufbau von Businesslösungen, die sofortige Ergebnisse und langfristige Werte liefert. (Zitat: http://www.liferay.com/de/products/liferay-portal/overview)

Vorbereitung

Für Liferay wird ein Oracle Java JDK und ein MySQL Server benötigt, wie man diese installiert findet ihr hier:

Datenbank anlegen:

mysql -u root -p
CREATE USER 'liferay'@'localhost' IDENTIFIED BY 'YOURPASSWORD';

GRANT USAGE ON * . * TO 'liferay'@'localhost' IDENTIFIED BY 'YOURPASSWORD' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE DATABASE IF NOT EXISTS `lportal` ;

GRANT ALL PRIVILEGES ON `lportal` . * TO 'liferay'@'localhost';

Installation

Die Liferay Installation ist ziemlich einfach, einfach Ordner entpacken und starten! Ich mache hier allerdings noch aus Sicherheitsgründen Liferay unter einem eigenen User verfügbar und lasse es nicht als root laufen. Als erstes holen wir uns das aktuelle Paket des Liferay-Portal Community Edition von der Liferay Webseite und legen es unter /srv ab.

ls -l /srv
-rw-r--r-- 1 liferay liferay 293229820 Dec 16 08:55 liferay-portal-tomcat-6.2.0-ce-ga1-20131101192857659.zip

Nun entpacken wir das Ganze:

cd /srv
unzip liferay-portal-tomcat-6.2.0-ce-ga1-20131101192857659.zip

Nun werden noch 2 Symlinks zur besseren Handhabung und Updatefähigkeit erstellt:

ln -s liferay-portal-6.2.0-ce-ga1 liferay-portal
cd liferay-portal
ln -s tomcat-7.0.42 tomcat

Nun legen wir einen User an und geben ihm die Rechte auf das Liferay Verzeichnis:

useradd -d /srv/liferay-portal -s /bin/bash liferay
chown liferay.liferay -R liferay-portal*

Nun kann der erste Starttest laufen:

su - liferay
cd /srv/liferay-portal/tomcat/bin/
./startup.sh

Nach ca. 30-60s sollte der Aufruf folgender URL den Setup Assistenten von Liferay bringen:

  • http://YOUSERVERIP:8080/

Hier können diverse Dinge angepasst werden. Das wichtigste ist die Datenbankverbindung. Hier muss der User, das Passwort und ganz wichtig der Datenbankname angepasst werden. Der Standard DB Name ist lportal.
Nach der Erfolgreichen Konfiguration kommt es zum Akzepttieren der Nutzungsbedingungen und der Vergabe des Passwortes für den Admin User. FERTIG.

Zum Schluss den Liferay Server wieder herunterfahren, da man das Ganze ja über ein INIT Script handhaben möchte.

./shutdown.sh

Init Script zum Starten

/etc/init.d/liferay

#!/bin/bash
#
# tomcat This shell script takes care of starting and stopping Tomcat
#
# chkconfig: - 80 20
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Short-Description: start and stop tomcat
### END INIT INFO

TOMCAT_USER=liferay
TOMCAT_HOME="/srv/liferay-portal/tomcat/"
SHUTDOWN_WAIT=45

tomcat_pid() {
echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'`
}

start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
        echo "Tomcat is already running (pid: $pid)"
else
        # Start tomcat
        echo "Starting tomcat"
        /bin/su - -c "cd $TOMCAT_HOME/bin && $TOMCAT_HOME/bin/startup.sh" $TOMCAT_USER
fi
return 0
}

stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
        echo "Stoping Tomcat"
        /bin/su - -c "cd $TOMCAT_HOME/bin && $TOMCAT_HOME/bin/shutdown.sh" $TOMCAT_USER

        let kwait=$SHUTDOWN_WAIT
        count=0
        count_by=5
        until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
        do
                echo "Waiting for processes to exit. Timeout before we kill the pid: ${count}/${kwait}"
                sleep $count_by
        let count=$count+$count_by;
        done

        if [ $count -gt $kwait ]; then
        echo "Killing processes which didn't stop after $SHUTDOWN_WAIT seconds"
        kill -9 $pid
        fi
else
        echo "Tomcat is not running"
fi

return 0
}

case $1 in
start)
        start
;;

stop)
        stop
;;

restart)
        stop
        start
;;

status)
        pid=$(tomcat_pid)
        if [ -n "$pid" ]
        then
                echo "Tomcat is running with pid: $pid"
        else
                echo "Tomcat is not running"
        fi
;;

*)
        echo "Usage: /etc/init.d/liferay {start|stop|restart|status}"
        exit 1
;;
esac

exit 0

Nun noch das execute Recht vergeben:

chmod 755 /etc/init.d/liferay

in den Autostart:

update-rc.d liferay defaults 99

Und testen:

/etc/init.d/liferay status
/etc/init.d/liferay start
/etc/init.d/liferay stop

Liferay Portal hinter Apache HTTPd

Will man Liferay hinter einen Apache Server stellen, was sich meist immer beim Einsatz eines Tomcats emphiehlt, kann man den folgenden Vhost nutzen:

# AJP Proxy
<Proxy balancer://LIFERAY>
    BalancerMember ajp://127.0.0.1:8009
</Proxy>
<VirtualHost *:80>
    ServerName www.domain.tld
    ServerAlias domain.tld

    ErrorLog /var/log/apache2/www.domain.tld-error.log
    CustomLog /var/log/apache2/www.domain.tld-access.log combined

    RewriteCond %{HTTP_HOST}   !^www\.domain\.tld [NC]
    RewriteCond %{HTTP_HOST}   !^$
    RewriteRule ^/(.*)         http://www.domain.tld/$1 [L,R]

    # Disable TRACE method
    RewriteCond %{REQUEST_METHOD} ^TRACE
    RewriteRule .* - [F]

    ProxyPass / balancer://LIFERAY/
</VirtualHost>

Es wird natürlich noch das AJP Proxy Modul benötigt:

a2enmod proxy_ajp
a2enmod proxy_balancer

Nun den vhost aktivieren:

a2ensite www.domain.tld
service apache2 restart

Nun sollte Liferay unter:

  • http://www.domain.tld

erreichbar sein. Falls ihr noch keinen Apache installiert habt, eine Anleitung findet ihr hier:

Quellen