Edited at

MattermostをDebian(Apache+MySQL)にインストール

More than 1 year has passed since last update.

チャットルーム的なものが欲しかったので、Rocket.chatと悩んだ末、MySQLが使えるMattermostにしました。

一応公式にもマニュアルはありますが、結構詰まった(丸1日かけてしまった…)のでメモ書きを残しておきます。


下準備


Goをインストール

http://golang-jp.org/doc/install


MySQLのアップデート

Ver.5.6が必要。

ちなみにバージョンが古いと起動時に


Failed to create index Error 1214: The used table type doesn't support FULLTEXT indexes


というエラーが出ます。

通常の方法だとまだ5.5.55しか入らないので、

http://www.debiantutorials.com/install-mysql-server-5-6-debian-7-8/

を参考に5.7.18までアップデートした。


E: Sub-process /usr/bin/dpkg returned an error code (1)


というエラーが出たが、とりあえず入ったみたいなので放置。


Mattermostのインストール

基本的に取ってきて置くだけ。公式マニュアル

https://docs.mattermost.com/install/prod-debian.html

の「Set up Mattermost Server」のセクションを読む。

ディレクトリ全体を実行用ユーザーの所有にしておく。結局うまく動かなくてsudoで起動したので要らないかも。


Apache

サブドメインと仮想サーバーなどを用意しておく。

ヴァーチャルホストの設定ファイルの書き方は以下が参考になりました。

エラーメッセージをメモし忘れましたが、ProxyのところでSyntaxエラーが出たら

sudo a2enmod proxy_http


MySQLの設定とデータベースへの接続

データベースとユーザーを作っておく。

CREATE DATABASE データベース名;

GRANT ALL PRIVILEGES ON データベース名.* TO 'MySQLユーザー名'@'localhost' IDENTIFIED BY 'パスワード' WITH GRANT OPTION;

Mattermost設定ファイルは /opt/mattermost/config/config.json

"DriverName": "mysql"はそのまま。


config.json

"DataSource": "MySQLユーザー名:パスワード@tcp(localhost:3306)/データベース名?charset=utf8mb4,utf8",


ポートや書き方を間違えると


  • default addr for network 'localhost' unknown

  • Failed to ping DB err:dial tcp [::1]:8065: getsockopt: connection refused

  • packets.go:33: unexpected EOF

    Failed to ping DB err:driver: bad connection

等のエラーが出ます。とりあえず3306にしたら接続できました。

他にもURLの設定など、

https://docs.mattermost.com/administration/config-settings.html

を見ながらお好みで。


ポートを開ける

tcp:8065 を開ける。GCEの場合はコンソールでの設定も忘れない


起動

sudo /opt/mattermost/bin/platform &

バックグラウンド起動にしないとプロセス切ったら落ちます。

上のコマンドで動かないときは以下を確認。


  1. /opt/mattermost/logs/mattermost.log の所有者がmattermostになっているか

  2. 今作業しているユーザーがmattermostグループに入っているか


管理画面からの設定

config.jsonを書き換えなくてもコンソールから出来るようになる。

サーバーの再起動が必要なものもあるが、その旨書いておいてくれる親切仕様。

メール認証をしたい場合、GCEの場合はMailgunなどを経由してメールを送信することになる。ポートはこの時自分で決めた物を使うこと。

しかもTLSだとうまくいかなかった。PLAINで接続できた。


未解決エラー


[EROR] Unable to setup forwarding


このエラーは出ていても動く。

https://github.com/mattermost/platform/blob/master/app/server.go

の172行目。とりあえず"Forward80To443": falseに戻したら消えた。


その他の参考記事