tiarraMetro - 導入
ここはtiarraMetroの導入方法についてまとめられたページです。
tiarraMetroの機能解説や動作用件等の詳細についてはこちらを御覧ください。
tiarra WEBフロントエンド tiarraMetro - tyoro.exe
導入にはある程度のサーバーの知識が必要ですが、tiarraを自前で運用してる人ならば何とかなるんじゃないでしょうか。
2011 12/18 confの構成の変更や、ライブラリの同梱等にともなって 一部の導入手順を追記・変更しました。
設置方法
まずは動作要件を満しているかを確認してください。
本体の取得
tiarraMetroの本体は以下にあります。
miscディレクトリ以下に導入で使用するファイルも含まれているので、最初にcloneしてしまうと、後が楽です。
またtiarraMetro本体はPHPなのですが、tiarraと連携させる為にいくつか設定しなければならない物があります。
(というかそっちがメインか?
まずはtiarraの設定方法から。
Log::DBIの導入
コード自体はこちらで用意したものがtiarraMetroのリポジトリに含まれていますが、導入の手順に関してはこちらを参照してください。
Log::DBI を使って tiarra のログを DB に保存する - yono05の日記
本家のLog::DBIではprivの保存が正常に行なえない問題があったりする為、コードを修正しました。
またテーブル側に未読情報のカラムを追加するなど、変更を加えています。
加えて、本家のLog::DBIには保存するチャンネルを指定する機能がありません。
閲覧ツールとして使うには欲しい機能だったので、その機能も付けてみました。
ただし、僕はperlが書けないので基本的にコピペです。
なので完全な動作が保証できませんが、今の所自分の環境では正常に動作しています。
github リポジトリ内の ./misc/DBI.pm を利用してください。
また、DBに必要なテーブルを作成する為のsql文は、 ./misc/table_create.sql にまとめられています。
tiarra.confでの設定は以下のように行ないます。
マッチさせる部分はtiarra側で用意されているMaskメソッドを利用したので、tiarraの他の設定で使えるようなchannel記法は使えるんだと思います。
全てのチャンネルのログを取りたい場合は『*@*』ですかね。
一通りの設定が終わったら、正常にMySQLにログが保存されている事を確認してください。
tiarraのsocketの設定
tiarraを外部から操作する為のconnet socketをオープンします。
字面にすると ややこしい事のように思えますが、環境がちゃんとしていれば tiarra.conf を書き変えるだけで利用できます。
まず、socketに関する設定のコメントアウトを外し、名前を設定します。
『#control-socket-name: test』
と書かれた行を検索し、
『control-socket-name: xxxxx』
といった風にコメントアウトを外して任意の名前に書き変えます。
ここで設定した名前は後々使うので覚えておいてください。
次にメッセージを送信する為のモジュールを読み込みます。
tiarra.confの末尾に以下のコードを追加してください。
+ System::SendMessage { }
以上でconfの設定は終わりです。
・注意点
tiarraの実装はオープンされるsocketのパーミッションが700で固定されています。
tiarraを起動しているユーザーとPHPを実行しているユーザーが同じであれば問題なく動作すると思いますが、
実際にはそんな事はないでしょう、、、
という事で、tiarraのソースを書き変えて、パーミッションの設定の設定を変更します。
main/ControlPort.pm を開いてください、こちらの95行目あたりに以下のようなコードがあります。
# パーミッションを700に。 chmod 0700, $filename;
決めうちですねぇ:-)
この700を、777に書き変える事で接続が可能になります。
これらの設定書き変え後に、tiarra自体を再起動してください。
/loadではsocketをオープンできません。
・オマケ
tiarraのsocketによる投稿は他のプラグインを考慮されていません。
その為、Log::Channelsのようなテキストにログを保存するプラグインを利用している場合、tiarraMetro経由で自分が行なった発言がテキストのログから抜けおちる事になります。
それを避ける為に、Log::Channels用の変更を加えたSendMessage.pmを公開されてる方がいます。
tiarraのSystem::SendMessage(ControlPort経由)のログをLog::Channel経由で記録する - ヒルズで働くholidays-lの技ログ
またこちらで変更されているものも ./misc/SendMessage.pm として同梱してあります。
必要な場合はこちらのファイルで tiarra の module/System/SendMessage.pm を上書きしてください。
tiarraMetroの設置
tiarraMetroを設置して、設定を行ないます。
冒頭にも書きましたが、ファイルはgithubにて公開しています。
適当に落としてきて設置してください。
使用しているFitzgeraldというFWの特徴として、実際にアクセスするファイルは public/ 以下になりますので、
適当にサブドメインか何かを用意するかaliasを設定するなどして、URLへのアクセスでpublic/ 以下以外アクセスできないようにしておくのが良いです。
(設置環境的に自由が効かない場合の設定は後述します。
設置後に次の設定ファイルを変更します。
サンプルファイル conf.yml.sample を conf.yml にリネームし、記載されている設定項目を書き変えます。
my_name: 'hoge' #default pass 0000 password_md5: "4a7d1ed414474e4033ac29ccb8653d9b" # 発言用のソケット名 tiarra_socket_name: 'tiarrametro' DATABASE_HOST: 'localhost' DATABASE_ID: 'tiarra' DATABASE_PASS: 'xxxxx' DATABASE_NAME: 'tiarra'
見たまんまなんで説明するまでもない気はしますが、上から。
・自分の名前
・ログイン用のパスワード( 実際はmd5に変換済みの文字列を設定してください)
・tiarraで設定したsocket名
・mysqlの接続情報( ホスト名 / ユーザー名 / パスワード / データベース名 )
他にも#が頭についている部分はコメントアウトですが、sampleに色々書かれてる項目も変更できます。
アイコンの表示、画像URLの展開、読み込みを行なう周期の変更、タブに表示されているchannelsを変更、クッキーの保存時間、通知用ピックアップワードの設定などなど。
またtwitter irc gateway用の機能やfacebook irc gateway用の機能などありますが、こちらは後日 導入記事とは分けて解説を書きます。
もしアクセス先URLがドメイントップにならない形で設置した場合
irc.hoge.com/ でアクセスできるように設置されている場合は気にしなくてもいいのですが、
hoge.com/irc/publicみたいな形で設置される場合は、追加の設定が必要です。
conf.ymlの中程にある
#mountPoint: '/hoge/public'
この行のコメントアウトを外し、上記の例の場合は /irc/public といった形で、トップからのパスを設定してください。
次にpublic/.htaccess の5行目を書き変えます。
RewriteRule . /index.php [L]
といった感じの行を、上記の例の場合ですと
RewriteRule . /irc/public/index.php [L]
このように書き変えてください。
なお、上記のような設置方法の場合 ymlファイルが外部からみえてしまう可能性がありdbのパスワード等が見られてしまう可能性があります。
htaccessなどでファイルやディレクトリへのアクセスを制限する事を推奨します。
以上です。
PCやスマートフォンのブラウザからアクセスし、正常に表示されれば導入は完了です。
今後の機能追加の予定等はgithubのissueページに記載されています。
Issues - tyoro/tiarraMetro - GitHub
またアップデート内容はイチイチ告知等はしていませんので、commitログなどを確認してください。
Commit History for tyoro/tiarraMetro - GitHub
今後ともよろしくー。