Суббота, 13 Октябрь 2012 23:07

Установка и настройка Openmeetings 2.0

Автор
Оцените материал
(7 голосов)

Как-то, генеральный директор сказал, что хочет видеоконференцию. Само собой, что первым делом я начал интересоваться, существуют ли opensource-решения этого вопроса. Оказалось, что существуют, но немного. И самым продвинутым из них оказался openmeetings.
Наткнувшись вот на эту статью:

http://sysadminblog.ru/blog/freebsd/459.html

я вначале решил настраивать всё на FreeBSD. Но прочитав, что openoffice будет собираться около 12-ти часов, я решил всё настраивать на Федоре. Причём, на самой последней (на этот момент) версии, и не на оригинальной федоре, а на RussianFedora Remix 17, поскольку в ней уже подключены все нужные репозитории, в которых лежат уже готовые собранные пакеты нужных (последних) версий. Благодаря этому, мне не пришлось ничего собирать вручную.

При настройке, также, помогли и вот эти статьи:

http://habrahabr.ru/post/132095
http://code.google.com/p/openmeetings/wiki/InstallationCentOS5

И ещё, очень помогла оригинальна инструкция по установке:

http://incubator.apache.org/openmeetings/installation.html

Итак, RussianFedora Remix 17. При установке я выбрал минимальный набор пакетов — всё буду доустанавливать сам по мере необходимости.

После установки, обновляю систему стандартным методом:

yum -y update yum
yum -y update

Но перезагружать не спешу. Сначала сразу установлю пару нужных программ:

yum -y install nano mc

Потом отключаю SeLinux. В файле /etc/selinux/config заменяем строчку:

SELINUX=enforcing

на:

SELINUX=disabled

Вот сейчас можно перезагрузить систему.

Поскольку компьютер с openmeetings — это отдельный сервер, то ему однозначно надо дать статический IP-адрес. Переходим в каталог /etc/sysconfig/network-scripts. В более ранних версиях федоры сетевые интерфейсы назывались eth0, eth1, eth2 и так далее, но в семнадцатой федоре обозначение сетевых карт другое. У себя я обнаружил файл с названием ifcfg-p2p1. Редактирую его:

UUID="43e4eed1-3c78-4301-825b-79f0a0b6d21a"
NM_CONTROLLED="yes"
HWADDR="08:00:27:B6:6F:64"
BOOTPROTO="none"
DEVICE="p2p1"
ONBOOT="yes"
IPADDR=192.168.0.20
NETMASK=255.255.255.0
GATEWAY=192.168.0.1

Также, в файл /etc/resolve.conf добавляю строчку:

nameserver 192.168.0.1

Ивыполняю команду:

chattr +i /etc/resolv.conf

чтоб настройки DNS после перезагрузки не слетели. После настройки сетки временно отключим фаервол, чтобы он пока не мешался:

service iptables stop
systemctl disable iptables.service

Далее, нам надо установить и настроить MySQL. Ставим:

yum -y install mysql mysql-server

После его установки, надо настроить, чтобы в MySQL умолчательной кодировкой была UTF-8. Находим файл /etc/my.cnf и приводим его вот к такому виду:

[mysqld]
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under different user or group,
# customize your systemd unit file for mysqld according to the
# instructions in http://fedoraproject.org/wiki/Systemd
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-character-set-client-handshake
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set = utf8

[mysql]
default-character-set = utf8

Строчки, которые я добавил, выделены зелёным.

Кто-то скажет, а зачем вообще нужен MySQL, если в последних версиях OpenMeetings существует своя встроенная база данных? Ответ тут:

http://incubator.apache.org/openmeetings/installation.html

Цитирую: Для использования в продакшине следует рассмотреть возможность использования MySQL, Postgres, или например IBM DB2 , или Oracle.

Так что вот... Смеюсь Далее, запустим mysqld:

service mysqld start

А после, запустим вот этот скрипт /usr/bin/mysql_secure_installation. Он будет задавать вопросы. Отвечаем так:

Enter current password for root (enter for none): жмём энтер, т.к. пароль пароль суперпользователя на mysql у нас пока пустой
Set root password? [Y/n] y
New password: вводим пароль суперпользователя на mysql
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

С помощью этого скрипта мы выполнили следующие действия: задали пароль для суперпользователя root, так как по умолчанию для него не установлен пароль; удалили анонимного пользователя, который создаётся только для тестовых целей; запретили пользователю root входить удалённо — теперь он сможет заходить только с localhost; удалили тестовую БД test и доступ к ней.

Не забудем включить демон mysqld в автозапуск:

systemctl enable mysqld.service

