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
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
OpenMeetings用MySQLモジュールを追加します。
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/
以上、正常に表示されたら完了です。