インストール手順 (Linux RHEL7系)

RedHat Enterprise Linux 7 系でのインストール手順をご説明します。

概要

Boltz パッケージについて

Boltz パッケージは、送信エンジン BoltzEngine と、 BoltzEngineを利用したリファレンス実装 BoltzMessenger の2つが含まれます。
BoltzEngine 単体ではメッセージ配信しか行いませんので、メッセージの内容やデバイスの管理はアプリごとに作成する必要があります。

BoltzMessengerBoltzEngine を使ったサービスのリファレンス実装です。 BoltzMessenger には、管理画面、iOS アプリ、Android アプリ、API が含まれます。
BoltzMessenger のソースコードはお渡ししますので、そのままでも使っていただけますし、カスタマイズしていただいても構いません。(カスタマイズされた部分はサポート対象外となります)

このドキュメントについて

この文書では、Linux 版の BoltzMessenger を動作させるまでの手順を解説します。
インストールする RPM パッケージは6つあります。

パッケージ 通称 役割
boltz-engine-(バージョン).el7.x86_64.rpm BoltzEngine BoltzEngine 本体です。
boltz-messenger-gateway-(バージョン).el7.x86_64.rpm BoltzMessenger Gateway BoltzMessenger のAPIサービスです。
boltz-messenger-admin-(バージョン).el7.noarch.rpm BoltzMessenger Admin BoltzMessenger の管理サイトです。
boltz-messenger-web-(バージョン).el7.noarch.rpm BoltzMessenger Web BoltzMessenger のフロントエンドAPI・ウェブアプリケーションです。
boltz-messenger-selinux-(バージョン).el7.noarch.rpm BoltzMessenger Gateway SELinuxポリシー SELinux環境下で BoltzMessenger を使用する場合にインストールします。
boltz-tools-(バージョン).el7.x86_64.rpm BoltzEngine Tools CSV や HTTP API などよくある使い方をサポートしたコマンド集です。

上記のパッケージは、すべて1台のサーバに同居することも可能ですし、すべて別のサーバにインストールすることもできます。 このドキュメントでは、 BoltzMessenger を1台のサーバにインストールを行い、分散させる場合の設定項目を補足として記載します。
BoltzEngine Tools については『BoltzEngine Toolsマニュアル』を参照ください。

ドキュメントの表記

本ドキュメントでは、お客様に実施していただくコマンドをプロンプト付きで表記します。

1// 一般ユーザ権限でコマンド実行する場合
2$ command
3
4// スーパーユーザ権限でコマンドを実行する場合(sudoでも可)
5# command

また、各自の環境により読み替えが必要な場所は (xxx) と表記します。

1boltz-engine-(バージョン).el7.x86_64.rpm

システム条件

BoltzMessenger をインストールするには、以下の条件を満たしている必要があります。

  • RedHat Enterprise Linux 7系 Linux(CentOS 7等) または RedHat Enteprise Linux 6系(CentOS 6等)
  • 100Mbps 以上のネットワーク(インターネットに対して高速な接続ができるネットワークを推奨します)
  • (iOSへHTTP/2でプッシュを送信する場合) api.push.apple.com の 443 ポートに対して通信可能であること
  • (iOSへバイナリインターフェイスでプッシュを送信する場合) gateway.push.apple.com の 2195 ポートに対して通信可能であること
  • (iOSへバイナリインターフェイスでプッシュを送信する場合) feedback.push.apple.com の 2196 ポートに対して通信可能であること
  • (Androidへプッシュを送信する場合) fcm.googleapis.com の 443 ポートに対して通信可能であること
  • (FireOSへプッシュを送信する場合) api.amazon.com の 443 ポートに対して通信可能であること
  • アプリからアクセスするためのポートを解放可能であること(デフォルトでは TCP/13070)
  • 管理画面へアクセスするためのポートを解放可能であること(TCP/80 または TCP/443)

推奨バージョン

BoltzMessenger が依存するミドルウェアは下記のバージョンを推奨しますが、BoltzMessenger Web を除いて、ディストリビューション付属のバージョンでも動作します。

  • Apache 2.4
  • PHP 5.6
  • MySQL 5.6

