オンライン会議システム構築の問い合わせが何件かあったのですが、ASPを使うしかないのかなぁと思っていたら、隣席の同僚がこんなのあるよって、教えてくれたのが、Apache OpenMeetingsです。
リサーチのため早速インストール開始。。。。そこから苦闘3日間、やっと一通りの機能が使えるようになったので、二度と同じ苦労しないように備忘録として書いておきます。
自分向けなので、それほど親切に説明していません。
対象者は最低Linux環境でコンパイルインストールしたり、MySQLのインストールから設定まで経験があったり、viが使える必要があります。
ほとんどの情報は以下のサイトを参考にさせていただきました:
けんさんのIT知識 http://kyka.sakura.ne.jp/it/archives/104
OpenMeetingsインストール http://openmeetings.jp/OpenMeetings%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
(ありがとうございます)
けんさんのIT知識では、インストールはうまくいくのですが、Office系のファイルや動画のアップロード、録画の部分が未検証のようで、実際動いていませんでした。
WikiのほうはOpenMeetings1.9を対象にしているらしく、このとおりやってもインストールすらうまくいかなかったり、、関連ソフトを徹底してRPMで入れようとしているので、途中で依存関係の無限ループに陥ってしまいます。参考程度にしてください。
ちなみに私のモットーは、「yumでだめならソースから。」
【全体の流れ】
全部の機能を利用できるようにするには結構やることが多いです。
相当暇か、切羽詰ってるときでないとやれないです。
コーヒーでも飲みながら腰を落ち着けてやってください。
- OSインストール(CentOS6.4、CentOS5.9)
- MySQLのインストール、設定(connecterも必要)
- JDKのインストール
- ImageMagickのインストール
- ghostcriptのインストール
- SWFToolsのインストール
- libreoffice3.6のインストール
- jodconverterのインストール
- lameのインストール
- FFMpegのインストール
- soxのインストール
- FWの設定
- OpenMeetingsのインストール
- OpenMeetingsの設定
- red5.shの起動
- 各種パスの設定(install画面から)
【具体的な手順】
以降手順16まで一気に説明していきます。
【1】CentOS6/5のインストール
Webサーバとしてインストールします。
Javaは入れないでください。あとでOracleからSun Javaをダウンロードして入れます。
インストール時にJavaのインストールオプションを外しても、依存関係で勝手に入る場合があります。
インストール後Javaの存在を確認してアンインストールしてください。
Office系はインストールしないでください。もうすでにインストールされている場合はOpenOffice3.3やLibreoffice3.4では不具合が出ているようですので、削除してください。
(https://code.google.com/p/jodconverter/issues/detail?id=102&can=1&q=errorCode%3A%202074&colspec=ID%20Type%20Status%20Priority%20Version%20Target%20Owner%20Summary)
MySQLとMySQLサーバも同時にインストールしておいてください。
【2】MySQL設定
もし、OSをインストールするときにMySQLをインストールしていなければ、MySQLのサーバとクライアントをインストールしてください。MySQL以外でも使えるDBはあります。前述のOpenMeetings Wikiで確認してください。
ここではインストールや新規DBの作り方は省略します。
1)/etc/my.cnfの修正
下線部を追加してください。普通Webアプリを作る場合はプログラム側で文字コードを指定をして文字化けがおきないようにしていますが、たぶんこれは念のためだと思われます。
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 default-character-set=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid default-character-set=utf8 [mysql] default-character-set=utf8
2)openmeetingsというDBを作る
MySQLにopenmeetingsという名前のDBを作ってください。付属のDB接続用設定ファイルのデフォルトがそうなので、とにかくopenmeetingsです。
デフォルトではrootユーザのパスワードなしでコネクトしますので、特にユーザ設定やGRANTは必要ないですが、心配な場合はユーザ設定をして、OpenMeetingsをインストールした後、あとで説明するpersistence.xmlという設定ファイルを書き換えてください。
【3】JDKのインストール
まず、勝手にopen-javaがインストールされていたらアンインストールしてください。
Oracleが配布しているSun Javaをダウンロードしてきます。
CentOS5とJDK1.7の組み合わせでは動きませんでした。(もしかしたらほかの要因かもしれませんが)
CentOS6ではjdk-7u25-linux-i586.rpmでも問題なく動いてます。
ちなみに私はjdk-6u37-linux-i586-rpm.binを使いました。
http://www.oracle.com/technetwork/java/javase/downloads/jdk6u37-downloads-1859587.html
ダウンロードしたら、ファイルに実行権限を与えて、実行してください。
自動的にインストールされます。
インストールが終わったら
$JAVA_HOMEを設定してください。
以下を一番下に追加してください。
export JAVA_HOME=/usr/java/default export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
その後、
で環境変数を反映させます。
【4】ImageMagickのインストール
これは普通にyumで入ります。
【5】ghostscriptのインストール
こちらもyumで入ります。もしかしたらすでにOSと一緒に入っているかも知れません。
【6】SWFToolsのインストール
swftools-0.9.2.tar.gzをダウンロードしてインストールします。
wget http://www.swftools.org/swftools-0.9.2.tar.gz
tar xfvz swftools-0.9.2.tar.gz
cd swftools-0.9.2
./configure
make
Makefileの修正
ここで、そのままmake installすると、途中エラーでとまってしまうので、Makefileを修正します。
swf/Makefileで、以下の部分(ここではコメントアウトした)を修正してください。
要は、rmのコマンドで-oオプションは間違ってるよってエラーが出てしまいます。
#rm -f $(pkgdatadir)/swfs/defaultviewer.swf -o -L $(pkgdatadir)/swfs/default_viewer.swf rm -f $(pkgdatadir)/swfs/default_viewer.swf $(LN_S) $(pkgdatadir)/swfs/simple_viewer.swf $(pkgdatadir)/swfs/default_viewer.swf #rm -f $(pkgdatadir)/swfs/default_loader.swf -o -L $(pkgdatadir)/swfs/default_loader.swf rm -f $(pkgdatadir)/swfs/default_loader.swf
そして、
【7】libreoffice3.6のインストール
CentOS6.4でyumでlibreofficeをインストールすると、バージョン3.3が入ってきます。これと、この後インストールするjodconverter-core-3.0-beta-4と相性が悪いらしく、OpenMeetingsがうまくインストールができても、使用中にOffice系のファイルからPDFに変換するときにエラーを吐いてとまってしまいます。
そこで、libreoffice3.6を入れます。3.5でもいいですが、見つからなかったので。
ファイルはhttps://www.libreoffice.org/download/?type=rpm-x86&lang=ja&version=3.6.6からダウンロードできますが、情報が古くなってしまったときは、www.libreoffice.orgにアクセスして探してください。ま、古くなるのはこれだけじゃないでしょうが。
このページにあるMain installer、Translated user interface、LibreOffice built-in helpの3ファイルすべてダウンロードしてください。適当なところでtarファイルを解凍して、それぞれのディレクトリのRPMSのディレクトリに移動して、
でインストールできます。
libreoffice3.6は/opt/libreoffice3.6にインストールされますが、jodconverter-core-3.0-beta-4はデフォルトで、
- /opt/openoffice.org3
- /opt/libreoffice
- /usr/lib/openoffice
- /usr/lib/libreoffice
のパスを探します。管理画面のグローバル設定で変更可能ですが、コマンドラインで試験する時のために、/opt/libreofficeから/opt/lireoffice3.6へのシンボリックリンクを作っておいたほうが良いと思います。
【8】jodconverter-core-3.0-beta-4のインストール
https://code.google.com/p/jodconverter/downloads/detail?name=jodconverter-core-3.0-beta-4-dist.zipからダウンロードしてください。とりあえず今のところ最新版です。
ダウンロードしたら、zipを解凍し、できたディレクトリごと適当なところに保存してください。
私は/usr/lib/以下に入れました。
【9】lameのインストール
これをyumで入れるにはRPMForgeのリポジトリを追加する必要があります。
その手間を考えたら、ソースをダウンロードしてmakeしたほうが楽ですね。
http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download
から、ダウンロードして、tarを解凍したら、解凍されたディレクトリに入って、
./configure
make
make install
でインストールされます。
yumで入れる場合は、lameはffmpegをコンパイルするときに必要になるので、lame-develを入れておいたほうが良いと思います。
【10】ffmpegのインストール
これは前述のlameを利用し、libm3lameを有効にしてインストールしないと、動画変換のときにエラーが出てしまいます。
yumで入れたものはこれが有効になってないとのこと。
http://ffmpeg.org/releases/ffmpeg-1.2.1.tar.gzからダウンロードして適当なところで解凍してください。
lameを有効にして、yasmを無効にしますので、configureオプションに注意してください。
./configure –enable-libmp3lame –disable-yasm
make
make install
【11】soxのインストール
これはyumでインストールして大丈夫です。
【12】FWの設定
ここで、OpenMeetingsをインストールする前に、OpenMeetingsが使用するポート5080、1935、8088、4445を空けておきましょう。
/etc/sysconfig/iptablesに以下を記述
-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 1935 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 4445 -j ACCEPT
【13】OpenMeetings2.1のインストール
こちらからtarかzipのバイナリファイルをダウンロードしてください。
http://openmeetings.apache.org/downloads.html
後述の起動スクリプトではデフォルトのパスが/usr/local/openmeetingsになっているため、まず、/usr/local/にopenmeetingsディレクトリを作りそこに移動してから、ファイルをダウンロードします。
mkdir /usr/local/openmeetings cd /usr/local/openmeetings/ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/openmeetings/2.1.0/bin/apache-openmeetings-2.1.0.tar.gz tar xvfz apache-openmeetings-2.1.0.tar.gz
解凍したら、/usr/local/に移動して、openmeetings以下すべてのオーナーをopenmeetingsに変えてください。
これは、以下の起動スクリプトの実行ユーザがopenmeetingsだからです。ここが違うとファイルのアップロード機能がうまく動きません。
chown -R openmeetings:openmeetings ./openmeetings/
/etc/rc.d/init.d/にopenmeetingsという起動ファイルを作ります。内容は以下のとおり。
#! /bin/sh # chkconfig: 345 95 90 # description: Open Source Flash Server # processname: java # Author: OPEN-ART <info@open-art.jp> # /etc/init.d/openmeetings . /etc/rc.d/init.d/functions NAME=openmeetings RED5_DIR=/usr/local/$NAME START_DAEMON=$RED5_DIR/red5.sh STOP_DAEMON=$RED5_DIR/red5-shutdown.sh # OpenMeetingsを'openmeetings'ユーザ以外で稼動させる必要がある場合は、 # 次のRUN_USER変数にそのユーザIDをセットしてください。 # ex.) RUN_USER=root RUN_USER=$NAME PIDFILE=/var/run/$NAME.pid LOGFILE=/var/log/$NAME.log test -x $START_DAEMON || exit 5 start() { echo -n "Starting OpenMeetings Service:" cd $RED5_DIR su -s /bin/bash -c "$START_DAEMON &" $RUN_USER >> $LOGFILE 2>&1 RETVAL=$? echo [ $RETVAL = 0 ] && touch ${PIDFILE} sleep 2 return $RETVAL } stop() { echo -n "Shutting down OpenMeetings:" cd $RED5_DIR su -s /bin/bash -c "$STOP_DAEMON &" $RUN_USER >> $LOGFILE 2>&1 RETVAL=$? echo [ $RETVAL = 0 ] && rm -f ${PIDFILE} sleep 2 return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; esac
作ったスクリプトに実行権を与えます。
そしてサービスに追加します。
chkconfig openmeetings on
【14】OpenMeetingsの設定
設定するファイルは2つあります。
1)/usr/local/openmeetings/conf/red5.properties
このファイルの0.0.0.0となっている部分と、localhostとなっている部分を実際のIPアドレスに変えてください。
グローバルとローカルIP両方持っているサーバではローカルIPを指定しても結構です。
ここにFQDを指定する必要はなく、サーバにブラウザからドメインでアクセスしても問題は起きません。
127.0.0.1となっているところは変更しないでください。
2)/usr/local/openmeetings/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xmlの変更
MySQL用の設定ファイルに変更します。
もともとあるpersistence.xmlを削除またはリネームし、mysql_persistence.xmlをpersistence.xmlにリネームしてください。
mv persistence.xml persistence.xml.orig
cp mysql_persistence.xml persistence.xml
もし、MySQLのrootパスワードを設定していなければ、これだけでつながります。
もしユーザ指定する場合はpersistence.xmlの
, Username=root
, Password=” />
の部分にユーザとパスワードを設定してください。
また、 Url=jdbc:mysql://localhost:3306/openmeetings?
の部分で、ほかのDBや、DBのホスト、ポート、DB名も指定できます。
コネクタのインストール
http://dev.mysql.com/downloads/connector/j/
からMySQLコネクタをダウンロードして、ライブラリディレクトリに保存してください。
(OpenMeetings1.9には最初から付属してた様で必要なかったのですが、2.1から別途必要になってます)
ダウンロードしたら
cd mysql-connector-java-5.1.25
cp mysql-connector-java-5.1.25-bin.jar /usr/local/openmeetings/webapps/openmeetings/WEB-INF/lib/
(mvでも良いですが。。。)
【15】red5.shの起動
で起動し、
http://[サーバアドレス]:5080/openmeetings/install
へアクセスしてください。
ここで、ブラウザに何も表示されない場合は、起動に失敗しています。
/usr/local/openmeetings/red5.shを直接起動してみて、どういうエラーが表示されるか見てください。
もしIllegalStateException: Cannot run without an instance id.というエラーでとまってしまう場合は、サーバのホスト名が正しく設定されていない場合があるようです。最悪、hostnameコマンドでIPアドレスを設定してみてください。
【16】各種パスの設定(install画面から)
ここまでくればあと一息です。
http:[サーバアドレス]:5080/openmeetings/install
にアクセスしてください。
画像1
画像1のような画面が表示されます。中には「いまさら?」みたいな情報がかかれてますので、そのままContinue with step 1をクリックしてください。
画像2
すぐ画像2の画面が表示されます。すべてを入れる必要はありません。ここで入れなくても管理画面の「グローバル設定」で変更できますが、UsernameとUserpassは入れないとログインできません。では中身を見ていきます。
Userdata
管理者のユーザ名、パスワード、メールアドレス、タイムゾーンを設定します。
インストール時に登録していたほうが良いでしょう。
Organization(Domains)
組織名です。ユーザは必ずどこかの組織に属していなければならず、ここで入力するのは最初の1つ目です。上記ユーザはここで設定する組織に属することになりますが、あとで変更可能です。所属も管理画面から追加可能です。
Configuration
ここはメール関係以外はデフォルトで大丈夫ですが、ひとつひとつ解説すると:
Allow self-registerring(allwo_frontend_register)
閲覧者が自分でユーザ登録をできるようにするかどうか
Send Email to new registered Users(sendEmailAtRegister)
ユーザ登録後ユーザにIDとパスワードをメールで通知するか
New Users need to verify their Email(sendEmailWithVerificationCode)
ユーザ登録メールでユーザ確認コードを送るか
Default Rooms of all types will be created
インストール時にすべてのタイプの会議室を作るか
Mail-referer(system_email_address)
システムの送信元メールアドレス
SMTP-Server(smtp_server)
まま
SMTP-Server Port(default Smtp-Server Port is 25)
25番なら設定不要
SMTP-Username(email_username)
送信用認証が必要なSMTPサーバならそのユーザ名
SMTP-Userpass(email_userpass)
送信用認証が必要なSMTPサーバならそのパスワード
Enable TLS in Mail Server Auth
TSL暗号が必要か
Set inviter’s email address as ReplyTo in email invitations
招待者のメールアドレスを返信アドレスに設定するか
Default Language
デフォルト言語。
Default Font for Export [default_export_font]
エキスポート時のフォント
Converters
Officeファイルや動画の変換を行うプログラムのパスなどをここで設定します。
SWFTools Zoom
解像度を入れてください。デフォルトは72dpiです。
SWFTools JPEG Quality
JPGの画像品質です。0-100の間で入れてください。
SWFTools Path
SWFToolsへのパスを指定します。コンソールからwhich pdf2swfと打って表示されるパスを書いてください。
which pdf2swf
/usr/local/bin/pdf2swf
この場合は/usr/local/binを入力してください。
ImageMagick Path
ImageMagickのパスを入力します。コンソールからwhich convertと打って表示されるパスを書いてください。which imagemagickではないので、ご注意を。
which convert
/usr/bin/convert
この場合は、/usr/binを入力してください。
FFMPEG path
コンソールからwhich ffmpegと打って表示されるパスを入力してください。
which ffmpeg
/usr/local/bin/ffmpeg
この場合は/usr/local/binです。
SoX Path
which soxとうって表示されるパスを入力してください。
which sox
/usr/bin/sox
この場合は、/usr/binです。
JOD Path
8)でjodconverterをインストールしたパスを入力してください。
この説明どおりに入れていれば/usr/lib/に入れてますので、ここでは
/usr/lib/jodconverter-core-3.0-beta-4/lib
と入力します。
OpenOffice/LibreOffice Path for jodconverter
【7】でインストールしたLibreOfficeのインストール先を指定します。
この説明どおりに入れていれば、/opt/libreoffice、/opt/libreoffice3.6どちらでも結構です。
以下はデフォルトのままで結構です。
入力が終わったら、INSTALLボタンをクリックしてください。
繰り返しになりますが、管理画面の「グローバル設定」で変更できますので、それほど入力内容に気を使わなくても結構です。
完了画面
これで一通りのインストールは終わりました。
http://[サーバアドレス]:5080/へアクセスすると以下のようなログイン画面が表示されます。
【ありがちなエラー】
(1)/etc/rc.d/init.d/openmeetings start
と打っても何も起きない。
rootになって、/usr/local/openmeetings/red5.shを直接起動してみて、どんなエラーが起きているかを確認してください。
・Javaのバージョンが1.6以上か?
・ホスト名は設定されているか?
(2)http://サーバ名:5080/にアクセスすると、画面にプログレスバーが表示されるが、t3という表示で止まってしまう。
・まず、インストールは完了したか確認してください。
・【14】の(1)で設定したファイルのIP指定が残らずされているかを確認してください。修正後はOpenMeetingsの再起動、ブラウザのキャッシュクリアが必要になります。
(3)画像やファイルのアップロードをするとHTTP: 500が出て止まってしまう。
/etc/rc.d/init.d/openmeetings で起動すると、実行ユーザはopenmeetingsになっています。もう一度、/usr/local/openmeetins/
以下のディレクトリ、ファイル類がすべてopenmeetingsユーザになっているか確認してください。念のため/usr/loca/
に移動し、
chown -R openmeetings:openmeetings ./openmeetings/
と打ってみてください。
OpenMeetingsの再起動が必要です。
(4)Office系のファイルをアップロードするとエラーが表示されて止まってしまう。
・LibreOfficeのバージョンが3.5以上か確認してください。
・LibreOfficeのパスが/opt/libreoffice3.5と指定されているかを確認してください。
(5)動画をアップロードするとエラーが表示されて止まってしまう。
・ffmpegをインストールするときに –enable-libmp3lame オプションを付けたか確認してください。
(6)動画をアップロードする時、「ホワイトボードに直接ロードする」にチェックを入れていても、アップロードはされるが、ホワイトボードに表示されない。
・バグかもしれません。ちゃんとアップロードされていれば、「ファイル」タブをクリックすると、リストには入ってますので、それを選択してください。会議中にリアルタイムで動画をアップロードすることはあまり実用的じゃないですしね。
–以上です–
CentOS 6.3でOpenMeetingsのインストールを行う際、参考にさせて頂きました。
と申しましても、本当にほぼ書いて下ったままやっただけなのですが。
お陰さまで無事完了し、動作確認中です。
以前から評価しなければならないと言うのはありつつ、参考サイトなど見ても玉砕しまくっていたので、本当に助かりました
あまり親切には説明していないと仰っていますが、ポイントポイントではまりそうな処には予防線を張ってくださっており、トラブル発生時(hostsの記述がいい加減だったせいで中々立ちあがらなかった)も解決の糸口がつかめるようにしてくださっているので、本当の意味で親切だと感じました
有難うございました。
コメントありがとうございます。
何度もVMのインストールからやり直した甲斐がありました。
山本と申します。
openmeetings 2.0.0を使用中なのですが、2.1系でバックアップファイルからのimportがうまくいかずアップグレードできずにいます。
本家のMLでもウダウダやっている用ですが、根本的な解決には至っておらず。。
ユーザや会議室を作り直すのは大変なので手詰まり状態です。
clean installなら、2.1.1でも動いたんですけどね。
コメントありがとうございます。
サブバージョン間でも互換性ないんですか。
フリーでここまでできるのは有難いですが、インストールの手間を見てもまだ完成されたソフトではないという感じはいたしました。
参考になる情報ありがとうございました。
インストールの参考にさせていただきました。
うまく起動するようになりましたが、1時間くらいログインしていると、動画が固まってしまいます。(自分自身はサクサク動いている。他者がみるとフリーズ)セッションタイムアウトかと思い、色々いじってみましたが改善されませんでした。
改善方法を知っている方がいれば、是非教えていただきたく思い、書き込みさせていただきました。
バージョンは2と3どちらも試してみましたが同じでした。
(2.2.0)(3.0.1)
教えていただける方がおりましたら、よろしくお願い致します。
私どもではぴたりの現象は発生していないのですが、メモリがらみのような気がします。結構メモリリークしてるようなので
ビデオの「同期」を押したときどの様な挙動になるでしょうか?
サーバやクライアントの環境(OSやスペックブラウザなど)を書き添えられると、手掛かりが増えるのではないでしょうか。俺もーという方もおられるかもしれませんし
インストールの参考にさせていただきました。
バージョン 3.0.3-RELEASE
リビジョン 1621852
ビルド日時 2-September-2014
これでなんとかcentos6.xにインストール完了しました。
社長からの命題で、利用者のTV電話・会議システムを作る、ことが目的ですが、当初はなかったスマホ・タブレットでも使えるようにしろと・・・。
flashの壁を乗り越えるにはどうしたらいいのか、毎日ググり厨です。
red5をいじればなんとかなるでしょうか・・・。