OpenMeetings

ずいぶん以前に、年頭の目標に「ワンワードでGoogle検索のTOPページに載る」サイトを作ることをあげ、4年連続でその目標を達成してきました。今回のチャレンジも何かのキーワードを入れると検索TOPページに上ることでパン屋さんサイトのランクを上げようという魂胆です。

そこで、今回はテーマを離れて検索にひっかかりそうなタイトルにしました。

Apache OpenMeetings Project – Homeオープンソーステレビ会議/Web配信システムで、先日職場のサーバにインストールしました。今年が10年目ということで、Apacheのプロジェクトということと相俟って根拠のない安定感を覚えます。

OpenMeetingsには、仮想会議室を必要数作成することができ、物理的な場所は特定しないため、PC・Webカメラ・マイクが確保できればいくつでも同時に会議を行うことが可能です。ただ、外部からのアクセスを許可するには、十分なセキュリティの担保が必要です。

仮想会議室には、ライブ映像配信のほかホワイトボード、チャット、投票機能などがあり、それぞれを有効・無効化して会議室の目的に合わせて自由にレイアウトできます。

OpenMeetingsには録画機能があり、ライブ映像やホワイトボード画面などを保存することが可能です。録画した映像は、パブリックフォルダに置けばストリーミング配信機能により後で閲覧することができるようになります。

ホワイトボードは、ペンツールや図形ツールで発信者が書き込むことで、会議参加者画面に同期して表示させることができます。また、パワーポイントを事前にアップロードしておけば、ファイルフォルダからホワイトボードへドロップすることでパワーポイントの画像として全員が参照できるようになります。この画像にも描画ツールで書き込むことができます。ただし、パワーポイントそのものとは異なるため、効果や映像リンクなど使えないなど制限があり、あらかじめ原稿の確認が必要です。

仮想サーバ

職場ではVMwareを使っていますので、まず仮想サーバを作成します。

 ESXi6.5仮想マシン
 OS種別:Linux
 OS名:CentOS7(64ビット)
 
 メモリ:4096MB
 ストレージ容量:100GB
 
 IPアドレス:172.16.1.100(ここは適当に書いてます)

CentOS7については【初心者でもわかる】Linux CentOSのインストール方法まとめで確認しながら行います。

インストール直後はyum updateの実行で最新化、さらにオリジナルのリポジトリで得られないソフトウェアバージョンを得るためにEPELとRemiを追加します。

 sudo yum -y install epel-release
 sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

ここまではいつもの手順で、迷うこともないでしょう。

OpenMeetingsインストール

ここでは、CentOS7の場合について書いてあります。インストールにはroot権限が必要なので、sudoを使うより、あらかじめrootユーザになってから作業を進めたほうが効率的でしょう。

sudo su -

SELinuxがインストールを阻害する恐れがあるため、permissiveに変更します。

vi /etc/selinux/config 
 
SELINUX=permissive  # 元はenforcing

SELINUXは面倒なので最初からdisabledにする方もいますが、それに慣れるよりSELINUXに慣れた方が得策です。今回はイントラ限定としていますが、テレビ会議システムですのでインターネットでの会議を求められる可能性は大いに有り得ます。そこで、SELINUXが大いに役立つというわけです。

EPEL、remiに加えて、OpenMeetingsではElRepoとNuxを利用するのでこれをリポジトリに追加して利用可能にしておきます。

 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
 rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/ nux-dextop-release-0-5.el7.nux.noarch.rpm

のちほどAdobe Flash Playerをインストールするため、これを利用可能にしておきます。

rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux

以上、設定したインストール環境を最新化するために、再度yum updateを実行します。

yum update -y

OpenMessagings用モジュール追加

Oracle Javaインストール

Oracle Javaを利用するため、これをインストールします。

wget --no-cookies --no-check-certificate --header  "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm(一行で書く)

rpm -ivh jdk-8u131-linux-x64.rpm

CentOSでは、Open Javaが自動的に入っていますので、Oracle Javaを優先するようにします。

update-alternatives --config java
 (Oracle Javaを番号で選択)
LibreOfficeインストール

LibreOfficeのPDF変換モジュールを利用するので、LibreOfficeをインストールします。

yum -y install libreoffice libreoffice-headless
その他環境構築用ライブラリ

gccなど環境構築に必要なパッケージをまとめてインストールします。

yum install -y libjpeg libjpeg-devel ghostscript freetype freetype-devel  unzip gcc gcc-c++ ncurses ncurses-devel make zlib zlib-devel libtool bison bison-devel openssl-devel bzip2 bzip2-devel fileroller git autoconf automake pkgconfig tomcat-native nmap vlc(一行で書く)
ImageMagick

各種画像形式(jpg,png,gif)を取り扱うためにImageMagickをインストールします。

yum install -y ImageMagick giflib giflib-devel giflib-utils
Sox

音声を取り扱うためにSoxをインストールします。

 cd /opt
 wget http://sourceforge.net/projects/sox/files/sox/14.4.2/sox-14.4.2.tar.gz
 tar xzvf sox-14.4.2.tar.gz
 cd /opt/sox-14.4.2
 ./configure
 make && make install