必須パッケージ

各パッケージをインストールするために必要な依存関係は以下の通りです。

BoltzEngine に必要なパッケージ

  • なし

BoltzMessenger Gateway に必要なパッケージ

  • rsyslog

BoltzMessenger Admin に必要なパッケージ

  • httpd
  • php
  • php-mysql
  • php-mbstring
  • php-mcrypt

BoltzMessenger Web に必要なパッケージ

標準リポジトリ外から PHP 5.6 を入手する必要があります。Software Collections(SCL) から入手する方法を以下で紹介しております。

  • httpd
  • php
  • php-mysql
  • php-mbstring
  • php-mcrypt
  • php-intl

BoltzMessenger policy module に必要なパッケージ

  • policycoreutils
  • libselinux-utils

依存するサービス

BoltzMessenger をご利用になる場合、サーバ内または外部にMySQLサービスをご用意ください。

MySQLサービス(MariaDB)をインストールされる場合は以下のコマンドで行えます。

1# yum install mariadb-server
2# systemctl enable mariadb.service
3# systemctl start mariadb.service

ファイル構造

BoltzEngineBoltzMessenger が利用するディレクトリは以下の通りです。

パス 用途
/usr/sbin/ バイナリを格納する
/usr/share/boltz-messenger-admin/ 管理画面用プログラムを格納する
/usr/share/boltz-messenger-web/ フロントエンド API・ウェブアプリケーション用プログラムを格納する
/usr/lib/systemd/system/ systemd サービスファイルを格納する
/usr/lib/firewalld/services/ firewalld コンフィグを格納する
/etc/boltz-messenger/ ユーザが変更するべき設定ファイルを格納する
/etc/sysconfig/boltz/ systemd 用 Environment ファイルを格納する

インストール

BoltzEngine のインストール

BoltzEngine のインストールを行います。

1# rpm -ivh boltz-engine-(バージョン).el7.x86_64.rpm

プロダクトキーの設定

製品版・体験版のBoltzEngineをお使いの場合、プロダクトキーファイルを設定する必要があります。このファイルはご契約者様専用サイトでダウンロードするか、体験版お渡し時にフェンリルの担当より一緒にお渡しします。このファイルを任意の場所に設置していただき (例えば、/etc/sysconfig/boltz/license等)、/etc/sysconfig/boltz/master ファイルのlicense=行に記載します。

1listen_addr=:13010
2grpc_listen_addr=:13009
3slaves=:13007
4log_output='file:///var/log/boltz-master.log'
5license='/etc/sysconfig/boltz/license'

プロダクトキーファイルがない場合でもBoltzEngineは起動しますが、性能に大幅な制限がかかります。

BoltzEngine の起動

インストールを行うと、systemd 管理下のサービスが2つ実行可能になります。

サービス 役割
boltz-auth-server.service boltz-slaveで使用する認証情報を管理するサービス
boltz-slave.service 実際に Apple(APNs) や Google(FCM) などに対して通知を送信するサービス
boltz-master.service 配信メッセージを分散して、boltz-slave.service を呼び出すサービス

この2つのサービスは別のサーバで実行しても問題ありませんが、ここでは1台で両方実行します。

1// サーバ起動時に自動起動させる
2# systemctl enable boltz-auth-server.service
3# systemctl enable boltz-slave.service
4# systemctl enable boltz-master.service
5
6// サービスを実行する
7# systemctl start boltz-auth-server.service
8# systemctl start boltz-slave.service
9# systemctl start boltz-master.service

boltz-auth-server の設定変更

boltz-auth-server の設定を変更するには、/etc/sysconfig/boltz/auth-server ファイルを編集します。

設定項目 意味 デフォルト
listen_addr boltz-auth-servder が待ち受けるアドレスとポート番号。
boltz-slaveからリクエストを受け付ける。
:13008

boltz-slave.service の設定変更

boltz-slave.service の設定を変更するには、/etc/sysconfig/boltz/slave ファイルを編集します。

