IRC/tiarra
をテンプレートにして作成
[
ホーム
|
一覧
|
検索
|
最終更新
|
ヘルプ
] [
新規
]
開始行:
*tiarra [#nf5c3319]
tiarraの設置方法とかメンテとか。
#contents
**tiarraとtiarraMetroの設置方法(Ubuntu 14.04.3 LTSの場合...
2015/09現在です。tiarraMetroもセットで設置する前提で合わ...
***tiarra本体 [#lf3637bb]
$ cd /opt
$ sudo svn co http://svn.coderepos.org/share/lang/perl/t...
最後の引数(tiarra)は設置するディレクトリ名です。上記の場...
古いバージョンを利用するとSSL非対応だったりして割と困るの...
基本的にはこれで問題ないですが、キーワード通知をpushbulle...
$ git clone https://gist.github.com/ba3f9e25314ac2f013db...
$ sudo cp notify_pushbullet/Notify.pm /opt/tiarra/module...
※参考:http://oquno.com/log/eid3150.html
***tiarraMetro [#uac6ae9f]
-参考:http://exe.tyo.ro/tiarrametro/introduction.html
-前提:MySQL、PHP、Apache2またはNginx+php5-fpmがインスト...
今回はNginxでやっていっていますが、Apache2でも変わらない...
$ sudo apt-get install php-pear php5-mcrypt php5-mysql
$ sudo php5enmod mcrypt
PHP関係のモジュールはこれで入るはず。Nginxの場合はphp5-fp...
$ sudo service php5-fpm restart
まずはどっか適当なところでgit cloneします。
$ git clone https://github.com/tyoro/tiarraMetro.git dir...
最後の引数(dir_name)は設置ディレクトリ名です。省略しても...
tiarraMetroに同梱されているLog:DBIをtiarra本体のmoduleデ...
$ cd tiarraMetro
$ sudo cp misc/DBI.pm /opt/tiarra/module/Log/
同じくSendMessage.pmもmoduleディレクトリへ。
$ sudo cp misc/SendMessage.pm /opt/tiarra/module/System/...
tiarraのUnixSocketのパーミッションを700から777へ変更する...
$ sudo vi /opt/tiarra/main/ControlPort.pm
べつにviじゃなくてもなんでもいいですが、何らかの手段で以...
chmod 0700, $filename;
↓
chmod 0777, $filename;
次に、絵文字対応のためtiarraMetroのDBまわりの文字コード指...
$ vi conf/base.php
1ヶ所しかないはずです。
define("DATABASE_CHARSET","utf8");
↓
define("DATABASE_CHARSET","utf8mb4");
$ vi misc/table_create.sql
4ヶ所ぐらいあります(テーブルの数だけ同じように変更する)。
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
↓
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAM...
さらに、utf8mb4の場合そのままではテーブル作成に失敗するこ...
$ sudo vi /etc/mysql/my.cnf
my.cnfに以下の3行を追加。
innodb_file_format = BARRACUDA
innodb_file_per_table = ON
innodb_large_prefix = ON
restartして、ちゃんと反映されたか確認。
$ sudo service mysql restart
$ mysql -u root -p
mysql> show variables like 'innodb_large_prefix';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | ON |
+---------------------+-------+
1 row in set (0.00 sec)
ONになってればOK。
database作成に入ります。db_name,username,passwordは適宜名...
mysql> create database db_name character set utf8mb4;
DBができたかどうか確認。
mysql> show databases;
できてたら次は権限の設定。
mysql> grant all privileges on db_name.* to username@loc...
mysql> show grants for username@localhost;
うまくいってたらこんな感じになるはず。
+-------------------------------------------------------...
| Grants for username@localhost ...
+-------------------------------------------------------...
| GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIE...
| GRANT ALL PRIVILEGES ON `db_name`.* TO 'username'@'loc...
+-------------------------------------------------------...
2 rows in set (0.00 sec)
おわったらさっきのsqlファイルを読み込みます。mysqlコマン...
mysql> quit
Bye
% mysql -u username -p db_name
mysql> source table_create.sql
※以下のようにしても可。
$ mysql -u username -p db_name < table_create.sql
このとき下記のエラーが発生した場合は、ここまでのどこかで...
ERROR 1071 (42000) at line 1: Specified key was too long...
詳細に書くと、innodb_large_prefixが清く正しくONになってい...
無事におわったらテーブルできたよね確認。4テーブルあります。
mysql> show tables;
+----------------------------+
| Tables_in_db_name |
+----------------------------+
| channel |
| log |
| nick |
| priv |
+----------------------------+
4 rows in set (0.00 sec)
logテーブルのstatusを見て文字コードとか合ってるよね確認。
mysql> show table status like 'log'\G
*************************** 1. row *********************...
Name: log
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 49152
Data_free: 0
Auto_increment: 1
Create_time: 2015-09-29 18:56:14
Update_time: NULL
Check_time: NULL
Collation: utf8mb4_general_ci
Checksum: NULL
Create_options: row_format=DYNAMIC
Comment:
1 row in set (0.00 sec)
***tiarra起動 [#d26c287e]
tiarraのconfの書き方はさすがに省略するけど(自分の秘伝の...
1) control-socket-name のコメントを外し、何かしらユニーク...
2) 下記を最下行に追加。
+ System::SendMessage {
}
それではtiarraを起動します。tiarraのconfigを /home/hoge/c...
$ perl /opt/tiarra/tiarra --config=/home/hoge/conf/tiarr...
起動時にERRORがないことを確認しましょう。あと、適当に発言...
いけそうなら一旦落として、下記のようにバックグラウンドで...
$ nohup perl /opt/tiarra/tiarra --config=/home/hoge/conf...
***tiarraMetro起動 [#d62ca0a2]
tiarraMetroのconfをつくります。
$ cp conf.yaml.sample conf.yaml
$ vi conf.yaml
さきほどMySQLに設定した内容を以下のように記載します。NAME...
DATABASE_ID: 'username'
DATABASE_PASS: 'password'
DATABASE_NAME: 'db_name'
あと、tiarra_socket_nameはtiarraのconfに書いたソケット名(...
つぎにNginxのconfを書きます。Apacheの人は適宜やってくださ...
$ sudo vi /etc/nginx/conf.d/hoge.conf
ファイル名は適当です。中身はこんなん。tiarraMetroの設置場...
server {
listen 80;
server_name hoge.example.net;
root /path/to/tiarraMetro/public;
index index.php;
if (-f $request_filename) { break; }
if (-d $request_filename) { break; }
rewrite . /index.php last;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /path/to/tiarraM...
include fastcgi_params;
}
}
保存したらconfigtestします。
$ sudo /etc/init.d/nginx configtest
無事通ったらrestartで反映します。
$ sudo /etc/init.d/nginx restart
ブラウザから動作確認して問題なければこれでおしまいです。
お疲れさまでした!!!
**tiarraMetroの過去データを退避してテーブルを作り直す手順...
***これ何? [#s463cd96]
tiarraMetroはlogテーブルにあらゆるIRCの発言を溜め込みます...
*** やりかた(DBつくりなおし版) [#a5b80c31]
mysqlのrootで以下を実行
show databases;
create database tiarra_karia_201610 character set utf8mb4;
show databases;
show grants for karia@localhost;
GRANT ALL PRIVILEGES ON `tiarra_karia_201610`.* TO 'kari...
show grants for karia@localhost;
一旦quitした後に下記。
mysql -u root -p tiarra_karia_201610 < /usr/share/nginx/...
その後、
- tiarraMetroのconf.ymlのDATABASE_NAME
- tiarraの Log::DBIセクションのsource
を書き換え、tiarra再起動でおしまいのはず。。
***やりかた [#y4d8754f]
※AUTO_INCREMENTの数値が増加するため必ずtiarraを停止した状...
show tables;
テーブルの一覧をまず確認。対象テーブルは基本的にはlogのみ...
show create table log;
このコマンドを実行することで以下のようにcreate文が表示さ...
※AUTO_INCREMENTの値は変動する。また "DEFAULT CHARSET=utf8...
CREATE TABLE `log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`channel_id` int(11) DEFAULT NULL,
`nick_id` int(11) DEFAULT NULL,
`log` text,
`is_notice` tinyint(4) DEFAULT NULL,
`created_on` datetime NOT NULL DEFAULT '0000-00-00 00:...
`updated_on` datetime DEFAULT NULL,
PRIMARY KEY (`id`,`created_on`),
KEY `nick_id` (`nick_id`),
KEY `id_idx` (`id`),
KEY `created_channel` (`created_on`,`channel_id`),
KEY `channel_id_and_created_on` (`channel_id`,`created...
) ENGINE=InnoDB AUTO_INCREMENT=xxxxxxx DEFAULT CHARSET=u...
;
logテーブルをリネームする。
rename table log to log_20140807;
先ほど退避しておいた "CREATE TABLE `log`"以下の構文を丸ご...
logテーブルが作られたことを確認する。
show tables;
tiarraを起動して動作確認して終わり。
**tiarra設置方法(CentOSの場合) [#dd1c8390]
※すごい古いので参考にしないほうがよいです(2015年9月追記)
$ wget http://www.clovery.jp/tiarra/archive/2010/02/tiar...
$ tar xzvf tiarra-20100212.tar.gz
$ mv tiarra-20100212 /opt/tiarra
$ /usr/bin/perl /opt/tiarra/tiarra --config=/home/karia/...
とやればおもむろに起動できますが、たぶんなんかエラー吐き...
# cpan -i HTTP::Request::Common
ここから下はAuto::Notifyを使わない人は不要だと思う。
# yum -y install openssl-devel
必ず-develにすること。
# yum -y install perl-Crypt-SSLeay.x86_64
cpanでOpenSSL認識してくれなかったので仕方なく。
# cpan -i IO::Socket::SSL
終了行:
*tiarra [#nf5c3319]
tiarraの設置方法とかメンテとか。
#contents
**tiarraとtiarraMetroの設置方法(Ubuntu 14.04.3 LTSの場合...
2015/09現在です。tiarraMetroもセットで設置する前提で合わ...
***tiarra本体 [#lf3637bb]
$ cd /opt
$ sudo svn co http://svn.coderepos.org/share/lang/perl/t...
最後の引数(tiarra)は設置するディレクトリ名です。上記の場...
古いバージョンを利用するとSSL非対応だったりして割と困るの...
基本的にはこれで問題ないですが、キーワード通知をpushbulle...
$ git clone https://gist.github.com/ba3f9e25314ac2f013db...
$ sudo cp notify_pushbullet/Notify.pm /opt/tiarra/module...
※参考:http://oquno.com/log/eid3150.html
***tiarraMetro [#uac6ae9f]
-参考:http://exe.tyo.ro/tiarrametro/introduction.html
-前提:MySQL、PHP、Apache2またはNginx+php5-fpmがインスト...
今回はNginxでやっていっていますが、Apache2でも変わらない...
$ sudo apt-get install php-pear php5-mcrypt php5-mysql
$ sudo php5enmod mcrypt
PHP関係のモジュールはこれで入るはず。Nginxの場合はphp5-fp...
$ sudo service php5-fpm restart
まずはどっか適当なところでgit cloneします。
$ git clone https://github.com/tyoro/tiarraMetro.git dir...
最後の引数(dir_name)は設置ディレクトリ名です。省略しても...
tiarraMetroに同梱されているLog:DBIをtiarra本体のmoduleデ...
$ cd tiarraMetro
$ sudo cp misc/DBI.pm /opt/tiarra/module/Log/
同じくSendMessage.pmもmoduleディレクトリへ。
$ sudo cp misc/SendMessage.pm /opt/tiarra/module/System/...
tiarraのUnixSocketのパーミッションを700から777へ変更する...
$ sudo vi /opt/tiarra/main/ControlPort.pm
べつにviじゃなくてもなんでもいいですが、何らかの手段で以...
chmod 0700, $filename;
↓
chmod 0777, $filename;
次に、絵文字対応のためtiarraMetroのDBまわりの文字コード指...
$ vi conf/base.php
1ヶ所しかないはずです。
define("DATABASE_CHARSET","utf8");
↓
define("DATABASE_CHARSET","utf8mb4");
$ vi misc/table_create.sql
4ヶ所ぐらいあります(テーブルの数だけ同じように変更する)。
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
↓
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAM...
さらに、utf8mb4の場合そのままではテーブル作成に失敗するこ...
$ sudo vi /etc/mysql/my.cnf
my.cnfに以下の3行を追加。
innodb_file_format = BARRACUDA
innodb_file_per_table = ON
innodb_large_prefix = ON
restartして、ちゃんと反映されたか確認。
$ sudo service mysql restart
$ mysql -u root -p
mysql> show variables like 'innodb_large_prefix';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | ON |
+---------------------+-------+
1 row in set (0.00 sec)
ONになってればOK。
database作成に入ります。db_name,username,passwordは適宜名...
mysql> create database db_name character set utf8mb4;
DBができたかどうか確認。
mysql> show databases;
できてたら次は権限の設定。
mysql> grant all privileges on db_name.* to username@loc...
mysql> show grants for username@localhost;
うまくいってたらこんな感じになるはず。
+-------------------------------------------------------...
| Grants for username@localhost ...
+-------------------------------------------------------...
| GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIE...
| GRANT ALL PRIVILEGES ON `db_name`.* TO 'username'@'loc...
+-------------------------------------------------------...
2 rows in set (0.00 sec)
おわったらさっきのsqlファイルを読み込みます。mysqlコマン...
mysql> quit
Bye
% mysql -u username -p db_name
mysql> source table_create.sql
※以下のようにしても可。
$ mysql -u username -p db_name < table_create.sql
このとき下記のエラーが発生した場合は、ここまでのどこかで...
ERROR 1071 (42000) at line 1: Specified key was too long...
詳細に書くと、innodb_large_prefixが清く正しくONになってい...
無事におわったらテーブルできたよね確認。4テーブルあります。
mysql> show tables;
+----------------------------+
| Tables_in_db_name |
+----------------------------+
| channel |
| log |
| nick |
| priv |
+----------------------------+
4 rows in set (0.00 sec)
logテーブルのstatusを見て文字コードとか合ってるよね確認。
mysql> show table status like 'log'\G
*************************** 1. row *********************...
Name: log
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 49152
Data_free: 0
Auto_increment: 1
Create_time: 2015-09-29 18:56:14
Update_time: NULL
Check_time: NULL
Collation: utf8mb4_general_ci
Checksum: NULL
Create_options: row_format=DYNAMIC
Comment:
1 row in set (0.00 sec)
***tiarra起動 [#d26c287e]
tiarraのconfの書き方はさすがに省略するけど(自分の秘伝の...
1) control-socket-name のコメントを外し、何かしらユニーク...
2) 下記を最下行に追加。
+ System::SendMessage {
}
それではtiarraを起動します。tiarraのconfigを /home/hoge/c...
$ perl /opt/tiarra/tiarra --config=/home/hoge/conf/tiarr...
起動時にERRORがないことを確認しましょう。あと、適当に発言...
いけそうなら一旦落として、下記のようにバックグラウンドで...
$ nohup perl /opt/tiarra/tiarra --config=/home/hoge/conf...
***tiarraMetro起動 [#d62ca0a2]
tiarraMetroのconfをつくります。
$ cp conf.yaml.sample conf.yaml
$ vi conf.yaml
さきほどMySQLに設定した内容を以下のように記載します。NAME...
DATABASE_ID: 'username'
DATABASE_PASS: 'password'
DATABASE_NAME: 'db_name'
あと、tiarra_socket_nameはtiarraのconfに書いたソケット名(...
つぎにNginxのconfを書きます。Apacheの人は適宜やってくださ...
$ sudo vi /etc/nginx/conf.d/hoge.conf
ファイル名は適当です。中身はこんなん。tiarraMetroの設置場...
server {
listen 80;
server_name hoge.example.net;
root /path/to/tiarraMetro/public;
index index.php;
if (-f $request_filename) { break; }
if (-d $request_filename) { break; }
rewrite . /index.php last;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /path/to/tiarraM...
include fastcgi_params;
}
}
保存したらconfigtestします。
$ sudo /etc/init.d/nginx configtest
無事通ったらrestartで反映します。
$ sudo /etc/init.d/nginx restart
ブラウザから動作確認して問題なければこれでおしまいです。
お疲れさまでした!!!
**tiarraMetroの過去データを退避してテーブルを作り直す手順...
***これ何? [#s463cd96]
tiarraMetroはlogテーブルにあらゆるIRCの発言を溜め込みます...
*** やりかた(DBつくりなおし版) [#a5b80c31]
mysqlのrootで以下を実行
show databases;
create database tiarra_karia_201610 character set utf8mb4;
show databases;
show grants for karia@localhost;
GRANT ALL PRIVILEGES ON `tiarra_karia_201610`.* TO 'kari...
show grants for karia@localhost;
一旦quitした後に下記。
mysql -u root -p tiarra_karia_201610 < /usr/share/nginx/...
その後、
- tiarraMetroのconf.ymlのDATABASE_NAME
- tiarraの Log::DBIセクションのsource
を書き換え、tiarra再起動でおしまいのはず。。
***やりかた [#y4d8754f]
※AUTO_INCREMENTの数値が増加するため必ずtiarraを停止した状...
show tables;
テーブルの一覧をまず確認。対象テーブルは基本的にはlogのみ...
show create table log;
このコマンドを実行することで以下のようにcreate文が表示さ...
※AUTO_INCREMENTの値は変動する。また "DEFAULT CHARSET=utf8...
CREATE TABLE `log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`channel_id` int(11) DEFAULT NULL,
`nick_id` int(11) DEFAULT NULL,
`log` text,
`is_notice` tinyint(4) DEFAULT NULL,
`created_on` datetime NOT NULL DEFAULT '0000-00-00 00:...
`updated_on` datetime DEFAULT NULL,
PRIMARY KEY (`id`,`created_on`),
KEY `nick_id` (`nick_id`),
KEY `id_idx` (`id`),
KEY `created_channel` (`created_on`,`channel_id`),
KEY `channel_id_and_created_on` (`channel_id`,`created...
) ENGINE=InnoDB AUTO_INCREMENT=xxxxxxx DEFAULT CHARSET=u...
;
logテーブルをリネームする。
rename table log to log_20140807;
先ほど退避しておいた "CREATE TABLE `log`"以下の構文を丸ご...
logテーブルが作られたことを確認する。
show tables;
tiarraを起動して動作確認して終わり。
**tiarra設置方法(CentOSの場合) [#dd1c8390]
※すごい古いので参考にしないほうがよいです(2015年9月追記)
$ wget http://www.clovery.jp/tiarra/archive/2010/02/tiar...
$ tar xzvf tiarra-20100212.tar.gz
$ mv tiarra-20100212 /opt/tiarra
$ /usr/bin/perl /opt/tiarra/tiarra --config=/home/karia/...
とやればおもむろに起動できますが、たぶんなんかエラー吐き...
# cpan -i HTTP::Request::Common
ここから下はAuto::Notifyを使わない人は不要だと思う。
# yum -y install openssl-devel
必ず-develにすること。
# yum -y install perl-Crypt-SSLeay.x86_64
cpanでOpenSSL認識してくれなかったので仕方なく。
# cpan -i IO::Socket::SSL
ページ名: