Установка Openmeetings 1.9.1 на FreeBSD 9, шаг за шагом.

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
agrloki
рядовой
Сообщения: 25
Зарегистрирован: 2009-11-18 23:07:41

Установка Openmeetings 1.9.1 на FreeBSD 9, шаг за шагом.

Непрочитанное сообщение agrloki » 2012-04-05 16:41:31

Возникла необходимость организации видеоконференций, причем основным условием было отсутствие на стороне клиента необходимости установки дополнительного ПО. После коротких поисков в сети было найдено приемлемое решение Openmeetings.
На данный момент актуальная версия openmeetings_1_9_1_r4707, её и будем ставить.

Как понятно из заголовка ставить будем на FreeBSD 9, в сети есть несколько статей по установке но все они или не полны или относятся к устаревшим версиям. Система свеже установлена, первичная настройка произведена (сеть, обновление портов и т.п.) - эту часть расписывать не буду в сети мануалов хватает. Переходим собственно к установке, для начала надо установить весь необходимый дополнительный софт.
Начинаем с установки openoffice.org-3, лирическое отступление, последовательность установки подобрана по ходу десятка экспериментов и я даю её в том виде в котором она вызывает меньше всего проблем.
Здесь мы конфигурируем ОпенОфис и его зависимости затем пытаемся скачать все необходимые исходники.
Процесс сборки офиса совсем не быстрый и этим хинтом мы экономим себе время.

Код: Выделить всё

valg# cd /usr/ports/editors/openoffice.org-3
valg# make config-recursive fetch-recursive
На скачивании исходников для openJDK все валиться с ошибкой и просьбой скачать часть архивов руками - скачиваем кладем в

Код: Выделить всё

/usr/ports/distfile

запускаем по новой но уже без конфигурирования

Код: Выделить всё

valg# cd /usr/ports/editors/openoffice.org-3
valg# make fetch-recursive install clean
На этом моменте у нас появляется куча свободного времени - на двухпроцессорном сервере офис собирался около 12 часов.
После установки проверяем запуск офиса в режиме демона

Код: Выделить всё

valg# /usr/local/openoffice.org-3.3.0/openoffice.org3/program/soffice.bin -headless -nofirststartwizard -accept="socket,host=localhost,port=8100;urp;StarOffice.Service"
Если все нормально то в выводе

Код: Выделить всё

valg# sockstat
мы увидим нечто подобное

Код: Выделить всё

USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
root     soffice.bi 53172 5  stream /tmp/OSL_PIPE_0_SingleOfficeIPC_44e0c34da8623980ccf9f8299a62e4fb
root     soffice.bi 53172 15 tcp4   127.0.0.1:8100        *:*
root     soffice.bi 53172 16 tcp4   *:*                   *:*
Если же ничего подобного нет, значит что-то пошло не так, и надо гуглить на тему запуска офиса как демона.
Следующий шаг установка JDK16

Код: Выделить всё

valg# cd /usr/ports/java/jdk16
valg# make fetch-recursive

Здесь нам тоже придется скачать кучу пакетов руками, в общем внимательно читаем что нам пишет вывод make.

Код: Выделить всё

valg# make install clean
Далее ставим и настраиваем MYSQL

Код: Выделить всё

valg# cd /usr/ports/databases/mysql51-server/
valg# make install clean
valg# cd /usr/ports/databases/mysql51-scripts/
valg# make install clean
valg# echo 'mysql_enable="YES"' >> /etc/rc.conf
valg# cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf
В файле my.cnf надо добавить следующие строчки в соответствующие секции

Код: Выделить всё

[client]
default-character-set=utf8

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

[mysql]
default-character-set=utf8
ну и далее стартуем сервер и запускаем постинсталяционный скрипт

Код: Выделить всё

valg# service mysql-server start
valg# /usr/local/bin/mysql_secure_installation 
Тут есть два пути, первый - ничего больше не настраивать, а в дальнейшем в настройках openmeetings указать пароль root для MYSQL и openmeetings сам создаст необходимые ему базы и таблицы, довольно спорный с точки зрения безопасности путь.
И второй - создать все самим. На всякий случай для него команды я тоже приведу

