RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Установка Openmeetings 1.9.1 на FreeBSD 9, шаг за шагом [2012]
Возникла необходимость организации видеоконференций, причем основным условием было отсутствие на стороне клиента необходимости установки дополнительного ПО. После коротких поисков в сети было найдено приемлемое решение 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 часов.
После установки проверяем запуск офиса в режиме демона
В файле 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
valg# cd /usr/ports/audio/sox
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 (живет здесь) рассказываю о еще двух моментах.
Первый, для конвертации документов там используется jodconverter-core-3.0-beta-4 живет здесь и лежать содержимое архива по ссылке выше должно в
поскольку паковали архив явно под виндой права на исполнение со скриптов послетали, это нужно исправить.
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.
Если они есть переходим к следующему этапу, если нет то ждем еще пару минут red5 не очень быстро запускается, если ничего так и не появилось — идем читать логи и гуглить.
В своем любимом браузере набираем
http://IP_сервера:5080/openmeetings/install
и попадаем на страничку первоначальной настройки. Соглашаемся приступить к Step 1 и дальше просто заполняем необходимые поля, по окончании нажимаем Install внизу странички и ждем несколько минут, пока не появиться приглашение войти в программу — можно кликнуть по ссылке, а можно просто в браузере набрать
http://IP_сервера:5080/openmeetings/
Для работы серверу требуються TCP порты 1935, 5080, 8088.
Работает Openmeetings вполне стабильно, нареканий пока особо не было. Из крупных минусов не хочет воспринимать документы с расширением .TXT как это вылечить способа я не нашел. С версией 2.0.0 таких проблем нет, зато есть куча других :)
Собственно все, на этом установка закончена. Остается решить проблему с автозапуском всего этого хозяйства при перезагрузке и придумать как это все запускать от не привелегированного пользователя. Поскольку у нас сервер запускается по требованию эти проблемы не сильно актуальны, но решать их все таки надо. Буду благодарен если кто подскажет решение.