Liferay Home is one folder above Tomcat’s install location.
For this section, we will refer to your Tomcat server’s installation location as
$TOMCAT_HOME
. If you do not already have an existing Tomcat server, we
recommend you download a Liferay/Tomcat bundle from
http://www.liferay.com/downloads/liferay-portal/available-releases.
If you have an existing Tomcat server or would like to install Liferay on Tomcat
manually, please follow the steps below.
Before you begin, make sure you have downloaded the latest Liferay .war
file
and Liferay Portal dependencies from
http://www.liferay.com/downloads/liferay-portal/additional-files.
The Liferay .war
file should be called liferay-portal-6.1.x-<date>.war
and
the dependencies file should be called
liferay-portal-dependencies-6.1.x-<date>.zip
.
Next, let’s get started by addressing Liferay’s library dependencies.
Dependency Jars
Liferay Portal needs to have the Liferay Portal Dependency JARs, an appropriate JDBC driver and a few other JARs installed.
-
Create folder
$TOMCAT_HOME/lib/ext
. -
Extract the Liferay dependencies file to
$TOMCAT_HOME/lib/ext
. If the files do not extract to this directory, you can copy the dependencies archive to this directory, extract them and then delete the archive. -
Next, you need several
.jar
files which are included as part of the Liferay source distribution. Many application servers ship with these already on the class path but Tomcat does not. The best way to get the appropriate versions of these files is to download the Liferay source code and get them from there. Once you have downloaded the Liferay source, unzip the source into a temporary folder. We’ll refer to the location of the Liferay source as$LIFERAY_SOURCE
.- Copy the following jars from
$LIFERAY_SOURCE/lib/development
to your$TOMCAT_HOME/lib/ext
folder:activation.jar
jms.jar
jta.jar
jutf7.jar
mail.jar
persistence.jar
- Copy the following jar from
$LIFERAY_SOURCE/lib/portal
to your$TOMCAT_HOME/lib/ext
folder:ccpp.jar
-
Note: Tomcat 6 users should not copy the
ccpp.jar
file into their$TOMCAT_HOME/lib/ext
folder and should delete it from this folder if it already exists.
- Copy the following jars from
$LIFERAY_SOURCE/lib/development
to your$TOMCAT_HOME/temp/liferay/com/liferay/portal/deploy/dependencies
folder:resin.jar
script-10.jar
- Copy the following jars from
-
Make sure the JDBC driver for your database is accessible by Tomcat. Obtain the JDBC driver for your version of the database server. In the case of MySQL, use
mysql-connector-java-{$version}-bin.jar
. You can download the latest MySQL JDBC driver from http://www.mysql.com/products/connector/. Extract the JAR file and copy it to$TOMCAT_HOME/lib/ext
. -
Liferay requires an additional .jar on Tomcat installations to manage transactions. This is included in the bundle but you need to add it if you’re installing Liferay manually. You may find this .jar here: http://www.oracle.com/technetwork/java/javaee/jta/index.html. Place this file in Tomcat’s lib/ext folder.
Now that you have the necessary libraries in place, we’ll move on to configuring your domain.
Tomcat Configuration
The steps in this section focus on:
-
Setting environment variables
-
Creating a context for your web application
-
Modifying the list of classes/JARs to be loaded
-
Specifying URI encoding
Let’s get started with our configuration tasks.
-
Create a
setenv.bat
(Windows) orsetenv.sh
file (Unix, Linux, Mac OS) in the$TOMCAT_HOME/bin
directory. When you start Tomcat, Catalina callssetenv.bat
orsetenv.sh
. Edit the file and populate it with following contents:setenv.bat:
if exist "%CATALINA_HOME%/jre@java.version@/win" ( if not "%JAVA_HOME%" == "" ( set JAVA_HOME= ) set "JRE_HOME=%CATALINA_HOME%/jre@java.version@/win" ) set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m"
setenv.sh:
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m"
This sets the character encoding to UTF-8, sets the time zone to Greenwich Mean Time and allocates memory to the Java virtual machine.
-
Create the directory
$TOMCAT_HOME/conf/Catalina/localhost
and create aROOT.xml
file in it. Edit this file and populate it with the following contents to set up a portal web application:<Context path="" crossContext="true"> <!-- JAAS --> <!--<Realm className="org.apache.catalina.realm.JAASRealm" appName="PortalRealm" userClassNames="com.liferay.portal.kernel.security.jaas.PortalPrincipal" roleClassNames="com.liferay.portal.kernel.security.jaas.PortalRole" />--> <!-- Uncomment the following to disable persistent sessions across reboots. --> <!--<Manager pathname="" />--> <!-- Uncomment the following to not use sessions. See the property "session.disabled" in portal.properties. --> <!--<Manager className="com.liferay.support.tomcat.session.SessionLessManagerBase" />--> </Context>
Setting
crossContext="true"
allows multiple web apps to use the same class loader. In the content above you will also find commented instructions and tags for configuring a JAAS realm, disabling persistent sessions and disabling sessions in general. -
Open
$TOMCAT_HOME/conf/catalina.properties
and replace the line:common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
with:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/lib/ext,${catalina.home}/lib/ext/*.jar
This allows Catalina to access the dependency jars you extracted to
$TOMCAT_HOME/lib/ext
. -
To ensure consistent use of UTF-8 URI Encoding, edit
$TOMCAT_HOME/conf/server.xml
and add the attributeURIEncoding="UTF-8"
to your connector on port 8080. Below is an example of specifying this encoding on the connector:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
-
Make sure there is no
support-catalina.jar
file in your$TOMCAT_HOME/webapps
directory. If you find one, remove it.
Excellent work! Now let’s consider configuration of your database.
Database Configuration
If you want Tomcat to manage your data source, use the following procedure. If you want to use Liferay’s built-in data source, you can skip this section.
-
Make sure your database server is installed and working. If it’s installed on a different machine, make sure it’s accessible from your Liferay machine.
-
Add your data source as a resource in the context of your web application specified in
$TOMCAT_HOME/conf/Catalina/localhost/ROOT.xml
.<Context...> <Resource name="jdbc/LiferayPool" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8" username="root" password="root" maxActive="100" maxIdle="30" maxWait="10000" /> </Context>
Note the above resource definition assumes your database name is lportal and your MySQL username and password are both root. You’ll have to update these values with your own database name and credentials.
Your Tomcat managed data source is now configured. Let’s move on to your mail session.
Mail Configuration
If you want to manage your mail session within Tomcat, use the following instructions. If you want to use the built-in Liferay mail session, you can skip this section.
Create a mail session bound to mail/MailSession
. Edit $TOMCAT_ HOME/conf/Catalina/localhost/ROOT.xml
and configure a mail session. Be sure to
replace the mail session values with your own.
<Context...>
<Resource
name="mail/MailSession"
auth="Container"
type="javax.mail.Session"
mail.pop3.host="pop.gmail.com"
mail.pop3.port="110"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.user="user"
mail.smtp.password="password"
mail.smtp.auth="true"
mail.smtp.starttls.enable="true"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
mail.imap.host="imap.gmail.com"
mail.imap.port="993"
mail.transport.protocol="smtp"
mail.store.protocol="imap"
/>
</Context>
Super! Your mail session is configured. Next, we’ll make sure Liferay will be able to access your mail session and database.
Configuring Your Database and Mail Session
In this section we’ll specify appropriate properties for Liferay to use in connecting to your database and mail session.
-
If you are using Tomcat to manage your data source, add the following to your
portal-ext.properties
file in your Liferay Home to refer to your data source:jdbc.default.jndi.name=jdbc/LiferayPool
Otherwise, if you are using Liferay Portal to manage your data source, follow the instructions in the Deploy Liferay section for using the setup wizard.
-
If want to use Liferay Portal to manage your mail session, you can configure the mail session within Liferay Portal. That is, after starting your portal as described in the Deploy Liferay section, go to Control Panel → Server Administration → Mail and enter the settings for your mail session.
Otherwise, if you are using Tomcat to manage your mail session, add the following to your
portal-ext.properties
file to reference that mail session:mail.session.jndi.name=mail/MailSession
It’s just that easy! Now it’s time to deploy Liferay Portal on your Tomcat server.
Deploy Liferay
We’ll deploy Liferay as an exploded web archive within your
$TOMCAT_HOME/webapps
folder.
-
If you are manually installing Liferay on a clean Tomcat server, delete the contents of the
$TOMCAT_HOME/webapps/ROOT
directory. This undeploys the default Tomcat home page. Then extract the Liferay.war
file to$TOMCAT_HOME/webapps/ROOT
. -
Before you start Liferay Portal, let’s consider whether you want to also start the setup wizard.
Start the setup wizard along with Liferay Portal - Do this if you want to configure your portal, setup your site’s administrative account and/or manage your database within Liferay.
If this is your first time starting Liferay Portal 6.1, the setup wizard is invoked on server startup. If you want to re-run the wizard, specify
setup.wizard.enabled=true
in your properties file (e.g.portal-setup-wizard.properties
).setup.wizard.enabled=true
The setup wizard is invoked during server startup.
Start Liferay Portal without invoking the setup wizard - Do this if want to preserve your current portal settings.
To start the server without triggering the setup wizard, specify
setup.wizard.enabled=false
in your properties (e.g.portal-setup-wizard.properties
orportal-ext.properties
file).setup.wizard.enabled=false
The
portal-setup-wizard.properties
file the setup wizard creates hassetup.wizard.enabled=false
conveniently specified for you.Now its time to launch Liferay Portal on Tomcat!
-
Start Tomcat by executing
$TOMCAT_HOME/bin/startup.bat
or$TOMCAT_HOME/bin/startup.sh
.-
If the setup wizard was disabled, your site’s home page opens in your browser at http://localhost:8080.
-
Otherwise, the setup wizard opens in your browser.
To use the setup wizard, please see the section above.
-
Congratulations on successfully installing and deploying Liferay on Tomcat!