Swftool

Flashスクリプトを取り扱うため、Swftoolをインストール

cd /opt
wget http://www.swftools.org/swftools-2013-04-09-1007.tar.gz
tar xzvf swftools-2013-04-09-1007.tar.gz
cd /opt/swftools-2013-04-09-1007
./configure --libdir=/usr/lib --bindir=/usr/bin 
make
make install
cd /opt
Flash Player

FlashPlayerをインストール

yum install -y flash-plugin
FFmpeg

OpenMeetingsのキモであるFFmpegのインストールをします。
先に、FFmpegコンパイル用のツールを一括してインストールします。

yum install -y glibc alsa-lib-devel faac faac-devel faad2 faad2-devel  gsm gsm-devel imlib2 imlib2-devel lame-devel vorbis-tools theora-tools libvpx-devel vlc autoconf automake cmake freetypedevel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel curl(一行で書く)

OpenMeetingsではFFMpegのインストール手順を自動化したスクリプトをWebに公開してありますので、これを取得して実行します。

wget https://cwiki.apache.org/confluence/download/attachments/27838216/ffmpeg-centos2.sh
chmod +x ffmpeg-centos2.sh
./ffmpeg-centos2.sh

MariaDBインストール

OpenMeetings用にMariaDBをインストールします。もし、既にインストール済みならこの手順は省いてください。

yum install -y mariadb-server

稼働させる前に、utf8による日本語対応を設定しておきます。

vi /etc/my.cnf
 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
character-set-server=utf8
 
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
 
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
 
[client]
default-character-set=utf8

mariaDBの起動をします。

systemctl start mariadb.service

ここで、再起動時に自動起動するように設定しておきます。

systemctl enable mariadb.service
 Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service
 to /usr/lib/systemd/system/mariadb.service.

mariaDBの初期化を行います。

 /usr/bin/mysql_secure_installation

さまざまメッセージが表示されますが、すべてEnter(デフォルト)で処理を進めてよいでしょう。パスワードはそれなりに。

OpenMeetings用のデータベースを作成する。データベース名はgenomとして説明していますが、なんでも良いです。

 mysql -uroot -p

 CREATE DATABASE genom DEFAULT CHARACTER SET 'utf8';

さらにgenom用のユーザgenomを作成してアクセス権限を与えます。パスワードもgenomとしています。

GRANT ALL PRIVILEGES ON genom.* TO 'genom'@'%' IDENTIFIED BY 'genom';

OpenMeetingsインストール

まず、OpenMeetingsのインストール用ディレクトリを/opt配下に作成します。

mkdir /opt/red5404
cd /opt/red5404

インストールモジュールをダウンロードします。数字部分がバージョンですので、必要に応じて最新安定バージョンを確認してダウンロードしてください。

 wget http://apache.miloslavbrada.cz/openmeetings/4.0.4/bin/apache-openmeetings-4.0.4.tar.gz
 
 tar zxvf apache-openmeetings-4.0.4.tar.gz
 
 mv apache-openmeetings-4.0.4.tar.gz /opt

OpenMeetingsMySQLモジュールを追加します。

cd /opt
wget http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar
 
cp /opt/mysql-connector-java-5.1.39.jar /opt/red5404/webapps/openmeetings/WEB-INF/lib

モジュールに含まれているデータベースアクセス用のxmlファイルの設定を調整します。

 vi /opt/red5404/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml
  
 Url=jdbc:mysql://localhost:3306/genom?   <<------ここの部分
 
 , Username=genom   <<----ここの部分
 
 , Password=genom" />  <<------ここの部分

修正が完了したら、このファイルのパーミッションを変更します。

chmod 640 /opt/red5404/webapps/openmeetings/WEB-INF/classes/METAINF/mysql_persistence.xml
起動スクリプトの作成

スクリプトOpenMeetingsのサイトからダウンロードします。

 cd /opt
 wget https://cwiki.apache.org/confluence/download/attachments/27838216/red5-2

スクリプトをシステム起動用デーモンに保存します。

cp red5-2 /etc/init.d/

スクリプトに実行モードを追加します。

chmod +x /etc/init.d/red5-2

スクリプトにあるインストール場所の情報を実際に合わせて修正します。

 vi /etc/init.d/red5-2
 
 export RED5_HOME=/opt/red5404   <<-----ここを変更
OpenMeetingsの起動

OpenMeetingsは5080ポートと1935ポートを利用しており、端末からのこのポートへのアクセスを許可します。

firewall-cmd --permanent --zone public --add-port 5080/tcp
firewall-cmd --permanent --zone public --add-port 1935/tcp
firewall-cmd --reload

変更を反映させるためにmariaDBの再起動をします。

systemctl restart mariadb.service

これでやっとOpenMeetingsの準備が完了しました。早速、OpenMeetingsの起動スクリプトを実行してみましょう。

/etc/init.d/red5-2 start

完全に起動するまで3分以上かかりますので、コンソールに出力されるlogを確認してください。

ブラウザで、次のURLにアクセスしてみます。

 http://172.16.200.80:5080/openmeetings/

以上、正常に表示されたら完了です。