設定項目 意味 デフォルト
listen_addr boltz-slave.service が待ち受けるアドレスとポート番号。
boltz-master.serviceからリクエストを受け付ける。
:13007
auth_addr boltz-slave が使用する boltz-auth-server の接続先 localhost:13008
max_agents boltz-slave.service が同時に処理できるboltz-master.serviceからのリクエスト数 30
log_output サービスログの出力先。 file:///var/log/boltz-slave.log

ログ出力先は以下の形式となっており、利用可能パラメータは(scheme)により変わります。

1(scheme)://(host)/(path)?(facility=x)&(tag=x)
scheme 意味 有効パラメータ
file ローカルファイルに出力する (path)
net ローカルのsyslogファイル(/dev/log等)に転送する (facility), (tag)
tcp IPv4またはIPv6のどちらかでsyslogに転送する (host), (facility), (tag)
tcp4 IPv4でsyslogに転送する (host), (facility), (tag)
tcp6 IPv6でsyslogに転送する (host), (facility), (tag)

(facility)は、”sys”, “app”, “service”, “security”の4種類です。
それぞれ、syslogのkern, user, daemon, authprivに対応します。
(tag)は任意のものを指定していただけます。

boltz-master.service の設定変更

boltz-master.service の設定を変更するには、/etc/sysconfig/boltz/master ファイルを編集します。

設定項目 意味 デフォルト
listen_addr boltz-master.service が待ち受けるアドレスとポート番号。
BoltzMessenger Gateway からリクエストを受け付ける。
:13010
grpc_listen_addr boltz-master.service が待ち受けるgRPC用アドレスとポート番号。 :13009
slaves boltz-master.service が利用する boltz-slave.service のリスト。カンマ区切りで複数設定可能。 localhost:13007
log_output サービスログの出力先。 file:///var/log/boltz-master.log
unlock_password アンロックパスワード 未設定

log_output については、boltz-slave.serviceの設定変更を参照ください。

boltz-slave.service を分散する

boltz-master.service は複数の boltz-slave.service を束ねることができます。
host1 と host2 の 2 台を使って構成する場合、host1 に master と slave 及び auth-server を、host2 には slave だけを実行させるように構成します。

 1host1:
 2# rpm -ivh boltz-engine-(お客様名)-(バージョン).el7.x86_64.rpm
 3# systemctl enable boltz-auth-server.service
 4# systemctl enable boltz-slave.service
 5# systemctl enable boltz-master.service
 6# systemctl start boltz-auth-server.service
 7# systemctl start boltz-slave.service
 8# systemctl start boltz-master.service
 9
10host2:
11# rpm -ivh boltz-engine-(お客様名)-(バージョン).el7.x86_64.rpm
12# systemctl enable boltz-slave.service
13# systemctl start boltz-slave.service

host1 で稼働する boltz-master.service の設定ファイルは以下のようになります。

1listen_addr=:13010
2slaves=host1:13007,host2:13007

host2 で稼働する boltz-slave.override ファイルは以下のようになります。

1auth_addr=host1:13008

BoltzMessenger Gateway は host1:13010 へアクセスするように設定すると、boltz-master.service が両方の slave を使って送信を分散させます。

同一のAPNs HTTP/2認証キーを用いて同一のIPアドレスからインターネットに接続するスレーブは、同一のauth-serverを参照するように設定する必要があります。

BoltzMessenger Gateway のインストール

依存関係の解決

BoltzMessenger Gateway は他のパッケージに依存しています。
rsyslog は CentOS 7 に標準でインストールされていますが、もし無い場合はインストールしてください。

1# yum install rsyslog

BoltzMessenger Gateway パッケージのインストール

依存パッケージを解決できたら、BoltzMessenger Gateway パッケージをインストールします。

1# rpm -ivh boltz-messenger-gateway-(バージョン).el7.x86_64.rpm

BoltzMessenger Gateway パッケージをインストールすると、/etc/boltz-messenger/config.yml に設定ファイルが配置されます。BoltzMessengerの各コンポーネントを別のサーバーへ設置する場合、BoltzMessenger Gateway をインストールしないサーバーには手動でこのファイルを作成してください。