Теперь надо установить LibreOffice. Он нужен для отображения офисных документов, которые можно прикреплять на доску обсуждения:

yum -y groupinstall 'Office/Productivity'
yum -y install libreoffice-headless

LibreOffice должен запускться в режиме демона при старте системы. Для этого создаём файл /etc/rc.d/rc.local вот с таким содержимым:

#!/bin/sh
soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard &

Делаем этот файл исполняемым:

chmod 755 /etc/rc.d/rc.local

Затем перезагружаем систему и после её загрузки вводим команду:

netstat -anut

Если в её выводе, среди всех строчек, наблюдаем такую:

tcp 0 0 127.0.0.1:8100 0.0.0.0:* LISTEN

то значит всё в порядке.

Далее надо поставить все необходимые пакеты, от которых будет зависеть работа OpenMeetings:

yum -y install freetype fontconfig java libtiff libjpeg giflib libpaper xml-commons-apis libpng libxml2 fftw3 cairo flac wavpack libsndfile libmad yasm ghostscript lame swftools ImageMagick ffmpeg sox

Это то, о чём я говорил вначале. Если бы не готовые пакеты в RFRemix-17, то некоторые из этих пакетов пришлось бы вручную собирать.

Теперь загружаем последнюю версию openmeetings отсюда:

http://incubator.apache.org/openmeetings/downloads.html

Всё содержимое скачанного zip-архива распаковываем в каталог /opt/openmeetings.

Теперь, читаем о том, как настроить openmeetings на использование mysql:

http://incubator.apache.org/openmeetings/MySQLConfig.html

Для начала, создадим пустую базу для этого:

mysql -p
CREATE DATABASE `openmeetings`;
GRANT ALL PRIVILEGES ON openmeetings.* TO 'openmeetings'@'localhost' IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Далее, скачиваем jConnector от сюда:

http://www.mysql.com/downloads/connector/j/

Он нужен openmeetings для подключения к базе mysql. Распаковываем содержимое скачанного архива mysql-connector-java-5.1.22.zip (на момент написания статьи). В нём нас интересует лишь файл mysql-connector-java-5.1.22-bin.jar. Его надо поместить в каталог /opt/openmeetings/webapps/openmeetings/WEB-INF/lib.

После чего, находим файл /opt/openmeetings/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml. В нём нас интересует вот этот блок:

                                        , Url=jdbc:mysql://localhost:3306/openmeetings?autoReconnect=true&useUnicode=true&create...
                                        , MaxActive=100
                                        , MaxWait=10000
                                        , TestOnBorrow=true
                                        , poolPreparedStatements=true
                                        , Username=root
                                        , Password="/>

Собственно говоря, надо тут изменить лишь две строчки: логин и пароль к базе openmeetings, которую мы создали. Поэтому последние две строчки из этого блока и правим:

                                        , Username=openmeetings
                                        , Password=your_password"/>

И обратите внимание на символ «"» в конце строчки пароля — он и должен там быть. Я вначале из-за своей невнимательности убрал эту кавычку — сие было фатальной моей ошибкой В рот мне ноги

После окончания редактирования файла, нужно переименовать mysql_persistence.xml в persistence.xml. При этом, оригинальный persistence.xml, который лежит в этой же папке, переименуйте во что-нибудь другое.

Идём дальше. А дальше надо скачать JODConverter:

http://code.google.com/p/jodconverter/downloads/list

JODConverter нужен для конвертирования офисных файлов в pdf для отображения на доске. Содержимое архива jodconverter-core-3.0-beta-4-dist.zip (на момент написания статьи) копируем в каталог /opt/openmeetings/webapps/openmeetings/jodcoverter.

Далее, есть ещё одна тонкость: в коде jodconverter жестко прописаны пути, и он будет искать опенофис в каталоге /opt/openoffice.org3. Поэтому, чтобы он таки его мог увидеть, делаем вот такую символическую ссылку:

ln -s /usr/lib64/libreoffice /opt/openoffice.org3

На этом все приготовления закончены. Переходим в каталог /opt/openmeetings и делаем команду:

./red5.sh

Не нужно дожидаться её завершения. И вообще, лучше эту команду выполнить в отдельно открытой консоли. Эта команда запустит openmeeting. Его окончательную установку необходимо сделать уже через web-интерфейс. Переходим по адресу:

http://192.168.0.20:5080/openmeetings/install

На страничке инсталяции обратим внимание на поле «JOD Path». В нём надо указать путь к папке lib нашего джобконвертера: /opt/openmeetings/webapps/openmeetings/jodcoverter/lib. Остальные поля на своё усмотрение можно заполнить, после чего жмём внизу кнопку «INSTALL». Система призадумается на некоторое время. Ждём.