Код: Выделить всё

valg# mysql -p
mysql> CREATE USER 'openmeetings'@'localhost'
 IDENTIFIED BY 'secret_password';
mysql> GRANT USAGE ON *.* TO 'openmeetings'@'localhost'
 IDENTIFIED BY 'secret_password';
mysql> CREATE DATABASE IF NOT EXISTS `openmeetings`;
mysql> GRANT ALL PRIVILEGES ON `openmeetings`.*
 TO 'openmeetings'@'localhost';
как-то так.
Теперь ставим все что нужно для конвертирования документов:

Код: Выделить всё

 
 valg# cd /usr/ports/graphics/swftools
 valg# make install clean
 valg# cd /usr/ports/graphics/ImageMagick
 valg# make install clean
 valg# cd /usr/ports/multimedia/ffmpeg
 valg# make install clean
Описанное выше в общих чертах есть в вики по Openmeetings, сейчас переходим к тому чего в вики нет.
Openmeetings писался явно под Linux и из-за этого во FreeBSD возникают многочисленные мелкие и не очень проблемы.
Первая проблема - пути, хотя на первый взгляд используются относительные пути и даже местами можно их подредактировать, но только местами часть путей жестко прописана в коде и со структурой каталогов FreeBSD не срастается.
Решение - устанавливать Openmeetings в каталог

Код: Выделить всё

/usr/local/opt

Вторая проблема - использование bash, в общем не большая проблема легко решаемая

Код: Выделить всё

valg# cd /usr/ports/shells/bash
valg# make install clean
valg# cp /usr/local/bin/bash /usr/bin/ 
вместо последней строчки можно сделать симлинк.
Третья проблема - UTF-8! И это уже проблема самой FreeBSD, выражается она в нечитаемости русского текста в конвертированных документах и заголовках приглашений (возможно еще где-то вылазит, но эти два места особенно критичны). Причина в том что конвертирование производиться консольными утилитами, а консоль у нас UTF-8 совсем не умеет, по крайней мере в части русского языка. Решение - использовать костыль в виде jfbterm это программа позволяет в консоли отображать юникод, правда со вводом на русском в консоли все совсем плохо.

Код: Выделить всё

valg# cd /usr/ports/sysutils/jfbterm
valg# make -DBATCH install clean
valg# cap_mkdb /usr/share/misc/termcap
Далее файле /usr/local/etc/jfbterm.conf ищем строчку:

Код: Выделить всё

encoding: locale
меняем на

Код: Выделить всё

encoding: UTF-8
потом ищем

Код: Выделить всё

# UTF-8
#encoding.UTF-8: UTF-8,iso10646.1
убираем коментарий со строчки

Код: Выделить всё

encoding.UTF-8: UTF-8,iso10646.1
после этого из консоли

Код: Выделить всё

valg# setenv LANG ru_RU.UTF-8
valg# jfbterm
теперь можно работать с юникодом в консоли, это было описание костыля, далее я еще вернусь к этому моменту.
Забегая вперед для тех кто решит экспериментировать с ночными сборками openmeetings 2.0.0 https://builds.apache.org/job/openmeetings/ рассказываю о еще двух моментах.
Первый, для конвертации документов там используется jodconverter-core-3.0-beta-4 http://jodconverter.googlecode.com/file ... 4-dist.zip и лежать содержимое архива по ссылке выше должно в

Код: Выделить всё

/usr/local/opt/red5/webapps/openmeetings/jodconverter-core-3.0-beta-4
Второе вылазит из первого, те-же жестко прописанные в коде jodconverter пути, а именно, он ищет опенофис в каталоге

Код: Выделить всё

/opt/openoffice.org3
решение простое создаем каталог /opt в корневой директории и делаем симлинк

Код: Выделить всё

