На данный момент актуальная версия openmeetings_1_9_1_r4707, её и будем ставить.
Как понятно из заголовка ставить будем на FreeBSD 9, в сети есть несколько статей по установке но все они или не полны или относятся к устаревшим версиям. Система свеже установлена, первичная настройка произведена (сеть, обновление портов и т.п.) - эту часть расписывать не буду в сети мануалов хватает. Переходим собственно к установке, для начала надо установить весь необходимый дополнительный софт.
Начинаем с установки openoffice.org-3, лирическое отступление, последовательность установки подобрана по ходу десятка экспериментов и я даю её в том виде в котором она вызывает меньше всего проблем.
Здесь мы конфигурируем ОпенОфис и его зависимости затем пытаемся скачать все необходимые исходники.
Процесс сборки офиса совсем не быстрый и этим хинтом мы экономим себе время.
Код: Выделить всё
valg# cd /usr/ports/editors/openoffice.org-3
valg# make config-recursive fetch-recursive
Код: Выделить всё
/usr/ports/distfile
запускаем по новой но уже без конфигурирования
Код: Выделить всё
valg# cd /usr/ports/editors/openoffice.org-3
valg# make fetch-recursive install clean
После установки проверяем запуск офиса в режиме демона
Код: Выделить всё
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
Код: Выделить всё
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
Код: Выделить всё
[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
И второй - создать все самим. На всякий случай для него команды я тоже приведу
Код: Выделить всё
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 писался явно под 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
Код: Выделить всё
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
Код: Выделить всё
/opt/openoffice.org3
Код: Выделить всё
valg# ln -s /usr/local/openoffice.org-3.3.0/openoffice.org3 /opt
Идем 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
Код: Выделить всё
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
Код: Выделить всё
<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 *:*
В своем любимом браузере набираем
Код: Выделить всё
http://IP_сервера:5080/openmeetings/install
Код: Выделить всё
http://IP_сервера:5080/openmeetings/
Для работы серверу требуються TCP порты 1935, 5080, 8088.
Работает Openmeetings вполне стабильно, нареканий пока особо не было. Из крупных минусов не хочет воспринимать документы с расширением .TXT как это вылечить способа я не нашел. С версией 2.0.0 таких проблем нет, зато есть куча других
Надеюсь кому нибудь эта сумбурная статья поможет.