次に、DB のテーブル作成など、初期設定を書き込みます。
boltz-messenger-init は BoltzMessenger を動作させるためのテーブル初期化を行い、設定サンプルを出力するコマンドです。
u オプションは DB 接続ユーザ名、p はパスワード、h はホスト名を指定します。

1// データベースやテーブルを作成するため、権限を持ったユーザで行うこと
2# boltz-messenger-init -u root -p password -h host

boltz-messenger-init コマンドが正常に終わったら、最後に config.yml のサンプルが出力されます。
以下2項目を後の設定で使いますので、控えておいてください。

  • admin
    • salt
    • cipherSeed
  • web
    • salt

最初のインストール時には、出力をそのまま設定ファイルに書き込んでも問題ありません。

1// 上書きするため初回のみのご利用をお勧めします
2# boltz-messenger-init -u root -p password -h host >/etc/boltz-messenger/config.yml

BoltzMessenger 用ユーザを作成

権限を絞り込んだ DB 接続ユーザ boltz を利用したい場合、以下のように作成します。

1$ mysql -u root -p
2Enter password:
3mysql> grant all privileges on boltz.* to boltz@localhost identified by 'passpass'; // passpassは実際のパスワードで置き換えてください

作成したユーザとパスワードを config.yml に反映します。

1// 設定ファイルの以下を変更する
2// db:
3//  user: user
4//  password: passpass
5# vi /etc/boltz-messenger/config.yml

/etc/boltz-messenger/config.yml の確認

config.yml は BoltzMessenger で共通して読み込む設定ファイルです。以下のような構造になっています。

 1engine:
 2  address: localhost:13009
 3  protocol: grpc
 4
 5# apns1
 6#apns:
 7#  key: /etc/boltz-messenger/key.pem
 8#  cert: /etc/boltz-messenger/cert.pem
 9#  gateway: gateway.push.apple.com:2195
10#  feedback: feedback.push.apple.com:2196
11
12# apns2
13apns:
14  gateway: https://api.push.apple.com/
15  issuer: XXXXXXXXXX
16  keyId: XXXXXXXXXX
17  privateKey: /etc/boltz-messenger/AuthKey.p8
18  topic: com.fenrir-inc.boltzmessenger
19
20# http v1
21fcm:
22  url: https://fcm.googleapis.com/v1/
23  serviceAccount: service-account.json
24
25# legacy
26#fcm:
27#  url: https://fcm.googleapis.com/fcm/send
28#  key: xxx
29#  senderId: xxx
30
31adm:
32  tokenUrl: https://api.amazon.com/auth/o2/token
33  originUrl: https://api.amazon.com
34  clientId: xxx
35  clientSecret: xxx
36
37webpush:
38  privateKey: (private key string encoded by BASE64URL withuout padding)
39  publicKey: (public key string encoded by BASE64URL withuout padding)
40  skipVerify: false
41
42db:
43  driver: mysql
44  user: root
45  password: boltz
46  address: localhost:3306
47  name: boltz
48
49admin:
50  salt: xxxxxx
51  cipherSeed: xxxxxxx
52  tempDir: /var/tmp/boltz-messenger
53  displayTimezone: Asia/Tokyo
54  triggerUrl: http://localhost:13070/requests
55
56web:
57  salt: xxxxxxx
58  tempDir: /var/tmp/boltz-messenger-web
59  displayTimezone: Asia/Tokyo

それぞれの設定における意味を次にまとめます。

