pgroongaとpg_bigmの比較をとりいそぎ
2015年1月22日 日常PostgreSQLで全文検索をするインデックスを作成するのに、
いままでsenna(とtextsearch_senna)を使っていたのですが、
今回DBを9.4にしたところ使えなくなってしまっていたので、
現在色々調査中です。
・pgroonga
・pg_bigm
を試運転してみました。
■環境
OS:CentOS5.5(32bit)
PostgreSQL:9.4
※割と古いテスト機なので、32bitです。注意。
64bit機で試した方が良かった感。というか試します。
データセットは6万件くらいのニュース見出しです。
【2015.01.22 21時修正】この環境の項目を上に持ってきました。
とりいそぎ結果をぺたぺ貼っておく。
■pgroonga
QUERY PLAN
Bitmap Heap Scan on items (cost=170.91..2826.87 rows=21517 width=79) (actual time=18.649..19.660 rows=429 loops=1)
Recheck Cond: (disp_title %% ’インフルエンザ’::text)
Heap Blocks: exact=368
-> Bitmap Index Scan on items_disp_title_pgroonga_index (cost=0.00..165.53 rows=21517 width=0) (actual time=18.585..18.585 rows=429 loops=1)
Index Cond: (disp_title %% ’インフルエンザ’::text)
Planning time: 0.105 ms
Execution time: 20.210 ms
QUERY PLAN
Bitmap Heap Scan on items (cost=114.42..2662.79 rows=10758 width=79) (actual time=2.510..2.656 rows=43 loops=1)
Recheck Cond: ((disp_title %% ’インフルエンザ’::text) AND (disp_title %% ’小児’::text))
Heap Blocks: exact=42
-> Bitmap Index Scan on items_disp_title_pgroonga_index (cost=0.00..111.73 rows=10758 width=0) (actual time=2.488..2.488 rows=43 loops=1)
Index Cond: ((disp_title %% ’インフルエンザ’::text) AND (disp_title %% ’小児’::text))
Planning time: 0.113 ms
Execution time: 2.798 ms
※AND検索の結果がおかしい。この場合「小児」の結果しかOutputされない。
【2015.01.22 21時追記】↑修正していただいたようです。
【2015.01.23 17時追記】↑↑修正を確認しました。@@演算子も実装していただけました、ありがとうございます!
■bigm
QUERY PLAN
Bitmap Heap Scan on items (cost=82.59..1791.51 rows=851 width=79) (actual time=0.791..4.576 rows=429 loops=1)
Recheck Cond: (disp_title ~~ ’%インフルエンザ%’::text)
Heap Blocks: exact=368
-> Bitmap Index Scan on items_disp_title_bigm_idx (cost=0.00..82.38 rows=851 width=0) (actual time=0.695..0.695 rows=429 loops=1)
Index Cond: (disp_title ~~ ’%インフルエンザ%’::text)
Planning time: 0.474 ms
Execution time: 5.297 ms
QUERY PLAN
Bitmap Heap Scan on items (cost=88.00..92.02 rows=1 width=79) (actual time=0.340..0.346 rows=2 loops=1)
Recheck Cond: ((disp_title ~~ ’%インフルエンザ%’::text) AND (disp_title ~~ ’%小児%’::text))
Heap Blocks: exact=2
-> Bitmap Index Scan on items_disp_title_bigm_idx (cost=0.00..88.00 rows=1 width=0) (actual time=0.323..0.323 rows=2 loops=1)
Index Cond: ((disp_title ~~ ’%インフルエンザ%’::text) AND (disp_title ~~ ’%小児%’::text))
Planning time: 0.513 ms
Execution time: 0.394 ms
■indexなし
QUERY PLAN
Seq Scan on items (cost=0.00..2924.93 rows=851 width=79) (actual time=0.174..47.946 rows=429 loops=1)
Filter: (disp_title ~~ ’%インフルエンザ%’::text)
Rows Removed by Filter: 42605
Planning time: 0.292 ms
Execution time: 48.517 ms
QUERY PLAN
Seq Scan on items (cost=0.00..3032.51 rows=1 width=79) (actual time=0.387..47.178 rows=2 loops=1)
Filter: ((disp_title ~~ ’%インフルエンザ%’::text) AND (disp_title ~~ ’%小児%’::text))
Rows Removed by Filter: 43032
Planning time: 0.474 ms
Execution time: 47.213 ms
取り急ぎ以上です。
textseach_jaも試したいのですが、また後ほど。
速度だけでの結果だけみればbigm優勢なんですが、クエリの書き方(%%と@@演算子)がtextsearch_sennaで使っててものすごい便利だったので、始動したばかりのpgroonga、期待しております!
いままでsenna(とtextsearch_senna)を使っていたのですが、
今回DBを9.4にしたところ使えなくなってしまっていたので、
現在色々調査中です。
・pgroonga
・pg_bigm
を試運転してみました。
■環境
OS:CentOS5.5(32bit)
PostgreSQL:9.4
※割と古いテスト機なので、32bitです。注意。
64bit機で試した方が良かった感。というか試します。
データセットは6万件くらいのニュース見出しです。
【2015.01.22 21時修正】この環境の項目を上に持ってきました。
とりいそぎ結果をぺたぺ貼っておく。
■pgroonga
QUERY PLAN
Bitmap Heap Scan on items (cost=170.91..2826.87 rows=21517 width=79) (actual time=18.649..19.660 rows=429 loops=1)
Recheck Cond: (disp_title %% ’インフルエンザ’::text)
Heap Blocks: exact=368
-> Bitmap Index Scan on items_disp_title_pgroonga_index (cost=0.00..165.53 rows=21517 width=0) (actual time=18.585..18.585 rows=429 loops=1)
Index Cond: (disp_title %% ’インフルエンザ’::text)
Planning time: 0.105 ms
Execution time: 20.210 ms
QUERY PLAN
Bitmap Heap Scan on items (cost=114.42..2662.79 rows=10758 width=79) (actual time=2.510..2.656 rows=43 loops=1)
Recheck Cond: ((disp_title %% ’インフルエンザ’::text) AND (disp_title %% ’小児’::text))
Heap Blocks: exact=42
-> Bitmap Index Scan on items_disp_title_pgroonga_index (cost=0.00..111.73 rows=10758 width=0) (actual time=2.488..2.488 rows=43 loops=1)
Index Cond: ((disp_title %% ’インフルエンザ’::text) AND (disp_title %% ’小児’::text))
Planning time: 0.113 ms
Execution time: 2.798 ms
※AND検索の結果がおかしい。この場合「小児」の結果しかOutputされない。
【2015.01.22 21時追記】↑修正していただいたようです。
【2015.01.23 17時追記】↑↑修正を確認しました。@@演算子も実装していただけました、ありがとうございます!
■bigm
QUERY PLAN
Bitmap Heap Scan on items (cost=82.59..1791.51 rows=851 width=79) (actual time=0.791..4.576 rows=429 loops=1)
Recheck Cond: (disp_title ~~ ’%インフルエンザ%’::text)
Heap Blocks: exact=368
-> Bitmap Index Scan on items_disp_title_bigm_idx (cost=0.00..82.38 rows=851 width=0) (actual time=0.695..0.695 rows=429 loops=1)
Index Cond: (disp_title ~~ ’%インフルエンザ%’::text)
Planning time: 0.474 ms
Execution time: 5.297 ms
QUERY PLAN
Bitmap Heap Scan on items (cost=88.00..92.02 rows=1 width=79) (actual time=0.340..0.346 rows=2 loops=1)
Recheck Cond: ((disp_title ~~ ’%インフルエンザ%’::text) AND (disp_title ~~ ’%小児%’::text))
Heap Blocks: exact=2
-> Bitmap Index Scan on items_disp_title_bigm_idx (cost=0.00..88.00 rows=1 width=0) (actual time=0.323..0.323 rows=2 loops=1)
Index Cond: ((disp_title ~~ ’%インフルエンザ%’::text) AND (disp_title ~~ ’%小児%’::text))
Planning time: 0.513 ms
Execution time: 0.394 ms
■indexなし
QUERY PLAN
Seq Scan on items (cost=0.00..2924.93 rows=851 width=79) (actual time=0.174..47.946 rows=429 loops=1)
Filter: (disp_title ~~ ’%インフルエンザ%’::text)
Rows Removed by Filter: 42605
Planning time: 0.292 ms
Execution time: 48.517 ms
QUERY PLAN
Seq Scan on items (cost=0.00..3032.51 rows=1 width=79) (actual time=0.387..47.178 rows=2 loops=1)
Filter: ((disp_title ~~ ’%インフルエンザ%’::text) AND (disp_title ~~ ’%小児%’::text))
Rows Removed by Filter: 43032
Planning time: 0.474 ms
Execution time: 47.213 ms
取り急ぎ以上です。
textseach_jaも試したいのですが、また後ほど。
速度だけでの結果だけみればbigm優勢なんですが、クエリの書き方(%%と@@演算子)がtextsearch_sennaで使っててものすごい便利だったので、始動したばかりのpgroonga、期待しております!
icinga 1.0.2の設定ファイルに関して
2010年8月9日 日常 コメント (2)前回の続きというか補足です。
ここの日記、タブが使えなくて、くっついちゃってるところがあるので、気をつけてください(汗
■icingaの設定ファイルの記述に関して
/usr/local/icinga/etc/objects/のtemplate.cfgをコピーし編集。
nagiosと違い、関連のコンタクト・ホスト・サービスの記載を1ファイルで行うよう推奨されているようです。
コンタクトグループはデフォルトで設定のあるadminを利用することにし、今回はホスト・サービスの設定を行いました。
$ cd /usr/local/icinga/etc/objects/
$ cp template.cfg hosts.cfg
$ vi hosts.cfg
編集の結果は以下。
ほぼデフォルトで設定しているので別途設定が必要な場合は、調べてみてください。
(icingaで検索してもあまり出てこないので、nagiosの設定で調べていいかと思います。)
尚、prefix・説明記述は削除してあります。
hosts.cfgの記載が終わったら、hosts.cfgを読み込む設定を、
/usr/local/icinga/etc/icinga.cfgの中に記載。
$ vi /usr/local/icinga/etc/icinga.cfg
ここまでできたら、記述が間違ってないかをチェック。
# /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg
記述の間違いがあれば、ここでエラーが出るので、指示に従って直しましょう。
問題なければサービスを再起動します。
# /sbin/service icinga restart
ex.) http://localhost/icinga/
にアクセスし、各ホスト情報が見れれば設定は完了です。
ここの日記、タブが使えなくて、くっついちゃってるところがあるので、気をつけてください(汗
■icingaの設定ファイルの記述に関して
/usr/local/icinga/etc/objects/のtemplate.cfgをコピーし編集。
nagiosと違い、関連のコンタクト・ホスト・サービスの記載を1ファイルで行うよう推奨されているようです。
コンタクトグループはデフォルトで設定のあるadminを利用することにし、今回はホスト・サービスの設定を行いました。
$ cd /usr/local/icinga/etc/objects/
$ cp template.cfg hosts.cfg
$ vi hosts.cfg
編集の結果は以下。
ほぼデフォルトで設定しているので別途設定が必要な場合は、調べてみてください。
(icingaで検索してもあまり出てこないので、nagiosの設定で調べていいかと思います。)
尚、prefix・説明記述は削除してあります。
# Define a host template - ホストデフォルト設定
define host{
name live-host; ホスト設定の名前
notifications_enabled 1; 通知の利用
event_handler_enabled 1; イベントハンドラの利用
flap_detection_enabled 1; 状態反転の検出
process_perf_data 1; パフォーマンスデータの統計
retain_status_information 1; nagiosの再起動時にも状態を保存する
retain_nonstatus_information 1; 状態以外の情報も保存する
check_command check-host-alive; 確認のためのコマンド(check-host-aliveはping)
max_check_attempts 10; 確認のためのコマンドの最大数
notification_interval 120; 通知の間隔
notification_period 24x7; 通知時間帯
notification_options d,u,r; 通知レベルの決定
contact_groupsadmins; 通知コンタクトグループの指定
register 0; 利用フラグ
}
# Define Hosts - ホスト設定
define host{
uselive-host; ホストテンプレート名を記述
host_name www; ホスト名
alias www.hogehoge.com; ホストエイリアス(ドメイン)
address 192.168.1.2; ホストアドレス
check_command check-host-alive; 利用コマンド
}
define host{
uselive-host
host_name mail
alias mail.hogehoge.com
address 192.168.1.3
check_command check-host-alive
}
# Define an optional hostgroup for Linux machines
define hostgroup{
hostgroup_name live-hostg; ホストグループ名
aliashosts-group-is-live ; ホストグループ実名(特に利用していない)
memberswww, mail; グループに所属するホストを「,」区切りで記載
}
# Define a service template
define service {
name live-service; サービステンプレート名
active_checks_enabled 1; サービステンプレートの利用
passive_checks_enabled 1; パッシブサービスのチェックの可否
parallelize_check 1; それぞれ個別の(パラレルな)チェックを行う
obsess_over_service 1; obsess over(強制追跡)サービスのチェック
check_freshness 0; freshnessチェック
notifications_enabled 1; 通知の利用
event_handler_enabled 1; イベントハンドラの利用
flap_detection_enabled 1; 状態反転の検出
process_perf_data 1; パフォーマンスデータの統計
retain_status_information 1; nagiosの再起動時にも状態を保存する
retain_nonstatus_information 1; 状態以外の情報も保存する
is_volatile 0; 揮発性サービス
check_period 24x7; チェックする時間帯の指定
max_check_attempts 3; 通知するまでに何回チェックするか
normal_check_interval 10; 通常のチェック間隔
retry_check_interval 3; 異常を検知したときのチェック間隔
notification_interval 120; 通知する間隔
notification_period 24x7; 通知する時間帯の指定
notification_options w,u,c,r; どの状態の時通知するか
register 0; 利用フラグ
}
# Define Services
# ssh の監視設定
define service{
use live-service; 使用するテンプレートの名前
host_name www, mail ; 対象ホストの名前
service_description SSH; サービスの名前
check_command check_ssh; チェックするコマンド(command.cfg内を確認)
contact_groups admins; 通知するコンタクト内のグループ
}
# HTTP 監視設定
define service {
use live-service
host_name www
service_description HTTP
check_command check_http
contact_groups admins
}
# POP 監視設定
define service {
use live-service
host_name mail
service_description POP
check_command check_pop
contact_groups admins
}
# SMTP 監視設定 (コマンドの「!」以降はArgumentとして扱われる、ここではOB25対策を記載)
define service {
use live-service
host_name mail
service_description SMTP
check_command check_smtp!-p 587
contact_groups admins
}
hosts.cfgの記載が終わったら、hosts.cfgを読み込む設定を、
/usr/local/icinga/etc/icinga.cfgの中に記載。
$ vi /usr/local/icinga/etc/icinga.cfg
(省略)
# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/icinga/etc/objects/localhost.cfg
# Definitions for monitoring the Linux host# ←追加
cfg_file=/usr/local/icinga/etc/objects/hosts.cfg# ←追加
(省略)
ここまでできたら、記述が間違ってないかをチェック。
# /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg
記述の間違いがあれば、ここでエラーが出るので、指示に従って直しましょう。
問題なければサービスを再起動します。
# /sbin/service icinga restart
ex.) http://localhost/icinga/
にアクセスし、各ホスト情報が見れれば設定は完了です。
CentOS4.7へのicinga 1.0.2 のインストール
2010年8月6日 日常特に支障が無かったので、ずっとほったらかしだったnagiosの1.x系が、現在3.x系になってて、もう2世代渡ってるし、nagios自身サーバ数制限ありフリーになってたので、どうしたもんかなぁと思ってたんですが、派生プロジェクトicingaというのが去年辺りから活動してるみたいなので、そっちを入れてみました。
■必要モジュールのインストール・アップデート
先にlistしてモジュールの状態を確認して、適宜update→installに書き換えてください。
自分の場合は全モジュールが先に入ってたので、アップデートだけ行いました。
# yum update gcc glibc glibc-common gd gd-devel
# yum update libpng libpng-devel
# yum update net-snmp net-snmp-devel
■ユーザの作成
icinga導入サーバにicinga用のアカウント・グループを作成。
# /usr/sbin/useradd icinga
# passwd icinga
# /usr/sbin/groupadd icinga-cmd
# /usr/sbin/usermod -a -G icinga-cmd icinga
# /usr/sbin/usermod -a -G icinga-cmd apache
# su icinga
■ソースのダウンロード
公式ページ(http://www.icinga.org/)から最新ソースを手に入れてください。gitでの配布も対応しているようです。
$ cd /usr/src
$ wget http://sourceforge.net/projects/icinga/files/icinga/1.0.2/icinga-1.0.2.tar.gz/download
Nagios Plugin(http://nagiosplugins.org/)のダウンロード
$ wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz/download
それぞれ解凍しておく。
$ tar -zxvf icinga-1.0.2.tar.gz
$ tar -zxvf nagios-plugins-1.4.15.tar.gz
■makeとインストール
configure, make, make installをサクサク行います。まずはicingaから。
$ cd /usr/src/icinga-1.0.2
$ ./configure --with-command-group=icinga-cmd
$ make all
# paco -D make fullinstall
# make install-cgis
# make install-webconf
# htpasswd /usr/local/icinga/etc/htpasswd.users icingaadmin
(※1)
次にnagios pluginもインストールします。
$ cd /usr/src/nagios-plugins-1.4.15
$ ./configure --prefix=/usr/local/icinga --with-nagios-user=icinga
$ make
# paco -D make install
■サービス設定
一度apacheを再起動し、サービス設定をしてとりあえず立ち上げてみます。
# /sbin/service httpd restart
# chkconfig --add icinga
# chkconfig icinga on
$ cd /usr/local/icinga/etc/objects/
$ vi contacts.cfg
→メールアドレスを変更する
# /sbin/service icinga start
ブラウザでアクセスして見れるか確認します。
パスワード入力のダイアログがでると思うので、※1で設定したアカウントとパスを入力して下さい。
ex.) http://localhost/icinga/ or http://yourdomain.com/icinga/
現段階では、localhostの情報がモニタされていると思います。
あとは/usr/local/icinga/etc/objects/のtemplate.cfgをコピーして、
hosts.cfgを作成し、モニターする機器の設定を行い、
icinga.cfgの中にhosts.cfgを読み込む設定を記載して、
記述が間違ってないかをチェックします。
この辺りは次回にでも簡単にかければと思いますので、よろしくおねがいします。
■必要モジュールのインストール・アップデート
先にlistしてモジュールの状態を確認して、適宜update→installに書き換えてください。
自分の場合は全モジュールが先に入ってたので、アップデートだけ行いました。
# yum update gcc glibc glibc-common gd gd-devel
# yum update libpng libpng-devel
# yum update net-snmp net-snmp-devel
■ユーザの作成
icinga導入サーバにicinga用のアカウント・グループを作成。
# /usr/sbin/useradd icinga
# passwd icinga
# /usr/sbin/groupadd icinga-cmd
# /usr/sbin/usermod -a -G icinga-cmd icinga
# /usr/sbin/usermod -a -G icinga-cmd apache
# su icinga
■ソースのダウンロード
公式ページ(http://www.icinga.org/)から最新ソースを手に入れてください。gitでの配布も対応しているようです。
$ cd /usr/src
$ wget http://sourceforge.net/projects/icinga/files/icinga/1.0.2/icinga-1.0.2.tar.gz/download
Nagios Plugin(http://nagiosplugins.org/)のダウンロード
$ wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz/download
それぞれ解凍しておく。
$ tar -zxvf icinga-1.0.2.tar.gz
$ tar -zxvf nagios-plugins-1.4.15.tar.gz
■makeとインストール
configure, make, make installをサクサク行います。まずはicingaから。
$ cd /usr/src/icinga-1.0.2
$ ./configure --with-command-group=icinga-cmd
$ make all
# paco -D make fullinstall
# make install-cgis
# make install-webconf
# htpasswd /usr/local/icinga/etc/htpasswd.users icingaadmin
(※1)
次にnagios pluginもインストールします。
$ cd /usr/src/nagios-plugins-1.4.15
$ ./configure --prefix=/usr/local/icinga --with-nagios-user=icinga
$ make
# paco -D make install
■サービス設定
一度apacheを再起動し、サービス設定をしてとりあえず立ち上げてみます。
# /sbin/service httpd restart
# chkconfig --add icinga
# chkconfig icinga on
$ cd /usr/local/icinga/etc/objects/
$ vi contacts.cfg
→メールアドレスを変更する
# /sbin/service icinga start
ブラウザでアクセスして見れるか確認します。
パスワード入力のダイアログがでると思うので、※1で設定したアカウントとパスを入力して下さい。
ex.) http://localhost/icinga/ or http://yourdomain.com/icinga/
現段階では、localhostの情報がモニタされていると思います。
あとは/usr/local/icinga/etc/objects/のtemplate.cfgをコピーして、
hosts.cfgを作成し、モニターする機器の設定を行い、
icinga.cfgの中にhosts.cfgを読み込む設定を記載して、
記述が間違ってないかをチェックします。
この辺りは次回にでも簡単にかければと思いますので、よろしくおねがいします。
chika用のブックマークレット(Firefox)
2010年6月5日 日常javascript:var%20url%20=%20location.href;%20%20if%20(url.indexOf(’read.cgi’)%20!=%20-1){%20location.href%20=%20’http://127.0.0.1:8823/thread/’%20+%20url;%20}%20else%20{%20location.href%20=%20’bbs2ch:board:’%20+%20url;%20}
なんか探しても無かったので。DiaryNoteの仕様でシングルコーテーションが全角になってるので半角にしてください。
あと、こまけぇことはググってくださいw
なんか探しても無かったので。DiaryNoteの仕様でシングルコーテーションが全角になってるので半角にしてください。
あと、こまけぇことはググってくださいw
再起動問題ってのは知ってたんですが、最近気がついたら再起動してるのでどうにもこうにも。
というわけで、ショップで修理(ファームアップデート?)してもらうか、自分でとりあえず初期化してみようかと思ったんですが、現状MMSのバックアップが取れないんですよね・・・。
基本メール捨てないので、1000件以上あるし、どうしたもんかと思ってたんですが、どっかにメールを格納しているフォルダがあるはずだと思って検索。
あったあった。
本体メモリ(C):\private\1000484b\Mail2
以下にあるとのこと。
なんだけど、Y-Browserはフォルダコピーできないので、
SExplorerを使います。
http://simonjudge.com/sexplorer.html
これを、SDメモリのほうにコピーして吸い出せばとりあえずバックアップ代わりになりそうなので、ちょっとチャレンジしてみます。
【追記】
現段階で吸い出して、中身を見てはみたのですが、メッセージ内容しかない状態です。メッセージIDとあて先を紐付けたデータは別のところにあるっぽいです。うーんどうしたもんか・・・。
というわけで、ショップで修理(ファームアップデート?)してもらうか、自分でとりあえず初期化してみようかと思ったんですが、現状MMSのバックアップが取れないんですよね・・・。
基本メール捨てないので、1000件以上あるし、どうしたもんかと思ってたんですが、どっかにメールを格納しているフォルダがあるはずだと思って検索。
あったあった。
本体メモリ(C):\private\1000484b\Mail2
以下にあるとのこと。
なんだけど、Y-Browserはフォルダコピーできないので、
SExplorerを使います。
http://simonjudge.com/sexplorer.html
これを、SDメモリのほうにコピーして吸い出せばとりあえずバックアップ代わりになりそうなので、ちょっとチャレンジしてみます。
【追記】
現段階で吸い出して、中身を見てはみたのですが、メッセージ内容しかない状態です。メッセージIDとあて先を紐付けたデータは別のところにあるっぽいです。うーんどうしたもんか・・・。
WordPress ME → 本家・日本語版への移行に関して(主にDB移行)
2010年3月17日 日常現在あまり力を入れずに運用しているWordPressMEのブログがあるわけです。
当時の流行というか趨勢というか、多分文字コードが使えなかったので、MEにしてたんだろうけど、現在は本家で日本語は使えるみたいだし、MEももう開発が止まっているみたいだし、WordPressの本家への移行を考えたので、ちょっと移行作業のテストをしてみた。
WPのスクリプト自体は、一応全部バックアップはしておくものの、wp-imagesとwp-contentsのthemeとuploadsだけを残し、あと上書きするだけで問題なく動作する。
(themeの文字コードの修正は行わないとダメでしたが。)
pluginも引き継いでもいいけど、不要なものの方が多いので、
現場から要望が上がったら対応する方向に。
で、問題はDB。
とりあえず元の状態が、
・latin1のDBの中にEUCのデータ
という不思議な状態なので、これをなんとかするのに次のような作業を行いました。
ちなみに設定は以下の通りで、マシン自身別のサーバになります。
同一サーバで移行作業を行う場合は、別のDBを切って、動作確認するのがいいんじゃないでしょうかね。
・共通設定
DB名:wordpress
・移行元設定
Server version: 4.1.22
Protocol version: 10
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
・移行先設定
Server version: 5.0.82
Protocol version: 10
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
1. スキーマバックアップ(移行元)
まずは移行元サーバにてスキーマをバックアップする。
$ mysqldump -u root -p --default-character-set=latin1 -c -n -d wordpress > wp_20100316_latin_scheme.sql
ここにはスキーマの記述だけなので、ASCIIだから特に文字コード変換する必要が無い。
latin1からutf8に切り替えるので、CREATE TABLE文にあるlatin1の記述を置換してやる。
$ sed ’s/latin1/utf8/g’ wp_20100316_latin_scheme.sql > wp_20100316_utf8_scheme.sql
2. データバックアップ(移行元)
で、データをバックアップします。--default-character-setを指定してやってください。
$ mysqldump -u root -p --default-character-set=latin1 -c -n -t wordpress > wp_20100316_latin_data.sql
その後、文字コードを変換してやるんですが、大方の予想通りここで嵌りました。
最初はnkfでやってたんだけど、どうもエスケープシーケンスの処理で変換がおかしいところがあったので、iconvに切替。
$ iconv -c -f EUC-JP-MS -t UTF-8 wp_20100316_latin_data.sql > wp_20100316_utf8_data.sql
その後、disable-keysの記述にlatin1の記述があったので念のため置換。
$ sed -i ’s/latin1/utf8/g’ wp_20100316_utf8_data.sql
データは大きいので圧縮して移行先に転送する。
$ bzip2 wp_20100316_utf8_data.sql
3. データ転送(移行元→移行先)
scpコマンドでやるのが面倒だったので、winscpでデータを移動w
wp_20100316_utf8_scheme.sql
wp_20100316_utf8_data.sql.bz2
の2ファイルを転送。これで移行元での作業は終了です。
次からは移行先サーバでの作業になります。
4. WP用MySQLアカウント作成・DB作成(移行先)
mysqlにログオンして、DBを作成します。
$ mysql -u root -p
mysql> CREATE DATABASE wordpress default character set utf8;
ついでなので、wordpress用のMySQLユーザも作成しておく。
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wpadmin@localhost IDENTIFIED BY ’%PASSWORD%’ WITH GRANT OPTION;
5. スキームリストア(移行先)
dumpしたものをリストア、スキーマの文字コード記述も変えたので、--default-character-set=utf8を入れる。
$ mysql -p -u wpadmin wordpress --default-character-set=utf8 --max_allowed_packet=128M < wp_20100316_utf8_scheme.sql
6. データリストア(移行先)
dumpしたものをリストア、データ自身の文字コードを変えたので、--default-character-set=utf8を入れる。
$ bunzip2 wp20100316_utf8_data.sql.bz2
$ mysql -p -u wpadmin wordpress --default-character-set=utf8 --max_allowed_packet=128M < wp_20100316_utf8_data.sql
以上です。
■refs
以下参考資料です。ありがとうございます。
http://pc.watanet.com/?p=315
http://www.sssg.org/public/index.php?MySQL%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9%A4%CE%B0%DC%B9%D4
当時の流行というか趨勢というか、多分文字コードが使えなかったので、MEにしてたんだろうけど、現在は本家で日本語は使えるみたいだし、MEももう開発が止まっているみたいだし、WordPressの本家への移行を考えたので、ちょっと移行作業のテストをしてみた。
WPのスクリプト自体は、一応全部バックアップはしておくものの、wp-imagesとwp-contentsのthemeとuploadsだけを残し、あと上書きするだけで問題なく動作する。
(themeの文字コードの修正は行わないとダメでしたが。)
pluginも引き継いでもいいけど、不要なものの方が多いので、
現場から要望が上がったら対応する方向に。
で、問題はDB。
とりあえず元の状態が、
・latin1のDBの中にEUCのデータ
という不思議な状態なので、これをなんとかするのに次のような作業を行いました。
ちなみに設定は以下の通りで、マシン自身別のサーバになります。
同一サーバで移行作業を行う場合は、別のDBを切って、動作確認するのがいいんじゃないでしょうかね。
・共通設定
DB名:wordpress
・移行元設定
Server version: 4.1.22
Protocol version: 10
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
・移行先設定
Server version: 5.0.82
Protocol version: 10
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
1. スキーマバックアップ(移行元)
まずは移行元サーバにてスキーマをバックアップする。
$ mysqldump -u root -p --default-character-set=latin1 -c -n -d wordpress > wp_20100316_latin_scheme.sql
ここにはスキーマの記述だけなので、ASCIIだから特に文字コード変換する必要が無い。
latin1からutf8に切り替えるので、CREATE TABLE文にあるlatin1の記述を置換してやる。
$ sed ’s/latin1/utf8/g’ wp_20100316_latin_scheme.sql > wp_20100316_utf8_scheme.sql
2. データバックアップ(移行元)
で、データをバックアップします。--default-character-setを指定してやってください。
$ mysqldump -u root -p --default-character-set=latin1 -c -n -t wordpress > wp_20100316_latin_data.sql
その後、文字コードを変換してやるんですが、大方の予想通りここで嵌りました。
最初はnkfでやってたんだけど、どうもエスケープシーケンスの処理で変換がおかしいところがあったので、iconvに切替。
$ iconv -c -f EUC-JP-MS -t UTF-8 wp_20100316_latin_data.sql > wp_20100316_utf8_data.sql
その後、disable-keysの記述にlatin1の記述があったので念のため置換。
$ sed -i ’s/latin1/utf8/g’ wp_20100316_utf8_data.sql
データは大きいので圧縮して移行先に転送する。
$ bzip2 wp_20100316_utf8_data.sql
3. データ転送(移行元→移行先)
scpコマンドでやるのが面倒だったので、winscpでデータを移動w
wp_20100316_utf8_scheme.sql
wp_20100316_utf8_data.sql.bz2
の2ファイルを転送。これで移行元での作業は終了です。
次からは移行先サーバでの作業になります。
4. WP用MySQLアカウント作成・DB作成(移行先)
mysqlにログオンして、DBを作成します。
$ mysql -u root -p
mysql> CREATE DATABASE wordpress default character set utf8;
ついでなので、wordpress用のMySQLユーザも作成しておく。
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wpadmin@localhost IDENTIFIED BY ’%PASSWORD%’ WITH GRANT OPTION;
5. スキームリストア(移行先)
dumpしたものをリストア、スキーマの文字コード記述も変えたので、--default-character-set=utf8を入れる。
$ mysql -p -u wpadmin wordpress --default-character-set=utf8 --max_allowed_packet=128M < wp_20100316_utf8_scheme.sql
6. データリストア(移行先)
dumpしたものをリストア、データ自身の文字コードを変えたので、--default-character-set=utf8を入れる。
$ bunzip2 wp20100316_utf8_data.sql.bz2
$ mysql -p -u wpadmin wordpress --default-character-set=utf8 --max_allowed_packet=128M < wp_20100316_utf8_data.sql
以上です。
■refs
以下参考資料です。ありがとうございます。
http://pc.watanet.com/?p=315
http://www.sssg.org/public/index.php?MySQL%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9%A4%CE%B0%DC%B9%D4
Retrospectiva 2.0 (RC3)
2010年1月16日 日常あ、あけましておめでとうございます。
あああああ、なんか間違えて今日というか昨日書いた日記消してしまったんですけど、
Retrospectivaの2.0のRC3が出てたのでインストールしました。
Retrospectivaかなり改善されています。
Subversion問題も解決してるし、動作も軽くなってますので、オススメです。
が、migrateするときのdatabase.ymlがなんかおかしいので、昔のをそのまま使っております。
やっぱバックアップちゃんと取っておいて正解だったなぁ・・・。
今回、時間がなかったので作業かなり端折ったんですけど、mysql(まぁ利用DB)のアップデートとかはしておいたほうがよさそうですね。
あああああ、なんか間違えて今日というか昨日書いた日記消してしまったんですけど、
Retrospectivaの2.0のRC3が出てたのでインストールしました。
Retrospectivaかなり改善されています。
Subversion問題も解決してるし、動作も軽くなってますので、オススメです。
が、migrateするときのdatabase.ymlがなんかおかしいので、昔のをそのまま使っております。
やっぱバックアップちゃんと取っておいて正解だったなぁ・・・。
今回、時間がなかったので作業かなり端折ったんですけど、mysql(まぁ利用DB)のアップデートとかはしておいたほうがよさそうですね。
技術ネタはちょくちょくあるんですが、ちょいと忙しくて書く暇が無いのであります。終わってないのもあるし。
次のネタとしては、retrospectivaの2.0アップデートを予定しております。
インストール自体はしたんだけど、使えてないんですよね・・・(汗
Trac、RedMineに関しては追えても無いな、そういえば・・・。
あとは、なぜかCentOSに混じって存在してたRHELサーバ関係とか。統一しといてくれよと思った。
卓上ホルダーも全然すすんでません。
イメージだけはあるんだけど、アクリル曲げて貰う設計図かかないとなぁ。
次のネタとしては、retrospectivaの2.0アップデートを予定しております。
インストール自体はしたんだけど、使えてないんですよね・・・(汗
Trac、RedMineに関しては追えても無いな、そういえば・・・。
あとは、なぜかCentOSに混じって存在してたRHELサーバ関係とか。統一しといてくれよと思った。
卓上ホルダーも全然すすんでません。
イメージだけはあるんだけど、アクリル曲げて貰う設計図かかないとなぁ。
705nkにFring入れたんですが
2009年6月24日 日常※705nkハック関連は過去の記事も含めて自己責任でお願いします!
少なくても試す前にシステムバックアップしておきましょう!
噂のFringをインストールしたんですが、接続がAccess Internetしか繋がらない。=パケ死
っぽいので即アンインストールしました。その他にもいくつか不審な点が多いので、あまりオススメしません。
というわけで、もうちょっと詳しい話も書いてたんですが、省略。
無かったことにします。
というかFring消して寝ようかと思った直後に携帯宛に番号非通知のテレビ電話きたら怖いよ正直。
偶然にしてはできすぎてるしなぁ・・・。
少なくても試す前にシステムバックアップしておきましょう!
噂のFringをインストールしたんですが、接続がAccess Internetしか繋がらない。=パケ死
っぽいので即アンインストールしました。その他にもいくつか不審な点が多いので、あまりオススメしません。
というわけで、もうちょっと詳しい話も書いてたんですが、省略。
無かったことにします。
というかFring消して寝ようかと思った直後に携帯宛に番号非通知のテレビ電話きたら怖いよ正直。
偶然にしてはできすぎてるしなぁ・・・。
705nk卓上ホルダーを自作してみようか![決意編]
2009年6月20日 日常ちょっと思うところがあったので、というか、USB接続が不安定すぎるので、自重("じじゅう"ね)で接続を安定させるために、100均系のパーツとかで705nk(N73)の卓上ホルダーを作ってみることにしようかと。
手始めに検索したところ、純正の卓上ホルダはあったそうなんですが、日本ではNokiaStoraがあったころも取り扱ってなくて、Geekな人たちは香港から仕入れていたとかなんとか。
そのときに知っていればよかったんですがね・・・。
あと、802nkの卓上ホルダが使えればいいんですが、売ってもらえるもんなんだろうか・・・。
まぁ、あんまりすぐには出来ないかもしれませんが、経過があればここに記していくつもりです。
手始めに検索したところ、純正の卓上ホルダはあったそうなんですが、日本ではNokiaStoraがあったころも取り扱ってなくて、Geekな人たちは香港から仕入れていたとかなんとか。
そのときに知っていればよかったんですがね・・・。
あと、802nkの卓上ホルダが使えればいいんですが、売ってもらえるもんなんだろうか・・・。
まぁ、あんまりすぐには出来ないかもしれませんが、経過があればここに記していくつもりです。
CnetOS 4.7でのCPU温度の確認
2009年6月4日 日常 コメント (5)PHPをでぶん回しプログラムを実行していると以下の表示。
これは・・・。
というわけでとりあえずCPUの温度を測れるように設定しました。
# yum install lm_sensors*
# /usr/sbin/sensors-detect
(全部YES→リターンでOK)
最後の方に以下のメッセージが表示されるのでメモしておく(HW構成によって変わるんで自分でちゃんとメモしましょう)。
でメモどおりにファイルの追加
# vi /etc/modules.conf
こっちは追記。
# vi /etc/rc.local
これで再起動して
# reboot
以下のコマンドを実行すると各種温度が表示されます。
# sensors
CPU0: Temperature above threshold
CPU0: Running in modulated clock mode
これは・・・。
というわけでとりあえずCPUの温度を測れるように設定しました。
# yum install lm_sensors*
# /usr/sbin/sensors-detect
(全部YES→リターンでOK)
最後の方に以下のメッセージが表示されるのでメモしておく(HW構成によって変わるんで自分でちゃんとメモしましょう)。
To make the sensors modules behave correctly, add these lines to
/etc/modules.conf:
#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----
To load everything that is needed, add this to some /etc/rc* file:
#----cut here----
I2C adapter drivers
modprobe i2c-i801
# I2C chip drivers
modprobe asb100
modprobe eeprom
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----cut here----
でメモどおりにファイルの追加
# vi /etc/modules.conf
# I2C module options
alias char-major-89 i2c-dev
こっちは追記。
# vi /etc/rc.local
# I2C adapter drivers
modprobe i2c-i801
# I2C chip drivers
modprobe asb100
modprobe eeprom
# sleep 2 # optional
/usr/bin/sensors -s # recommended
これで再起動して
# reboot
以下のコマンドを実行すると各種温度が表示されます。
# sensors
Google ToolbarがV3でも勝手にV6に更新されてしまいました・・・。
ただハイライト・検索ボタンは復活したみたいなんで、良かった。
相当要望いってたんでしょうね・・・。
おいらは(調べたんですが)どこに要望出せばいいのかよく分からなかったので、放置してたんですが。
またしばらく使ってみて様子見っすね。
ただハイライト・検索ボタンは復活したみたいなんで、良かった。
相当要望いってたんでしょうね・・・。
おいらは(調べたんですが)どこに要望出せばいいのかよく分からなかったので、放置してたんですが。
またしばらく使ってみて様子見っすね。
Google Toolber v6
2009年3月30日 日常特に話題がなかったので、日が開いてしまいました。
前から待ちわびていたGoogle ツールバーの6が出ていたので早速インストール。
・・・ダメだ相変わらず、ハイライト&検索ボタン使うのにCtrl+Fしないといかん。
自動的に検索バーが開く設定もないし・・・。
で、この機能のためだけにツールバー導入していて、なおかつ、4だと自動アップデートされる(自宅は4なため、ファイアーウオールで毎回アップデートを拒否中w)ので、3にダウングレード。
下記のページからダウンロードできます(2009/3/30時点)。
http://toolbar.google.com/service/tbdl?tbdata=T3&hl=ja
v3、超快適だわ・・・。
自動アップデート(しかも許可なし)はあまりよろしくないなーと思うわけです。
そういえばIE8も出てるんだよねん。
テスト機で試さないとなぁ。
【追記】
http://24503.diarynote.jp/200904281251574007/
前から待ちわびていたGoogle ツールバーの6が出ていたので早速インストール。
・・・ダメだ相変わらず、ハイライト&検索ボタン使うのにCtrl+Fしないといかん。
自動的に検索バーが開く設定もないし・・・。
で、この機能のためだけにツールバー導入していて、なおかつ、4だと自動アップデートされる(自宅は4なため、ファイアーウオールで毎回アップデートを拒否中w)ので、3にダウングレード。
下記のページからダウンロードできます(2009/3/30時点)。
http://toolbar.google.com/service/tbdl?tbdata=T3&hl=ja
v3、超快適だわ・・・。
自動アップデート(しかも許可なし)はあまりよろしくないなーと思うわけです。
そういえばIE8も出てるんだよねん。
テスト機で試さないとなぁ。
【追記】
http://24503.diarynote.jp/200904281251574007/
Subversionでの連携を数日考えたり調べたり、実際にモジュールをインストールしてみたりしたんですが、どうにもこうにもうまく行かず・・・
あきらめようかと思ったんですが、そういえばsubversionではなく、gitでも連携できたなーと思い、subversion→git→retrospectivaというなんかややこしい方法でとりあえずソース確認を出来るようにしました。とりあえずきりが無いので、今回はこれで我慢ということにさせてください。
まだ動作確認(主にレポジトリの同期に関して)が済んでいませんが、うまくいってなかったらcronで動かせばいいかなと思ってます。
【追記】
やっぱりタスクで動いてくれないみたいなのでcronで動かすことにします。
また後日追記しますね。
■パスとか
subversionのレポジトリパス /var/www/svn/repos
新しく作るgitのレポジトリパス /var/www/git/repos
■gitのインストール
CentOS 4.7へのgitのインストールはyumにて可能です。
(retrospectivaのソース持ってくるときに既にgit使っていたので、インストール済みのはずですが、多分書いてなかったなと。)
■レポジトリの移行
んでsubversionのレポジトリをgitへ移行します。まずはgit用のディレクトリ作成。作成したら適切にchownしておいてください。
その後、gitのレポジトリを作成(初期化)して、subversion側のファイルをコピーしてきます。
これで終わりです。git使うときは最初に個人登録しないと動かないそうです。
あと、更新履歴が多いとclone(fetch)に少し時間がかかっちゃうかもしれません。
■retrospectivaの設定
管理者権限でログインして、管理→レポジトリ一覧→新しいリポジトリを作成を選択。
種類をもちろんgitにし、適当な名前を入れて、ファイルパスを入れます。今回の例だと、「/var/www/git/repos/」ですね。
で、これが動くのかが謎なんですがsync callbackに、
「cd /var/www/git/repos/ && git svn rebase」
と入れておきます。動作すれば、設定時間ごとに、subversionにて変更の会った場所をgit側に反映してくれるはずなんですが、これはしばらく使いながら様子見です。
で、作成ボタンでレポジトリを作成したら、今度はプロジェクトを作成・または更新にて、先程作ったレポジトリを指定してやります。パスは空ならgitのルートからみえますし、ブランチを切っていて指定したければ指定してやります。普通にディレクトリ名を入れてやればOKといわれるはずです。
また、その下の利用モジュールのBrowse Sourceにもチェックを入れ、作成・更新ボタンを押して管理(ダッシュボード)の設定は終わりです。
後は、ダッシュボードではない方、管理の隣にあるプロジェクト一覧からプロジェクトへ行けば、ソースの閲覧ボタンが追加されていて、そこから確認できるかと思います。
■参考URL
http://wadslab.net/2008/07/subversion-git/
ありがとうございます。
■で
難産でしたが、実際は重いので使わないと思いますw
一回アクセスすれば、そんなに重くないんですけど、初回アクセスがすごい遅いんですよね・・・。
あきらめようかと思ったんですが、そういえばsubversionではなく、gitでも連携できたなーと思い、subversion→git→retrospectivaというなんかややこしい方法でとりあえずソース確認を出来るようにしました。とりあえずきりが無いので、今回はこれで我慢ということにさせてください。
まだ動作確認(主にレポジトリの同期に関して)が済んでいませんが、うまくいってなかったらcronで動かせばいいかなと思ってます。
【追記】
やっぱりタスクで動いてくれないみたいなのでcronで動かすことにします。
また後日追記しますね。
■パスとか
subversionのレポジトリパス /var/www/svn/repos
新しく作るgitのレポジトリパス /var/www/git/repos
■gitのインストール
CentOS 4.7へのgitのインストールはyumにて可能です。
# yum --enablerepo=dag list git-core
(retrospectivaのソース持ってくるときに既にgit使っていたので、インストール済みのはずですが、多分書いてなかったなと。)
■レポジトリの移行
んでsubversionのレポジトリをgitへ移行します。まずはgit用のディレクトリ作成。作成したら適切にchownしておいてください。
$ mkdir /var/www/git/repos/
$ cd /var/www/git/repos/
その後、gitのレポジトリを作成(初期化)して、subversion側のファイルをコピーしてきます。
$ git config --global user.name "jOX"
$ git config --global user.email jOX@hogehoge.com
$ git svn init file:///var/www/svn/repos/
$ git svn fetch
これで終わりです。git使うときは最初に個人登録しないと動かないそうです。
あと、更新履歴が多いとclone(fetch)に少し時間がかかっちゃうかもしれません。
■retrospectivaの設定
管理者権限でログインして、管理→レポジトリ一覧→新しいリポジトリを作成を選択。
種類をもちろんgitにし、適当な名前を入れて、ファイルパスを入れます。今回の例だと、「/var/www/git/repos/」ですね。
で、これが動くのかが謎なんですがsync callbackに、
「cd /var/www/git/repos/ && git svn rebase」
と入れておきます。動作すれば、設定時間ごとに、subversionにて変更の会った場所をgit側に反映してくれるはずなんですが、これはしばらく使いながら様子見です。
で、作成ボタンでレポジトリを作成したら、今度はプロジェクトを作成・または更新にて、先程作ったレポジトリを指定してやります。パスは空ならgitのルートからみえますし、ブランチを切っていて指定したければ指定してやります。普通にディレクトリ名を入れてやればOKといわれるはずです。
また、その下の利用モジュールのBrowse Sourceにもチェックを入れ、作成・更新ボタンを押して管理(ダッシュボード)の設定は終わりです。
後は、ダッシュボードではない方、管理の隣にあるプロジェクト一覧からプロジェクトへ行けば、ソースの閲覧ボタンが追加されていて、そこから確認できるかと思います。
■参考URL
http://wadslab.net/2008/07/subversion-git/
ありがとうございます。
■で
難産でしたが、実際は重いので使わないと思いますw
一回アクセスすれば、そんなに重くないんですけど、初回アクセスがすごい遅いんですよね・・・。
色々調べてたんですが、SubversionのRubyバインディングを提供してくれる、subversion-rubyがCentOS4.7では提供されてなく、ソースコードも落ちてないというか、Subversionに統合されてるみたいで、このままいくとSubversionを再インストールしないといけない予感。
これは困ったなぁ。。。
CentOS5の場合は、yumで提供されてるみたいです。
Debian/Ubuntuの場合はQuickInstallにあるように
sudo apt-get install libsvn-ruby
でいけるそうです。
ちなみに、Subversionをソースから再インストールするとして、一回現存のパッケージをアンインストールしようとしてみると。。。
devel系を抜いたとしても、これの再インストールはさすがにちょっときついぜ・・・
http://mono.kmc.gr.jp/~yhara/w/?Ruby/SVN
を見てみると、この方法でsubversion-rubyがインストールできるみたいなんでちょっとやってみます。
これは困ったなぁ。。。
CentOS5の場合は、yumで提供されてるみたいです。
Debian/Ubuntuの場合はQuickInstallにあるように
sudo apt-get install libsvn-ruby
でいけるそうです。
ちなみに、Subversionをソースから再インストールするとして、一回現存のパッケージをアンインストールしようとしてみると。。。
# sudo yum remove subversion mod_dav_svn apr apr-util neon swig
===============================================
Package Arch Version Repository Size
===============================================
Removing:
apr i386 0.9.4-24.9 installed 196 k
apr-util i386 0.9.4-22.el4 installed 103 k
mod_dav_svn i386 1.4.6-0.1.el4.rf installed 446 k
neon i386 0.24.7-4 installed 182 k
swig i386 1.3.21-6 installed 3.7 M
Removing for dependencies:
apr-devel i386 0.9.4-24.9 installed 3.9 M
apr-util-devel i386 0.9.4-22.el4 installed 1.9 M
git i386 1.5.2.1-1.el4.rf installed 49 M
httpd i386 2.0.52-41.ent.2.centos4 installed 2.3 M
httpd-devel i386 2.0.52-41.ent.2.centos4 installed 460 k
httpd-suexec i386 2.0.52-41.ent.2.centos4 installed 11 k
perl-Git i386 1.5.2.1-1.el4.rf installed 29 k
php i386 5.1.6-3.el4s1.10 installed 2.7 M
php-pear noarch 1:1.4.11-1.el4s1.1 installed 1.8 M
subversion i386 1.4.6-0.1.el4.rf installed 13 M
subversion-devel i386 1.4.6-0.1.el4.rf installed 945 k
subversion-perl i386 1.4.6-0.1.el4.rf installed 4.3 M
Transaction Summary
===============================================
Install 0 Package(s)
Update 0 Package(s)
Remove 17 Package(s)
devel系を抜いたとしても、これの再インストールはさすがにちょっときついぜ・・・
http://mono.kmc.gr.jp/~yhara/w/?Ruby/SVN
を見てみると、この方法でsubversion-rubyがインストールできるみたいなんでちょっとやってみます。
CentOS4.7へのPython3.0インストール
2009年2月3日 日常Python3.0がリリースされていたので、いつもどおりのCentOS4.7マシンにインストール。
だが、システム標準のPythonはシステム関連で使用されているため、アンインストールするのは相当リスクが高い。
そのため、元々入っているPythonとは別途インストールします。
■パスなど
インストール先のパス /opt/python3.0
■インストール
前述したように別途インストールするので、config時に「--prefix=/opt/python3.0」を必ず追加。
それ以外は普通にmake install。最新版はhttp://www.python.orgから確認してください。
python3.0というコマンドで動作するようにパスを通す。
(とりあえずsuと自分だけ)
※設定しても一度ログアウトしないとパスが通りません。
□関連モジュールのインストール
既存で入れた関連モジュールも3.0側のlibには入っていないのでインストール。
mod_pythonの不具合でCGIで現在動いているTracを、Apache+python3.0+mod_wsgiで動作させようと考えているので、一番厄介なeasy_install関係を処理する(コンフリクトするので)必要があるんだけど、当然easy_installで入れたモジュールを先にアンインストールしないと、easy_install自身がアンインストールできない気がするので、この先は情報を収集してから再挑戦の予定。
何も考えずにbinから削除しちゃってもいい気もするんだけどゴミが残るといやだしなぁ。
■参考URL
http://lowlife.jp/yasusii/wiki/InstallingAnotherVersionOfPython.html
だが、システム標準のPythonはシステム関連で使用されているため、アンインストールするのは相当リスクが高い。
そのため、元々入っているPythonとは別途インストールします。
■パスなど
インストール先のパス /opt/python3.0
■インストール
前述したように別途インストールするので、config時に「--prefix=/opt/python3.0」を必ず追加。
それ以外は普通にmake install。最新版はhttp://www.python.orgから確認してください。
$ wget http://www.python.org/ftp/python/3.0/Python-3.0.tgz
$ tar zxf Python-3.0.tgz
$ ./configure --prefix=/opt/python3.0
$ make
# make install
# strip /opt/python3.0/bin/python*
python3.0というコマンドで動作するようにパスを通す。
(とりあえずsuと自分だけ)
# vi ~/.bashrc
----------------------------------------------
alias python3.0=’/opt/python3.0/bin/python3.0’
----------------------------------------------
$ vi ~/.bashrc
$ python3.0 -v
※設定しても一度ログアウトしないとパスが通りません。
□関連モジュールのインストール
既存で入れた関連モジュールも3.0側のlibには入っていないのでインストール。
mod_pythonの不具合でCGIで現在動いているTracを、Apache+python3.0+mod_wsgiで動作させようと考えているので、一番厄介なeasy_install関係を処理する(コンフリクトするので)必要があるんだけど、当然easy_installで入れたモジュールを先にアンインストールしないと、easy_install自身がアンインストールできない気がするので、この先は情報を収集してから再挑戦の予定。
何も考えずにbinから削除しちゃってもいい気もするんだけどゴミが残るといやだしなぁ。
■参考URL
http://lowlife.jp/yasusii/wiki/InstallingAnotherVersionOfPython.html
Retrospectivaの日本語表示されない部分
2009年1月30日 日常translation missing: ja-JP, application, Central
や
translation missing: ja-JP, application, Display
なんて出ている部分は最後の単語、例えば、Displayを、locales/app.ja-JP.ymlから探してやって、日本語をつけてやれば表示できるようになります。
しかしCentralってなんだ・・・とりあえず「セントラル」にしておきました。
ただ変更してすぐに表示が変わるんじゃなくてタイムラグがあるんでちょっと注意。どうもキャッシュの問題みたいですね。
というわけで設定中です。
まずはSVNの連携をしないとなー。
や
translation missing: ja-JP, application, Display
なんて出ている部分は最後の単語、例えば、Displayを、locales/app.ja-JP.ymlから探してやって、日本語をつけてやれば表示できるようになります。
ex.
"Display": "表示項目数"
しかしCentralってなんだ・・・とりあえず「セントラル」にしておきました。
ただ変更してすぐに表示が変わるんじゃなくてタイムラグがあるんでちょっと注意。どうもキャッシュの問題みたいですね。
というわけで設定中です。
まずはSVNの連携をしないとなー。
CentOS 4.7へのRetrospectivaインストール(その3-完結編?)
2009年1月30日 日常噂のRetrospectivaをインストール(というかセットアップ?)してみました。
はまりはまって3回目。
1回目 http://24503.diarynote.jp/200901291812318800/
2回目 http://24503.diarynote.jp/200901301314127765/
MySQLをアップグレード&最新ソースを取得して再度やってみました。
でなんとかインストールが出来ました。
MySQL5が必須のようです!最新GitではRailsも2.2.2が必須。
設定周りはまた次回以降です。
■インストール済み関連モジュール
Ruby1.8.7 (2008-08-11 patchlevel 72) [i686-linux]
RubyGem1.3.1
Rails2.2.2(2.1.2, 2.0.2)
MySQL5.0.68-1.el4_6
■パスなど
ディレクトリ/home/retrospectiva/retrospectiva
アドレスyourhost
MySQLユーザretrospectiva:password
▽RoR環境の構築
その2(http://24503.diarynote.jp/200901301314127765/)で行ったので省略
▼ソースのダウンロード
改めてgitで取得。gitが入っていない場合はインストール。本家(http://retrospectiva.org/repositories/retrospectiva.git)だと途中でエラーになって取得できないので、ミラーから取得
▼DB(MySQL)の準備
以前(その1)の時のように小細工は必要なく、楽々いけるはず!
まずはMySQLユーザの作成とDBの作成。そのままrake!
こやつめ、ははは。
なんかモジュールが足りないらしい。
「rake gems:install」してみれと言われたので素直に行ってみて、
その後再度rakeしたら今度はmysqlのgemsがねーぞと。どんだけw
それら諸々をインストールしてrake。
とおったぁぁあぁ(2回目)。
さくっと次のフェイズいきましょう。
▼Webでの確認
Webからの更新用にディレクトリのパーミッションを変更します。
それで準備が整うのでとりあえずMongrelで動かしてみる。
ってここでエラー。
>Missing these required gems:
> mislav-will_paginate = 2.3.6
モジュールが足りない。また「rake gems:install」といわれるので実行。
さっき入ってなかったのか・・・。
きたぁぁぁあ。ってか原因は結局MySQLのバージョンかよ。これは・・・。
orz
▼Apacheの設定
まぁ気をとりなおして、Apacheで動作するようにPassengerでの設定。
といってもRedmineの時(http://24503.diarynote.jp/200811071301373949/)とほぼ同じです。
passengerのModを読むためのconfと、ポートベースのバーチャルホスト設定用のconfを分離しました。
*はIPアドレスに書き換えてください。localhostでもいけると思います。
とりあえずこれでOK。http://yourhost:8088で確認。OK。
あとはSVNの設定とかは次回ということで。
とりあえずお疲れ様でした。
■参考URL
http://retrospectiva.org/wiki/Quick%20install
http://d.hatena.ne.jp/kokutoto/20080310/p1
http://forza.cocolog-nifty.com/blog/2008/09/retrospectiva-8.html
はまりはまって3回目。
1回目 http://24503.diarynote.jp/200901291812318800/
2回目 http://24503.diarynote.jp/200901301314127765/
MySQLをアップグレード&最新ソースを取得して再度やってみました。
でなんとかインストールが出来ました。
MySQL5が必須のようです!最新GitではRailsも2.2.2が必須。
設定周りはまた次回以降です。
■インストール済み関連モジュール
Ruby1.8.7 (2008-08-11 patchlevel 72) [i686-linux]
RubyGem1.3.1
Rails2.2.2(2.1.2, 2.0.2)
MySQL5.0.68-1.el4_6
■パスなど
ディレクトリ/home/retrospectiva/retrospectiva
アドレスyourhost
MySQLユーザretrospectiva:password
▽RoR環境の構築
その2(http://24503.diarynote.jp/200901301314127765/)で行ったので省略
▼ソースのダウンロード
改めてgitで取得。gitが入っていない場合はインストール。本家(http://retrospectiva.org/repositories/retrospectiva.git)だと途中でエラーになって取得できないので、ミラーから取得
$ yum install git
$ cd /home/retrospectiva
$ git clone git://github.com/dim/retrospectiva.git
▼DB(MySQL)の準備
以前(その1)の時のように小細工は必要なく、楽々いけるはず!
まずはMySQLユーザの作成とDBの作成。そのままrake!
$ mysql -u root -p
mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
->ON *.* TO retrospectiva@localhost IDENTIFIED BY ’password’;
mysql> CREATE DATABASE IF NOT EXISTS retrospectiva character set utf8;
mysql> GRANT ALL PRIVILEGES ON retrospectiva.*
-> TO "retrospectiva"@"localhost"
-> IDENTIFIED BY "password";
mysql>quit
# rake db:retro:load RAILS_ENV=production
>Missing these required gems:
> mislav-will_paginate = 2.3.6
> mbleigh-acts-as-taggable-on = 1.0.2
こやつめ、ははは。
なんかモジュールが足りないらしい。
「rake gems:install」してみれと言われたので素直に行ってみて、
その後再度rakeしたら今度はmysqlのgemsがねーぞと。どんだけw
それら諸々をインストールしてrake。
# rake gems:install
# gem install mysql
# rake db:retro:load RAILS_ENV=production
とおったぁぁあぁ(2回目)。
さくっと次のフェイズいきましょう。
▼Webでの確認
Webからの更新用にディレクトリのパーミッションを変更します。
それで準備が整うのでとりあえずMongrelで動かしてみる。
$ chmod 777 config/runtime attachments/ extensions/ log/
# ruby script/server -e production -p 3000
ってここでエラー。
>Missing these required gems:
> mislav-will_paginate = 2.3.6
モジュールが足りない。また「rake gems:install」といわれるので実行。
さっき入ってなかったのか・・・。
# rake gems:install
クライアントからブラウザでhttp://yourhost:3000にアクセス。
きたぁぁぁあ。ってか原因は結局MySQLのバージョンかよ。これは・・・。
orz
▼Apacheの設定
まぁ気をとりなおして、Apacheで動作するようにPassengerでの設定。
といってもRedmineの時(http://24503.diarynote.jp/200811071301373949/)とほぼ同じです。
passengerのModを読むためのconfと、ポートベースのバーチャルホスト設定用のconfを分離しました。
# cd /etc/httpd/conf.d/
# vi passenger.conf
-----------------------------------------------------------------
# Passenger Apache Config
#Passenger
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6
PassengerRuby /usr/bin/ruby
-----------------------------------------------------------------
# vi pbvirtual.conf
-----------------------------------------------------------------
Listen 8080
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName redmine.example.jp
DocumentRoot /home/redmine/public/
ErrorLog /home/logs/redmine-error.log
CustomLog /home/logs/redmine-access.log combined
</VirtualHost>
Listen 8088
NameVirtualHost *:8088
<VirtualHost *:8088>
ServerName retrospectiva.example.jp
DocumentRoot /home/retrospectiva/retrospectiva/public/
ErrorLog /home/logs/retrospectiva-error.log
CustomLog /home/logs/retrospectiva-access.log combined
<Directory /home/retrospectiva/retrospectiva/script/public/>
Options ExecCGI FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
-----------------------------------------------------------------
# /sbin/service httpd restart
*はIPアドレスに書き換えてください。localhostでもいけると思います。
とりあえずこれでOK。http://yourhost:8088で確認。OK。
あとはSVNの設定とかは次回ということで。
とりあえずお疲れ様でした。
■参考URL
http://retrospectiva.org/wiki/Quick%20install
http://d.hatena.ne.jp/kokutoto/20080310/p1
http://forza.cocolog-nifty.com/blog/2008/09/retrospectiva-8.html
CentOS 4.7でのMySQLアップグレード(アップデート)
2009年1月30日 日常Retrospectivaがセットアップできないので、むしゃくしゃしてMySQLを4→5にアップグレードした。
■インストール済み関連モジュール
mysql.i386 4.1.22-2.el4
■MySQLバックアップ
mysqldumpを利用して全DBのダンプを取っておく。
また復帰用にDBの名前も保存しておく(全DBダンプ=システムDBも含んでしまうから。)
userはmysqlのユーザー名(スーパーユーザ、普通はroot)。
$ mysqldump -u user -p -x --all-databases > mysql_090130.dump
$ mysql -u user -p
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| mysql |
| redmine |
| test |
+--------------------+
■設定ファイルをバックアップ
cp /etc/my.cnf my.cnf.090130.bak
■yumでアップデート
デフォルトではenableになっていないcentosplusリポジトリを利用してアップグレードする。
# yum --enablerepo=centosplus update mysql
依存関係にあるソフトウェアも同時にインストール・アップデートされる。
>=================================================
> Package Arch Version Repository Size
>=================================================
>Updating:
> mysql i386 5.0.68-1.el4_6 centosplus 2.8 M
>Installing for dependencies:
> mysql-libs i386 5.0.68-1.el4_6 centosplus 1.8 M
> php-common i386 5.1.6-3.el4s1.10 centosplus 136 k
> php-pdo i386 5.1.6-3.el4s1.10 centosplus 220 k
>Updating for dependencies:
> mysql-server i386 5.0.68-1.el4_6 centosplus 9.7 M
> perl i386 4:5.8.8-6.el4s1_3 centosplus 11 M
> perl-DBD-MySQL i386 4.006-1.el4.centos centosplus 139 k
> php-mysql i386 5.1.6-3.el4s1.10 centosplus 77 k
>
>Transaction Summary
>=================================================
>Install 3 Package(s)
>Update 5 Package(s)
>Remove 0 Package(s)
■MySQLのチェック
$ mysql -u user -p
mysql> SHOW DATABASES;
mysql> SHOW TABLES;
等。うちの場合は特に問題なかったのでDumpからの戻しはしませんでした。
念入りに行う場合は、ユーザDB全てを一度DROPして、ダンプから戻したほうがいいかも?
ex(例).
mysql> DROP DATABASE redmine;
$ mysql -u user -p redmine < mysql_090130.dump
等。
■参考URL
http://phpspot.net/php/pgmysqldump%82%C5%83o%83b%83N%83A%83b%83v%81%95%95%9C%8C%B3.html
■インストール済み関連モジュール
mysql.i386 4.1.22-2.el4
■MySQLバックアップ
mysqldumpを利用して全DBのダンプを取っておく。
また復帰用にDBの名前も保存しておく(全DBダンプ=システムDBも含んでしまうから。)
userはmysqlのユーザー名(スーパーユーザ、普通はroot)。
$ mysqldump -u user -p -x --all-databases > mysql_090130.dump
$ mysql -u user -p
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| mysql |
| redmine |
| test |
+--------------------+
■設定ファイルをバックアップ
cp /etc/my.cnf my.cnf.090130.bak
■yumでアップデート
デフォルトではenableになっていないcentosplusリポジトリを利用してアップグレードする。
# yum --enablerepo=centosplus update mysql
依存関係にあるソフトウェアも同時にインストール・アップデートされる。
>=================================================
> Package Arch Version Repository Size
>=================================================
>Updating:
> mysql i386 5.0.68-1.el4_6 centosplus 2.8 M
>Installing for dependencies:
> mysql-libs i386 5.0.68-1.el4_6 centosplus 1.8 M
> php-common i386 5.1.6-3.el4s1.10 centosplus 136 k
> php-pdo i386 5.1.6-3.el4s1.10 centosplus 220 k
>Updating for dependencies:
> mysql-server i386 5.0.68-1.el4_6 centosplus 9.7 M
> perl i386 4:5.8.8-6.el4s1_3 centosplus 11 M
> perl-DBD-MySQL i386 4.006-1.el4.centos centosplus 139 k
> php-mysql i386 5.1.6-3.el4s1.10 centosplus 77 k
>
>Transaction Summary
>=================================================
>Install 3 Package(s)
>Update 5 Package(s)
>Remove 0 Package(s)
■MySQLのチェック
$ mysql -u user -p
mysql> SHOW DATABASES;
mysql> SHOW TABLES;
等。うちの場合は特に問題なかったのでDumpからの戻しはしませんでした。
念入りに行う場合は、ユーザDB全てを一度DROPして、ダンプから戻したほうがいいかも?
ex(例).
mysql> DROP DATABASE redmine;
$ mysql -u user -p redmine < mysql_090130.dump
等。
■参考URL
http://phpspot.net/php/pgmysqldump%82%C5%83o%83b%83N%83A%83b%83v%81%95%95%9C%8C%B3.html
噂のRetrospectivaをインストール(というかセットアップ?)してみました。が大いにはまる。
その1では失敗したので、Ruby on Rails環境の構築から再度行ってみました。
3回目http://24503.diarynote.jp/200901301640007425/にてインストールできました。
ちなみに日記に書く前はtxtファイルにインデント入りでメモ書きしてるんですけど、書き込むとインデントが消えるのが・・・。さすがダイアリーノートさんさすが。
■インストール済み関連モジュール
Ruby1.8.7-1
RubyGem1.3.1
Rails2.2.2(2.1.2, 2.0.2)
MySQL4.1.22-2.el4
Subversion1.4.6
■パスなど
ディレクトリ/home/retrospectiva/retrospectiva
アドレスyourhost
▼RoR環境の再構築
checkinstallを使ってp72がうまく入らなかった(yaml.rbがインストールされない)ので、
普通にmake installしました。何が問題なのかわかりません。
まずはアンインストール。インストールされてるか確認しておく。
あったらアンインストール
念のため他にも残骸が無いか調べておきましょう。
あったら削除
ex(例).
等
これで綺麗な状態になったので、改めてソースファイルをダウンロード
適当なフォルダに移動して
(一般的には/usr/local/src/にダウンロードする。)
下記URLにて最新版をチェックして、
http://www.ruby-lang.org/ja/downloads/
ダウンロード
解凍
インストール(checkinstallは使用しない)
今回はちゃんとlibの中にyamlがあったので大丈夫そう。
rubygemも普通にインストールする。
下記URLから最新版をチェック。
http://rubyforge.org/projects/rubygems/
で、Railsとか諸々を再度入れていきます。
念のため。
(passengerはhttp://24503.diarynote.jp/200811071301373949/参照)
(rmagickはhttp://24503.diarynote.jp/200901221620004919/参照)
▽ソースのダウンロード
前回やったので、特に今回はやってませんが一応記載だけしておきます。
あと、最新版が出てるみたいなのに、gitで取得できないんですけど・・・。
▽DB(MySQL)の準備
これも前回やったのでパス。
長いので前の日記を参照してください。
http://24503.diarynote.jp/200901291812318800/
▼Webでの確認
これで準備ができたのでとりあえずMongrelで動かしてみる。
(アクセス件の設定は昨日の日記にて。)
クライアントからブラウザでhttp://yourhost:3000にアクセス。
>500 Internal Server Error
orz
やっぱりだめか・・・。MySQLのアップデートが必要なのかのぅ。
まぁ前から気にはなってたRoR環境がアップグレードしたから成果無しではないかな。
というわけで今回はここまで。
その1では失敗したので、Ruby on Rails環境の構築から再度行ってみました。
3回目http://24503.diarynote.jp/200901301640007425/にてインストールできました。
ちなみに日記に書く前はtxtファイルにインデント入りでメモ書きしてるんですけど、書き込むとインデントが消えるのが・・・。さすがダイアリーノートさんさすが。
■インストール済み関連モジュール
Ruby1.8.7-1
RubyGem1.3.1
Rails2.2.2(2.1.2, 2.0.2)
MySQL4.1.22-2.el4
Subversion1.4.6
■パスなど
ディレクトリ/home/retrospectiva/retrospectiva
アドレスyourhost
▼RoR環境の再構築
checkinstallを使ってp72がうまく入らなかった(yaml.rbがインストールされない)ので、
普通にmake installしました。何が問題なのかわかりません。
まずはアンインストール。インストールされてるか確認しておく。
# gem cleanup *(全てのパッケージ)
# gem unistall *(全てのパッケージ)
# rpm -qa rubygems
# rpm -qa ruby
あったらアンインストール
# rpm -e rubygems
# rpm -e ruby
念のため他にも残骸が無いか調べておきましょう。
# which ruby
# which gem
# find / -name ruby
# find / -name gems
あったら削除
ex(例).
# rm -rf /usr/bin/ruby
# rm -rf /usr/lib/ruby
等
これで綺麗な状態になったので、改めてソースファイルをダウンロード
適当なフォルダに移動して
$ cd ~/ruby/
(一般的には/usr/local/src/にダウンロードする。)
下記URLにて最新版をチェックして、
http://www.ruby-lang.org/ja/downloads/
ダウンロード
$ wget ftp://ftp.iij.ad.jp/pub/lang/ruby/ruby-1.8.7-p72.zip
解凍
$ tar zxf ruby-1.8.7-p72.tar.gz
$ cd ruby-1.8.7-p72
インストール(checkinstallは使用しない)
$ ./configure --prefix=/usr
# make
# make install
$ ruby --version
今回はちゃんとlibの中にyamlがあったので大丈夫そう。
rubygemも普通にインストールする。
下記URLから最新版をチェック。
http://rubyforge.org/projects/rubygems/
$ cd ~/ruby/
$ wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
$ tar zxf rubygems-1.3.1.tgz
$ cd rubygems-1.3.1
# ruby setup.rb
# gem -v
で、Railsとか諸々を再度入れていきます。
# gem update --system
念のため。
# gem install rails
# gem install rails --version 2.1.2 --no-rdoc --no-ri
# gem install rails --version 2.0.2 --no-rdoc --no-ri
# gem install mongrel
# gem install passenger
# passenger-install-apache2-module
# vi /etc/httpd/conf.d/passenger.conf
(passengerはhttp://24503.diarynote.jp/200811071301373949/参照)
$ cd ~/ruby/
$ wget http://rubyforge.org/frs/download.php/47969/rmagick-1.15.17.gem
# gem install rmagick-1.15.17.gem
(rmagickはhttp://24503.diarynote.jp/200901221620004919/参照)
▽ソースのダウンロード
前回やったので、特に今回はやってませんが一応記載だけしておきます。
あと、最新版が出てるみたいなのに、gitで取得できないんですけど・・・。
$ cd /home/retrospectiva
$ mkdir retrospectiva
$ svn co http://retrospectiva.googlecode.com/svn/trunk retrospectiva
▽DB(MySQL)の準備
これも前回やったのでパス。
長いので前の日記を参照してください。
http://24503.diarynote.jp/200901291812318800/
▼Webでの確認
これで準備ができたのでとりあえずMongrelで動かしてみる。
(アクセス件の設定は昨日の日記にて。)
# ruby script/server -e production -p 3000
クライアントからブラウザでhttp://yourhost:3000にアクセス。
>500 Internal Server Error
orz
やっぱりだめか・・・。MySQLのアップデートが必要なのかのぅ。
まぁ前から気にはなってたRoR環境がアップグレードしたから成果無しではないかな。
というわけで今回はここまで。
1 2