null

Liferay - сборка и развёртывание портала на Glassfish + PostgreSQL

Несмотря на то, что Liferay Portal доступен для загрузки как в виде готовых бандлов в комплекте с разнообразными серверами приложений, так и отдельного универсального war-архива, мы в нашей компании используем собственную сборку, которую собираем из исходников. Рассмотрим процесс сборки портала и развёртывания применительно к существующему у нас окружению Glassfish + PostgreSQL:

  1. Сначала нам понадобится скачать и установить сервер приложений, под который мы будем собирать Liferay. В нашем случае это будет Glassfish 2.1.1, установленный в каталог /usr/local/SUNWappserver. Применительно к Glassfish, необходимо также создать домен, на котором будет развёрнута наша сборка портала. В данной статье в качестве этого домена рассматривается создающийся глассфишем при установке дефолтный домен domain1.
  2. Помимо сервера приложений, необходимо скачать и установить СУБД, которую будет использовать наш портал для хранения данных. В нашем случае это PostgreSQL. После загрузки и установки СУБД, необходимо создать базу данных:

    jek@jek-laptop:~$ /opt/PostgreSQL/8.3/bin/createdb \
    -U postgres -O postgres -E utf-8 liferay
    ...и проверить, есть ли к ней доступ с нужных нам IP:

    jek@jek-laptop:~$ sudo cat /opt/PostgreSQL/8.3/data/postgresql.conf | grep listen
    listen_addresses = '*'            # what IP address(es) to listen on;
    jek@jek-laptop:~$ sudo cat /opt/PostgreSQL/8.3/data/pg_hba.conf
    # PostgreSQL Client Authentication Configuration File
    # ===================================================

    # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

    # "local" is for Unix domain socket connections only
    local   all         all                               md5
    # IPv4 local connections:
    host    all         all         127.0.0.1/32          md5
    host    all         all         192.168.0.0/16        md5
    # IPv6 local connections:
    host    all         all         ::1/128               md5
  1. Готовим сервер приложений к развёртыванию портала на нём:

    1. Скачиваем JDBC-драйвер постгреса и Xerces, после чего помещаем их в директорию /lib нашего домена.
    2. В директории /config домена создаём файл portal-ext.properties, который переопределит стандартную конфигурацию нашего портала. Содержимое этого файла должно выглядеть примерно так:

      # Пул соединений JDBC
      jdbc.default.jndi.name=jdbc/LiferayPool

      # Параметры почтового сервиса
      message.boards.email.from.name=TuneIT site messaging service
      message.boards.email.from.address=webservd@tune-it.ru
      message.boards.email.html.format=false

      # Отключаем вывод лицензионного соглашения
      terms.of.use.required=false

      # Параметры smtp
      mail.session.mail.smtp.auth=false
      mail.session.mail.smtp.host=192.168.46.6
      mail.session.mail.smtp.port=25
      mail.session.mail.transport.protocol=smtp
    3. Теперь можно запустить домен:

      jek@jek-laptop:~$ /usr/local/SUNWappserver/bin/asadmin \
      start-domain --user admin domain1
    4. Открываем в окне браузера консоль администратора глассфиша, логинимся и создаём новый пул JDBC-соединений (его можно назвать, к примеру, LiferayPool):

      ...в появившемся интерфейсе параметров JDBC-соединения указываем, как подключиться к созданной на предыдущем этапе БД, после чего сохраняем пул и создаём на его основе новый JDBC-ресурс с JNDI-именем, указанным нами в файле portal-ext.properties на шаге 3.II:
    5. Создаём новую JVM-опцию для нашего домена:

      -Dcom.sun.enterprise.server.ss.ASQuickStartup=false

      После добавления опции JVM глассфиш предложит нам перезапустить домен, что на данном этапе делать не стоит - всё равно его прдётся перезапускать ещё раз после развёртывания портала (на шаге 6).
  2. Теперь можно скачать исходники Liferay. После загрузки исходников портала их необходимо распаковать и подготовить для сборки в нашем окружении:

    jek@jek-laptop:~/work/liferay-portal/5.2.3/src$ unzip liferay-portal-src-5.2.3.zip
  3. Чтобы портал успешно собрался в нашем окружении, нужно поправить его конфигурацию под сервер приложений Glassfish. Для этого необходимо изменить файл app.server.properties в корневой директории исходников:
    1. Комментируем строчку с томкатом в качестве выбранного сервера приложений и раскомментируем соответствующую строчку с глассфишем:

      ##
      ## Server Type
      ##
       
          #app.server.type=geronimo-tomcat
          app.server.type=glassfish
          #app.server.type=jboss-tomcat
          #app.server.type=jetty
          #app.server.type=jonas-jetty
          #app.server.type=jonas-tomcat
          #app.server.type=oc4j
          #app.server.type=resin
          #app.server.type=tomcat
    2. Теперь необходимо прописать правильные пути к нашему серверу приложений. Напомним, что глассфиш у нас находится в каталоге /opt/SUNWappserver, а его домен по-умолчанию - /opt/SUNWappserver/domains/domain1/. Правим конфиг в соответствии с этими путями:
      ...
      ##
      ## Server Directory
      ##
       
          app.server.parent.dir=/usr/local
      ...
      ##
      ## Glassfish
      ##
       
          app.server.glassfish.version=2
          app.server.glassfish.dir=${app.server.parent.dir}/SUNWappserver
      ...
          app.server.glassfish.instance.dir=${app.server.glassfish.dir}/domains/domain1
      ...
  4. C конфигами лайфрея вроде бы всё. Теперь можем запустить сборку портала командой "ant -f build.xml all" (если ант не установлен, его нужно предварительно установить). Если сборка закончится успешно, то ант скажет нам примерно следующее:
    ...
    print-current-time:
         [echo] Март 20, 2010 at 08:38 PM

    BUILD SUCCESSFUL
    В результате, полученный war-архив c порталом и jar-архивы c его зависимостями будeт автоматически скопированы в директории /autodeploy и /lib домена на сервере приложений. Теперь нам остаётся только дождаться, пока будет развёрнуто приложение, перезапустить домен, после чего портал должен стать доступен в его корневом контексте:
Назад

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

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

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

Ничего не найдено. n is 0