親キー キー 意味
engine address boltz-master サービスのリクエスト先アドレス。省略時はlocalhost:13010が設定されます。
engine protocol boltz-master サービスのプロトコル。省略時は net/rpc、grpc の場合は gRPC を使います。
engine secure boltz-master サービスとのgRPC通信にTLSを適用する場合は true を指定してください。※1
gateway mode boltz-messenger-gateway の動作モード(front/back/both のいずれか) デフォルトは back ※2
apns key APNs 接続用の秘密鍵ファイルパス。(バイナリインターフェイス場合。パスワードなしのpemファイル)
apns cert APNs 接続用の証明書ファイルパス。(バイナリインターフェイス場合)
apns privateKey APNs 接続用の秘密鍵ファイルパス。(HTTP/2の場合。p8ファイル)
apns issuer APNs Issuer(HTTP/2の場合。Apple Developer ProgramのTeam ID)
apns keyId APNs キーID(HTTP/2の場合。p8ファイル作成時に同時に発行)
apns topic APNs トピック(HTTP/2の場合。アプリのBundle Identifier)
apns gateway APNs リクエストを送信するアドレス。 ※3
apns feedback APNs フィードバックを受信するアドレス。(バイナリインターフェイスの場合)
apns timeout APNs がメッセージを保持する有効期限(分、指定のない場合3日間)
apns skipVerify APNs 接続時にサーバ証明書を検証するかどうか。通常は false (デフォルト)にしてください。
fcm key FCM 接続時のサーバキー。
fcm senderId FCM リクエストのSender ID。XMPP プロトコルを使う場合は必須です。
fcm serviceAccount FCM サービスアカウントのファイルパス
fcm url FCM リクエストを送信する URL。
fcm timeout FCM がメッセージを保持する有効期限(分、指定のない場合3日間)
fcm skipVerify FCM 接続時にサーバ証明書を検証するかどうか。通常は false (デフォルト)にしてください。
adm tokenUrl ADM がトークンを発行するための URL。
adm originUrl ADM リクエストを送信する URL のオリジン。/以降は含めてはいけない。
adm clientId ADM トークンを取得するための Client ID。
adm clientSecret ADM トークンを取得するための Client シークレット。
adm skipVerify ADM 接続時にサーバ証明書を検証するかどうか。通常は false (デフォルト)にしてください。
webpush privateKey BASE64URL エンコードされた VAPID 用の秘密鍵(パディングなし)
webpush publicKey BASE64URL エンコードされた VAPID 用の公開鍵(パディングなし)
webpush subject 送信者の連絡先メールアドレスまたはURL(mailto: または https:)
webpush timeout WebPush でメッセージを保持する有効期限(分、指定のない場合3日間)
webpush skipVerify WebPush 接続時にサーバ証明書を検証するかどうか。通常は false (デフォルト)にしてください。
db user DB ログインユーザ。
db password DB ログインユーザのパスワード。
db address DB ホスト名とポート番号を:で区切ったもの(host:3306)。
db name データベース名。
admin salt boltz-messenger-init コマンドで生成したランダム値。
admin cipherSeed boltz-messenger-init コマンドで生成したランダム値。
admin tempDir 実行時キャッシュ等を保存するディレクトリ。省略可能。
admin triggerUrl boltz-messenger-gateway が待ち受けるURL。
admin displayTimezone 管理画面に表示される時刻のタイムゾーン。
admin apnsBadge iOS 端末にバッジを付けるかどうか(trueを指定すると未読1のバッジが付く)
admin defaultUseReserve 新規送信画面の予約配信にチェックを入れるかどうか (trueを指定するとデフォルトでチェックが入ります)
admin defaultUseBandwidth 新規送信画面の速度制限にチェックを入れるかどうか (trueを指定するとデフォルトでチェックが入ります)
admin defaultBandwidth 新規送信画面の配信速度制御に指定するデフォルト値を設定。
web salt boltz-messenger-init コマンドで生成したランダム値。
web tempDir 実行時キャッシュ等を保存するディレクトリ。省略可能。
web displayTimezone Web版 BoltzMessenger に表示される時刻のタイムゾーン。

※1:boltz-master自身には現在 TLS をサポートしていませんので、環境に応じてロードバランサ等をご用意ください。
※2:boltz-messenger-gatewayにはBoltzMessenger Webが用意しているアプリ向けのAPIが実装されており、frontもしくはbothを指定することで起動します。この機能は後方互換性のために残されています。新規の利用はお控えください。
※3:https://もしくはhttp://が指定されるとHTTP/2モードで送信します。

BoltzMessenger で APNs (iOS) へ通知を行う場合

iOS へPush通知を行う場合、config.yml の apns キーを設定します。