После окончания установки появится приглашение войти в систему OpenMeetings. Можно пользоваться.

http://192.168.0.20:5080/openmeetings

Однако нам ещё надо включить обратно фаервол и настроить, чтобы openmeetings автоматически стартовал при запуске операционной системы.

Для работы программе требуются TCP порты 1935, 5080 и 8088. В конфиге /etc/sysconfig/iptables в нужных местах добавляем вот такие строчки:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1935 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT

Затем снова добавляем iptables в автозагрузку и запускаем его:

systemctl enable iptables.service
service iptables start

Ну, а чтоб openmeetings стартовал при запуске системы, то создадим скриптик /etc/init.d/openmeetings и наполним его вот таким содержимым:

#!/bin/bash
### BEGIN INIT INFO
# Provides: openmeetings
# chkconfig: - 99 24
# Short-Description: starting openmeetings
### END INIT INFO

/bin/echo «Starting openmeetings»
cd /opt/openmeetings
./red5.sh

Сохраним и сделаем его исполняемым и включим в автозапуск:

chmod +x /etc/init.d/openmeetings
chkconfig openmeetings on

На этом, вроде бы, всё. Если найду какие-то недоделки и баги, то внесу правки в эту статью.

Прочитано 205496 раз Последнее изменение Воскресенье, 21 Октябрь 2012 12:47

Комментарии  

Александр
+1 # Александр 21.10.2012 04:30
Николай, здравствуйте! Большое спасибо за статью, помогла в некоторых вопросах настройки openmeetings. Как можно с вами связаться? Хотел бы пообщаться с вами насчет сотрудничества.
Ответьте мне пожалуйста на e-mail
Виталий
0 # Виталий 07.03.2013 15:14
спасибо за инструкцию. все работает кроме нескольких моментов: после создания файла в автозагрузке послн ребута сервер не стартовал. запуск руками - порт 9999 занят. боролся долго, помогло только когда убрал из автозагрузки.
второе: при старте ошибка (после того как убрал автозагрузку) Could not find or load main class org.red5.server.Bootstrap решение - перед запуском сервера в терминале под рутом делал export RED5_HOME=/opt/openmeetings/
потом стартовал сервер.
в остальном все детально подробно описано. спасибо!
а, и забыл написать что проброс портов делал непосредственно в фаерволе по инструкции (может не туда вписал) не пошло
Николай
0 # Николай 10.03.2013 23:16
Конечно же, не исключаю, что я где-то мог допустить неточность. + тут ещё могут быть некоторые тонкости в зависимости от версии openmeetings.
Кстати у меня это дело так и осталось на работе невостребованным... Настроил, а никто не пользуется... Сначала просят, а потом забивают благополучно.
Виталий
0 # Виталий 11.03.2013 19:18
вопрос такого плана: при регистрации отправка проверочного письма или приглашения в конференцию ссылка только для локали
Для завершения регистрации кликните на эту ссылку или скопируйте URL в окно браузера.
Кликните для верификации вашего e-mail.
192.168.1.33:5080/openmeetings/activate_______......

имеется no-ip куда только его вписать чтобы приходило нормальная ссыль для регистрации и входа в комнату

спасибо
Николай
0 # Николай 12.03.2013 12:27
Честно говоря, пока не задавался этим вопросом, поскольку у меня openmeetings всё равно простаивает.
По уму, лучше бы он не ай-пишником ссылку давал, dns-именем.
Вобщем, когда у меня этот вопрос снова станет актуальным, то буду ковырять...
Евгений
+2 # Евгений 03.10.2013 10:50
Виталий, смотря по какому адресу вы заходите на сайт openmeetinga, тот адрес он и будет отправлять в приглашении. Зайдете из под локалки, напишет локальный ip, зайдете с внешего ip, отправит внешний ip, зайлете по dns имени, отправит dns имя.

У меня вопрос, как сделать морду приглашения входа в систему на родном языке? Некоторые пользователи буржуйского не знают.
Николай
0 # Николай 01.10.2014 14:56
У меня сразу на родном было. Может это как-то от локали зависит. Я при установке ОС сразу выбирал русскую локаль но с английской раскладкой клавиатуры.
А может это ещё и от версии openmeetings зависит... Точного ответа не дам.
slobodalera
0 # slobodalera 04.08.2019 05:57
Замечательно, очень ценная информация

You have no rights to post comments

Вы здесь: Home Мои статьи Linux Fedora Установка и настройка Openmeetings 2.0