null

Установка Liferay на домен GlassFish

Вследствие того, что разработчики чаще всего используют готовые бандлы Liferay на базе различных серверов приложений, установка и запуск которых достаточно тривиальны, при развёртывнии портала в продакшн-окружение на существующий домен сервера приложений у них могут возникнуть определённые трудности. В этой заметке я решил привести пошаговую инстукцию (с картинками), как развернуть последнюю на данный момент версию Liferay (6.1.1) в домене на базе сервера приложений GlassFish (версии 3.1.2.2). Почти 3 года назад я уже написал заметку на похожую тему, но там акцент был сделан на сборке портала из исходников, а не на развёртывании его на сервере приложений, да и разработчики Liferay и GlassFish с тех пор успели неоднократно выпустить новые версии своих продуктов, так что пришло время написать новый howto.

Предусловия

Итак, начальные условия - у нас есть свежесозданный домен на GlassFish 3.1.2.2 с дефолтными параметрами и созданная в какой-нибудь СУБД база данных (в моём примере будет использоваться PostgreSQL). Для того, чтобы начать установку, нам понадобится скачать следующие файлы:

После загрузки файлов можно начинать процесс установки и конфигурации портала.

Конфигурация домена

Начнём с конфигурации домена GlassFish. Для того, чтобы портал мог успешно работать, виртуальной машине должен быть выделен достаточный для работы портала объём памяти (не менее 768 МБ, рекомендуется 1 ГБ и больше). Делается это следующим образом:

  1. Если домен не был запущен, запускаем его. Открываем консоль администратора, выбираем пункт меню "Configurations" -> "server-config" и кликаем по пункту "JVM Settings":
    Выбираем в меню пункт "JVM Settings"
  2. На появившейся панели выбираем вкладку "JVM Options", изменяем значение опции "-Xmx512m" на "-Xmx1024m" и кликаем "Save":
    Изменяем параметры JVM.

    Если планируется много и / или часто развёртывать на портале дополнительные портлеты и другие плагины, то рекомендуется увеличить объём памяти, выделяемой под PermGen - к примеру, до 384 МБ вместо стандартных 192. В этом случае заменяем ещё одну опцию - со значения "-XX:MaxPermSize=192m" на "-XX:MaxPermSize=384m".

После задания новых параметров JVM останавливаем домен.

Установка библиотек и конфигурационных файлов портала

Теперь нам надо установить библиотеки и конфигурационные файлы, необходимые для работы портала. Делается это так:

  1. Распаковываем архив с библиотеками портала (файл liferay-portal-dependencies.zip) и копируем извлечённые из него jar-файлы в каталог с библиотеками домена (по умолчанию это $GLASSFISH_HOME/glassfish/domains/$DOMAIN_NAME/lib, где $GLASSFISH_HOME - это каталог, в который установлен сервер приложений, а $DOMAIN_NAME - имя нашего домена).
  2. В тот же каталог копируем JDBC-драйвер используемой СУБД.
  3. В каталоге $DOMAIN_NAME/config создаём текстовый файл portal-ext.properties, в который добавляем следующую строчку:
    jdbc.default.jndi.name=jdbc/LiferayPool

После того, как все библиотеки скопированы и конфигурационный файл создан, можно снова запустить домен.

Создание пула соединений с БД

На предыдущем шаге мы указали порталу, что для доступа к базе данных он должен использовать пул соединений, созданный на сервере приложений. Теперь нам нужно создать этот пул:

  1. После того, как домен успешно запустится, снова открываем консоль администатора. Выбираем пункт меню "Resources" -> "JDBC" -> "JDBC Connection Pools":
    Создаём новый пул соединений с БД
  2. Кликаем кнопку "New", вводим имя создаваемого пула - LiferayPool, выбираем тип ресурса (javax.sql.ConnectionPoolDatasource) и используемую СУБД (в нашем случае PostgreSQL):
    Параметры пула
  3. Кликаем "Next", в появившейся форме вводим параметры соединения с нашей БД, кликаем "Finish":
    Параметры соединения с БД.
  4. [Опционально] проверяем, правильно ли мы задали настройки соединения с БД. Для этого снова открываем созданный на предыдущем шаге пул соединений и кликаем кнопку "ping". Если выводится сообщение "Ping Succeeded", то настройки соединения верные - серверу приложений удалось подключиться к нашей базе:
    Проверяем, работает ли наше подключение к БД
  5. Открываем пункт меню "Resources" -> "JDBC" -> "JDBC Resources", кликаем "New":
    Создаём новый JDBC-ресурс
  6. Задаём параметры ресурса - JNDI Name - "jdbc/LiferayPool" (оно обязательно должно совпадать с именем, которое мы задали в portal-ext.properties), из списка пулов выбираем наш LiferayPool. Кликаем "OK":
    Задаём параметры JDBC-ресурса.

Установка Liferay

Собственно, с конфигурацией всё! Теперь осталось только развернуть сам портал. Для этого копируем war-файл портала в каталог $DOMAIN_NAME/autodeploy и ждём несколько минут, пока приложение развернётся. Проверяем, всё ли хорошо:

Проверяем, успешно ли установился портал

Ура! Всё работает:

Всё работает

Коротко о себе:

Работаю ведущим программистом в компании Tune IT и ассистентом кафедры Вычислительной техники в Университете ИТМО .

Занимаюсь проектами, связанными с разработкой разного рода веб-приложений (порталы, CRM-системы, системы электронного документооборота), а также, в рамках научной работы на кафедре, изучаю возможности применения семантического анализа в задачах САПР.