HTTP/2で送信する場合はprivateKeyに指定したパスにp8ファイルを設置し、issuer keyId topicを指定してください。

バイナリインターフェイスで送信する場合は、正しい証明書を apns.key, apns.cert で設定したパスへ配置してください。

BoltzMessenger で FCM (Android) へ通知を行う場合

FCMへの通知は、fcm.urlの値がhttps://またはhttp://で開始する場合、HTTPプロトコルでの通知を行います。
上記以外の場合は、XMPPプロトコルを使った通知を行います。

HTTP v1 APIプロトコルを使われる場合は fcm.serviceAccount が必須です。 それ以外の場合は fcm.key と fcm.senderId を使いますが、Legacy HTTPプロトコルを使う場合は fcm.senderId は任意です。

※後方互換性確保のため fcm キーがない場合、gcm キーも探します。

BoltzMessenger で ADM (FireOS) へ通知を行う場合

ADMへPush通知を行う場合、config.yml の adm キーを設定し、clientId と clientSecret の2つを設定してください。
それぞれの値は Amazon Developer Console のアプリケーション情報から取得できます。

BoltzMessenger で WebPush (Chrome/Firefox) へ通知を行う場合

webpushに使用するVAPID用の鍵ペアはOpenSSLを使い、下記の要領で生成します。(boltz-messenger-init コマンドでも生成します)

1$ openssl ecparam -name prime256v1 -genkey -noout -out vapid_private.pem
2$ openssl ec -in vapid_private.pem -pubout -out vapid_public.pem
3$ openssl ec -in vapid_private.pem -pubout -outform DER|tail -c 65|base64|tr -d '=' |tr '/+' '_-' > public_key.txt
4$ openssl ec -in vapid_private.pem -outform DER|tail -c +8|head -c 32|base64|tr -d '=' |tr '/+' '_-' > private_key.txt

生成された public_key.txt および private_key.txt の内容を config.yml に記載してください。また、生成された 4 つのファイルは大切に保管してください。

BoltzMessenger で特定のプラットフォームにのみ配信する場合

apns、fcm、adm、webpush のキーを削除すると、削除したキーのサービスが無効になります。
BoltzMessenger のデータベースに端末が登録されても、無効化したプラットフォームへの通知は実施されず、管理画面にも表示されません。

webpushキーを削除すると、BoltzMessenger Web のウェブアプリケーションは無効になりますが、フロントエンドAPIはこの影響を受けません。

BoltzMessenger で速度制限を行う場合

BoltzMessenger は engine.protocol を grpc に設定した場合に、 1秒あたりの通知速度制限をサポートしています。
有効にするためには、 engine.address と engine.protocol の値を変更します。

1engine:
2  # boltz-master.serviceのgrpc_listen_addr値を設定
3  address: localhost:13009
4  # boltz-master.serviceとの通信にgRPCプロトコルを使う
5  protocol: grpc
6  # ロードバランサ等でHTTPSをサポートする場合はtrue
7  secure: false

設定を反映するため、boltz-messenger-gateway.service を再起動してください。

1# systemctl restart boltz-messenger-gateway.service

起動設定

1// サーバ起動時に自動起動させる
2# systemctl enable boltz-messenger-gateway.service
3
4// サービスを実行する
5# systemctl start boltz-messenger-gateway.service

boltz-messenger-gateway.service の設定変更

boltz-messenger-gateway.service の設定変更は、/etc/sysconfig/boltz/messenger-gateway にあります。

設定項目 意味 デフォルト値
config config.yml のパス。 /etc/boltz-messenger/config.yml
listen_addr boltz-messenger-gateway が待ち受けるアドレスとポート番号。
BoltzMessenger Admin からのリクエストを受け付ける。
:13070

ポートの解放

必要なら BoltzMessenger Gateway がアプリへ提供する API のポートを開けます。

1# firewall-cmd --zone=public --add-service=boltz-messenger-gateway --permanent

SELinux 環境下での BoltzMessenger の使用

SELinux を使用しているサーバーに、 BoltzMessenger AdminBoltzMessenrger Gateway を同居させる場合、SELinux へのポリシー追加が必要となります。

