Liferay kasutamine GlassFish keskkonnas Debian Lennyga
Sisukord
Sissejuhatus
Liferay http://www.liferay.com/ on peamiselt portaalide valmistamisele orienteeritud Java rakendus, mis sobib kasutamiseks erinevatel rakendusserveritel, nt Tomcat, Resin, Jetty jt ning vastu erinevaid andmebaase, nt MySQL, PostgreSQL ja Oracle.
Käesolevas palas käsitletakse Liferay kasutamist juhtumil kui Java rakendusserveriks on GlassFish v 3 Prelude ning andmeid hoitakse PostgreSQL 8.3.7 andmebaasis. Sellise süsteemi paigalduseks on mitu võimalust, käesolevas tekstis kirjeldatakse süsteemi moodustamist iseseisvatest komponentidest.
Ettevalmistused
Abstraktsel tasemel võib süsteemi skeemi kujutada selliselt
. --- Liferay . / | ' GlassFish | | PostgreSQL JVM | | Debian GNU/Linux Lenny
kus kasutatud tarkvara versioonid on
- operatsioonisüsteem - Debian GNU/Linux Lenny, 64 bit
- Java - JVM SE SDK v. 6
- Oracle GlassFish Server (OGS)
- andmebaas - PostgreSQL 8.3.7
- Liferay - 5.2.3 .war faili kujul
Järgnev eeldab, et operatsioonisüsteem on paigaldatud ning JVM ja GlassFish paigaldatud nii nagu on kirjeldatud tekstis Oracle GlassFish Serveri kasutamine Debian Lennyga.
PostgreSQL andmebaasi Liferay skeemi ettevalmistamine
Kui Liferay rakendusele peab andmebaasis vastama üks olemasoleva baasi skeem, nt portaal.liferay, siis tuleb sooritada selline järgnevus
- eemaldada skriptist create-postgresql.sql esimesed read
drop database lportal; create database lportal encoding = 'UNICODE'; \c lportal;
- tekitada baasi kasutaja liferay
CREATE ROLE liferay LOGIN ENCRYPTED PASSWORD 'md5ea4e1323460699b3f70e734f69fhrud' NOSUPERUSER NOINHERIT CREATEDB NOCREATEROLE; ALTER ROLE liferay SET search_path=liferay;
- tekitada skeem liferay
CREATE SCHEMA liferay AUTHORIZATION liferay;
Liferay andmed imporditakse andmebaasi automaatselt installeri töö käigus.
GlassFish rakendusserverisse PostgreSQL baasile vastava pooli moodustamine
Esmalt tuleb rakendusserveris kirjeldada pool, avades GlassFish haldusliideses
Resources -> JDBC -> Connection Pools -> New
ning näidata ära
Name: LiferayPool Resource Type: javax.sql.ConnectionPoolDataSource Database Vendor: PostgreSQL
valida Next ning kirjeldada ülejäänud pooli omadused sh baasi ligipääs ning ühenduse draiveri versioon
DatabaseName=portaal Password=parool PortNumber=5432 ServerName=localhost User=liferay JDBC30DataSource=true
Ning seejärel seostada pool JNDI nimega valides
Resources -> JDBC -> JDBC Resources
ning näidata
JNDI Name: jdbc/LiferayPool Pool Name: LiferayPool Status: Enabled
Pooli töökorrasoleku kontrollimiseks on GlassFishi haldusliideses nupp Ping.
Liferay paigaldamine olemasolevasse Glassfish v3 Prelude rakendusserverisse
Vajaliku tarkvara saab kopeerida aadressilt http://www.liferay.com/
- liferay .war arhiiv - liferay-portal-5.2.3.war
Download -> Liferay Portal -> Additional Files -> WARs -> Liferay Portal 5.2.3 WAR
- portal dependencies .zip arhiiv- liferay-portal-dependencies-5.2.3.zip
Download -> Liferay Portal -> Additional Files -> Additional Files
- dokumentatsioon - liferay-administration-guide.pdf
Documentation -> Liferay 5.2 -> Portal Administrator's Guide
Paigaldamist kirjeldab Portal Administrator's Guide'is lk 31, 'GlassFish 3.x' (mis on lünklik), tegevused koosnevad, alustades mitte-töötavast GlassFishi java protsessist.
- GlassFish domeeni seadistamine
Nt domain1 puhul seadistusfailis domains/domain1/config/domain.xml peab Liferay seisukohalt olema seadistatud
<jvm-options>-Xmx1024m</jvm-options> <jvm-options>-XX:MaxPermSize=256m</jvm-options>
- Kustutada domeeni docroot kataloogist index.html fail
$ rm domains/domain1/docroot/index.html
- Pakkida Additional failid GlassFishi kataloogi lib
$ cd /tmp $ unzip liferay-portal-dependencies-5.2.3.zip $ mv liferay-portal-dependencies-5.2.3/* /usr/local/glassfish/glassfish/lib
- Lisada kataloogi lib PostgreSQLi Java JDBC teek, kopeerida sobiv nt aadressilt
$ cd /usr/local/glassfish/glassfish/lib $ wget http://jdbc.postgresql.org/download/postgresql-8.3-605.jdbc4.jar
- Lisada .war arhiivi WEB-INF/classes/portal-ext.properties fail näitama PostgreSQL andmebaasile
$ mkdir /tmp/liferay-war $ cd /tmp/liferay-war $ cat WEB-INF/classes/portal-ext.properties jdbc.default.jndi.name=jdbc/LiferayPool $ rm /tmp/liferay-portal-5.2.3.war $ zip -r /tmp/liferay-portal-5.2.3.war .
Seejärel käivitada GlassFish.
- Rakenduse war arhiivi paigaldamine nt halduskonsooli kaudu
Applications -> Web Applications -> Deploy
Tehes sellised valikud
Rakendusele vastavad failid kopeeritakse kataloogi
domains/domain1/applications/liferay-portal-5.2.3
Deploymise lõpus öeldakse logisse domain/domain1/logs/server.log
[#|2009-09-29T11:21:38.147+0300|INFO|sun-glassfish|null|_ThreadID=17;_ThreadName=Thread-3;| Loading file:\ /usr/local/glassfish/glassfish/domains/domain1/applications/liferay-portal-5.2.3/WEB-INF/classes/portal-ext.properties|#] [#|2009-09-29T11:21:52.676+0300|INFO|sun-glassfish|null|_ThreadID=17;_ThreadName=Thread-3;|11:21:52,670 INFO \ [DialectDetector:64] Determining dialect for PostgreSQL 8 [#|2009-09-29T11:21:52.811+0300|INFO|sun-glassfish|null|_ThreadID=17;_ThreadName=Thread-3;|11:21:52,809 INFO \ [DialectDetector:97] Using dialect org.hibernate.dialect.PostgreSQLDialect ... [#|2009-09-28T09:24:01.533+0300|INFO|sun-glassfish|javax.enterprise.system.core| \ _ThreadID=18;_ThreadName=Thread-3;|Deployment of liferay-portal-5.2.3 done is 107609 ms|#]
kus saab tähele panna
- installer kasutab lisatud portal-ext.properties faili
- installer moodustab PostgreSQL andmebaasi sisu
Liferay portaalitarkvara kasutamine
Liferay portaalitarkvara on iseenesest GlassFish keskkonnas töötav infrastruktuur, mis muu seas võimaldab paljusid arendajate poolt ettevalmistatud komponente integreerida portaaliks. Reeglina esinevad need komponendid portlettide kujul.
Liferay teenus ja haldusliides asuvad samas veebikohas aadressil http://...:8080/, seda kas veebikoht käitub enam haldusliidese või teenusena sõltub, milliste privileegidega kasutajana ollakse või kas üldse ollakse sisse loginud. Vaikimisi on administraatori privileegidega rakenduse kasutaja test@liferay.com parooliga test. Peale tarkvara paigaldamist on väga oluline turvakaalutlustel see parool ära muuta.
Liferay haldamine
Liferay keskkonna haldus toimub administraatori ligipääsuga kasutajana sisse logides ja valides
Portlettide kasutamine
Administraatori ligipääsuga sisseloginud kasutaja saab paigaldada portlet kujul rakendusi, nt on välja valitud RSS portlet, paigaldamiseks tuleks see hiire abil paigutada veebilehel sobivasse asukohta
Lisade paigaldamine
Liferay funktsionaalsust saab laiendada ametlikust ja nn kogukonna hoidlast tarkvara lisamisega.
Tundub, et edukaks lisade paigaldamiseks on tarvis xercesImpl.jar teek kopeerida teisse kataloogi
$ cp domains/domain1/applications/liferay-portal-5.2.3/WEB-INF/lib/xercesImpl.jar lib
ajp protokolli toe lisamine
Vaikimisi olemasoleva 8080 pordil kuulava http listeneri 'http-listener-1' ümbertegemine ajp listeneriks toimub öeldes
$ sh bin/asadmin set --port 4848 --host localhost \ server-config.http-service.http-listener.http-listener-1.property.jkEnabled=true Command set executed successfully.
ning seejärel muudatuse kehtestamiseks teha domeenile stop ja start.
Tagasipöördumiseks tundub, et aitab kasutada kõnealuse domeeni seadistuste .bak faili
domains/domain1/config/domain.xml.bak
Konkreetselt lisab vaikimisi 8080/http pordile ajp võime selline muudatus
enne
<http-listener port="8080" id="http-listener-1" address="0.0.0.0" \ default-virtual-server="server" server-name=""/>
pärast set käsu ütlemist.
<http-listener port="8080" id="http-listener-1" address="0.0.0.0" \ default-virtual-server="server" server-name=""> <property name="jkEnabled" value="true" /> </http-listener>
Selleks, et https:// veebikohas oleksid html teksti sees nt vormide from action'd https:// sobib kasutada portal-ext.properties failis
$ cat domains/domain1/applications/liferay-portal-5.2.3/WEB-INF/classes/portal-ext.properties jdbc.default.jndi.name=jdbc/LiferayPool web.server.http.port=80 web.server.https.port=443 web.server.protocol=https
Selleks, et üle ajp GlassFishi rakenduse küpsiste domeeninime ja küpsise turvalisust kontrollida sobib kasutada nt failis
/usr/local/glassfish/glassfish/domains/domain1/applications/liferay-portal-5.2.3/WEB-INF/sun-web.xml
sektsiooni
<sun-web-app> <context-root>/</context-root> <class-loader delegate="true" /> <session-config> <cookie-properties> <property name="cookieSecure" value="true" /> <property name="cookieDomain" value=".loomaaed.tartu.ee" /> </cookie-properties> </session-config> </sun-web-app>
Märkused
- Liferay veebikohas jagatakse ahvatlevat GlassFish v3 Prelude + Liferay bundle komplekti, mida on hea mugav paigaldada, aga 2009 aasta sügisel ei tööta ajp abil Apache järele ühendamine; lisaks ei saa seal rakendada GlassFishi nö sisemiste vahenditega uuendusi
- Pool on andmebaasiga ühenduseks eelistatud valik, võimalik on ka otse kasutada PG draiverit
Otse kasutamise tuleb moodustada fail portal-ext.properties sisuga
$ cat domains/domain1/applications/liferay-portal/WEB-INF/classes/portal-ext.properties jdbc.default.driverClassName=org.postgresql.Driver jdbc.default.url=jdbc:postgresql://localhost:5432/liferay jdbc.default.username=liferay jdbc.default.password=parool
- Liferay andmebaasi saab sisse lugeda eraldi jagatava skripti abil, mida jagatakse Additional Files all, liferay-portal-sql-5.2.3.zip failist liferay-portal-sql-5.2.3/create/create-postgresql.sql skripti sisselugemisel
$ psql -h localhost -U liferay portaal < create-postgresql.sql