valg# ln -s /usr/local/openoffice.org-3.3.0/openoffice.org3 /opt
Ну вроде все необходимое установили, подводные камни разобрали, переходим собственно к установке Openmeetings.
Идем http://openmeetings.googlecode.com/file ... _r4707.zip и забираем архив. Содержимое архива, а именно каталог red5 распаковываем в

Код: Выделить всё

/usr/local/opt

ниже путь и листинг того что должно получиться

Код: Выделить всё

valg# ls /usr/local/opt/red5
boot.jar                license.txt             red5-debug.bat          red5-highperf.sh        red5.bat                webapps
conf                    log                     red5-debug.sh           red5-shutdown.bat       red5.jar                work
lib                     plugins                 red5-highperf.bat       red5-shutdown.sh        red5.sh
поскольку паковали архив явно под виндой права на исполнение со скриптов послетали, это нужно исправить.

Код: Выделить всё

valg# chmod 7444 red5.sh
valg# chmod 7444 red5-shutdown.sh
valg# chmod 7444 red5-debug.sh
valg# chmod 7444 red5-highperf.sh
Далее правим настройки Openmeetings

Код: Выделить всё

valg# cd /usr/local/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/
valg# cp persistence.xml persistence.xml.old
valg# cp mysql_persistence.xml persistence.xml 
В файле persistence.xml прописываем пароль рута от MYSQL (я описываю простой вариант). В поле "Password" вместо ROOTPASSWORD вписываем пароль который установили руту в MYSQL.

Код: Выделить всё

<property name="openjpa.ConnectionProperties"
                                        value="DriverClassName=com.mysql.jdbc.Driver
                                                , Url=jdbc:mysql://localhost:3306/openmeetings?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8&connectionCollation=utf8_general_ci&cachePrepStmts=true&cacheCallableStatements=true&cacheServerConfiguration=true&useLocalSessionState=true&elideSetAutoCommits=true&alwaysSendSetIsolation=false&enableQueryTimeouts=false&prepStmtCacheSize=3000&prepStmtCacheSqlLimit=1000
                                                , MaxActive=100
                                                , MaxWait=10000
                                                , TestOnBorrow=true
                                                , poolPreparedStatements=true
                                                , Username=root
                                                , Password=ROOTPASSWORD"/>
По большому счету на этом все настройки и заканчиваются - можно пробовать запускать.
Для этого логинимся в консоль и делаем следующие:

Код: Выделить всё

valg# setenv LANG ru_RU.UTF-8
valg# jfbterm
valg# cd /usr/local/opt/red5
valg# ./red5.sh
Выжидаем минуты две и из другой консоли проверяем что у нас получилось.

Код: Выделить всё

valg# sockstat
В выводе должны быть следующие строчки:

Код: Выделить всё

USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     java       53043 69 tcp4   *:9999                *:*
root     java       53043 127 tcp4  *:1935                *:*
root     java       53043 272 tcp4  *:5080                *:*
root     java       53043 274 tcp4  *:8088                *:*
Если они есть переходим к следующему этапу, если нет то ждем еще пару минут red5 не очень быстро запускается,если ничего так и не появилось - идем читать логи и гуглить.
В своем любимом браузере набираем

Код: Выделить всё

http://IP_сервера:5080/openmeetings/install 
и попадаем на страничку первоначальной настройки. Соглашаемся приступить к Step 1 и дальше просто заполняем необходимые поля, по окончании нажимаем Install внизу странички и ждем несколько минут, пока не появиться приглашение войти в программу - можно кликнуть по ссылке, а можно просто в браузере набрать

Код: Выделить всё

http://IP_сервера:5080/openmeetings/
Собственно все, на этом установка закончена. Остается решить проблему с автозапуском всего этого хозяйства при перезагрузке.
Для работы серверу требуються TCP порты 1935, 5080, 8088.
Работает Openmeetings вполне стабильно, нареканий пока особо не было. Из крупных минусов не хочет воспринимать документы с расширением .TXT как это вылечить способа я не нашел. С версией 2.0.0 таких проблем нет, зато есть куча других :)

Надеюсь кому нибудь эта сумбурная статья поможет.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/