1# rpm –ivh boltz-messenger-selinux-(バージョン).el7.noarch.rpm

また、ポート13070以外で動作させる場合は、合わせて以下のコマンドで SELinux にポートを認識させてください。

1# semanage port -a -t boltz_messenger_gateway_port_t -p tcp (ポート番号)

設定後、 BoltzMessenger Admin の画面が表示されない場合は以下の点をご確認ください。

  • config.yml のラベルが etc_t になっていない場合は、chcon コマンドで修正してください。
1$ ls -lZ /etc/boltz-messenger/config.yml
2# chcon -t etc_t /etc/boltz-messenger/config.yml
  • RHEL6/CentOS6 系で SELinux が Disabled の状態から、運用後に Enforcing に変えた場合

/var/tmp/boltz- messenger 以下のファイルのラベルを
http_sys_rw_content_t に変更する必要があります。

1# chcon -R -t http_sys_rw_content_t /var/tmp/boltz-messenger

Software Collection を用いた Apache HTTP Server と PHP のセットアップ

BoltzMessenger Web をご利用の場合、PHP 5.6 のインストールが必要となります。CentOS 標準の PHP はバージョンが古いため別途 PHP 5.6 を入手していただく必要があります。BoltzMessenger Admin は CentOS 標準の PHP 5.3 でも動作しますが、同様に PHP 5.6 をお使いになることを強く推奨します。

CentOS 向けの PHP 5.6 を提供しているリポジトリはいくつかありますが、CentOS 公式の Software Collections(SCL: https://www.softwarecollections.org/) を用いた BoltzMessenger Admin および Web の依存モジュールインストールの方法をご説明します。

SCL を利用するには、以下のコマンドでリポジトリ定義をインストールします。(SCL から取得されるパッケージの中に EPEL リポジトリ内のパッケージに依存しているものがあるため、合わせてインストールが必要となります。)

1# yum install centos-release-scl epel-release

インストールが完了すると、yum のパッケージリポジトリとして SCL (centos-sclo-rh) が追加されます。

BoltzMessenger Admin および Web で必要となるパッケージをインストールします。

1# yum install httpd24 httpd24-mod_ssl rh-php56 rh-php56-php rh-php56-php-mysql rh-php56-php-mbstring rh-php56-php-mcrypt rh-php56-php-intl

SCL の Apache HTTP Server を有効にし、起動します。なお、設定ファイルは /opt/rh/httpd24/root/etc/httpd にインストールされます。

1# systemctl start httpd24-httpd.service

BoltzMessenger Admin のインストール

依存関係の解決

BoltzMessenger Web は他のパッケージに依存しています。「Software Collection を用いた Apache HTTP Server と PHP のセットアップ」を参照して SCL から PHP 5.6 をセットアップしてください。

異なるリポジトリからインストールする場合は、「必須パッケージ」の項を確認の上、対応するパッケージをインストールしてください。

1# yum install httpd php php-mysql php-mbstring php-mcrypt

BoltzMessenger Admin パッケージのインストール

依存パッケージを解決できたら、BoltzMessenger Admin パッケージをインストールします。

1# rpm -ivh boltz-messenger-admin-(バージョン).el7.noarch.rpm

BoltzMessenger Admin パッケージは /etc/httpd/conf.d へ BoltzMessenger Admin 用の設定を追加します。SCL を使用している場合は、SCL の httpd24 の設定ディレクトリにコピーする必要があります。

1# cp /etc/httpd/conf.d/boltz-messenger-admin.conf /opt/rh/httpd24/root/etc/httpd/conf.d/boltz-messenger-admin.conf

httpd に設定を読ませるため再起動を行います。

1# systemctl restart httpd.service (SCL不使用の場合)
2# systemctl restart httpd24-httpd.service (SCLの場合)

BoltzMessenger Admin パッケージをインストールしたサーバの URL にアクセスすれば管理画面が表示されます。
(localhost は適切に読み替えてください)

  • http://localhost/boltz-messenger/

firewall ポート解放(参考)

BoltzMessenger 管理サイトへアクセスする config を参考程度に記載します。
環境にあわせて修正した上でお使いください。

1# cat /etc/firewalld/services/boltz-messenger-admin.xml
2<?xml version="1.0" encoding="utf-8"?>
3<service>
4  <short>boltz-messenger-admin</short>
5  <description>boltz messenger administration site</description>
6  <port port="80" protocol="tcp"/>
7</service>
8# firewall-cmd --reload
9# firewall-cmd --zone=public --add-service=boltz-messenger-admin --permanent // お好みで

BoltzMessenger Web のインストール

依存関係の解決

BoltzMessenger Web は他のパッケージに依存しています。「Software Collection を用いた Apache HTTP Server と PHP のセットアップ」を参照して SCL から PHP 5.6 をセットアップしてください。

異なるリポジトリからインストールする場合は、「必須パッケージ」の項を確認の上、対応するパッケージをインストールしてください。

1# yum install httpd php php-mysql php-mbstring php-mcrypt php-intl

BoltzMessenger Web パッケージのインストール

依存パッケージを解決できたら、BoltzMessenger Web パッケージをインストールします。

1# rpm -ivh boltz-messenger-web-(バージョン).el7.noarch.rpm

BoltzMessenger Web パッケージは /etc/httpd/conf.d へ BoltzMessenger Web 用の設定を追加します。SCL を使用している場合は、SCL の httpd24 の設定ディレクトリにコピーする必要があります。

1# cp /etc/httpd/conf.d/boltz-messenger-web.conf /opt/rh/httpd24/root/etc/httpd/conf.d/boltz-messenger-web.conf

httpd に設定を読ませるため再起動を行います。

1# systemctl restart httpd.service (SCL不使用の場合)
2# systemctl restart httpd24-httpd.service (SCLの場合)

ウェブプッシュ機能を使用するためには

ウェブプッシュ機能を使用するためには追加で以下の設定が必要です。

  • /etc/boltz-messenger/config.yml に webpush の設定が必要です。「/etc/boltz-messenger/config.yml の確認」に記載のある、VAPID の公開鍵・秘密鍵を設定してください。
  • https で BoltzMessenger Web にアクセスできるように設定する必要があります。httpd やリバースプロキシの設定などで https でアクセスできるように構成してください。

上記の設定を加えた上で、BoltzMessenger Web パッケージをインストールしたサーバの URL にアクセスすれば BoltzMessenger フロントエンドウェブアプリケーションが表示されます。
(localhost は適切に読み替えてください)

  • https://localhost/bm/

firewall ポート解放(参考)

BoltzMessenger フロントエンドウェブアプリケーションへアクセスする config を参考程度に記載します。
環境にあわせて修正した上でお使いください。

1# cat /etc/firewalld/services/boltz-messenger-admin.xml
2<?xml version="1.0" encoding="utf-8"?>
3<service>
4  <short>boltz-messenger-web</short>
5  <description>boltz messenger frontend</description>
6  <port port="80" protocol="tcp"/>
7</service>
8# firewall-cmd --reload
9# firewall-cmd --zone=public --add-service=boltz-messenger-web --permanent // お好みで

アンインストール

BoltzEngineのアンインストール

1# systemctl stop boltz-master.service
2# systemctl stop boltz-slave.service
3# systemctl disable boltz-master.service
4# systemctl disable boltz-slave.service
5# rpm -e boltz-engine-(お客様名)

BoltzMessenger Gatewayのアンインストール

1# systemctl stop boltz-messenger-gateway.service
2# systemctl disable boltz-messenger-gateway.service
3# rpm -e boltz-messenger-gateway
4# rm /etc/boltz-messenger/config.yml.rpmsave

BoltzMessenger Adminのアンインストール

1# rpm -e boltz-messenger-admin

BoltzMessenger Webのアンインストール

1# rpm -e boltz-messenger-web

ご不明な点はありませんか?

機能の詳細、導入のご検討、お見積もり依頼などは、お気軽にお問い合わせください。
担当者から追ってご連絡いたします。

お問い合わせはこちら

記事へ戻る