Home

技術系のメモと日々の雑感

Movable Type 3 の環境を別のサーバに移動

今でも Movable Type 3(以下 MT)を使ってる人は多いんじゃないだろうか。
うちでも元気に動いているんだけど、とある事情で環境を別のサーバに移動しなければならなくなった。
そのときに分かったことをまとめておく。
MT のバージョンは 3.35 だ。
下準備として、移動先で Perl の環境が整っているか、mt-check.cgi で確認しておこう。
DB は Berkeley DB なので、他のデータと一緒に tar とかで固めて移動先に送ってしまえばいい。
今回の作業でひとつだけ面倒なのは、コンテンツを置くディレクトリが変わることだ。
/usr/local/apache/htdocs に置いているのを、一階層下げて /usr/local/apache/htdocs/hoge に持っていかないといけない。
ひとまず、コンテンツの中に書かれているパスを確認してみよう。

# cd /usr/local/apache/htdocs
# grep -r 'apache/htdocs' *

手で修正するにはちょっとしんどいぐらいヒットした。
ひと思いに置換してしまおう。

# find . -type f -name '*.php' | xargs sed -i 's/apache/htdocs/apache/htdocs/hoge/g'
# find . -type f -name '*.cgi' | xargs sed -i 's/apache/htdocs/apache/htdocs/hoge/g'

コンテンツを置いているディレクトリ配下に DB のデータがある場合、このように拡張子を指定しないと、DB の中にあるパスまで書き換えてしまって、後で面倒なことになるかも。
さて、何を隠そう、実は MT についてはまったく詳しくないので、ひょっとしたらこれだけでいけるんじゃないかと思ったんだけど、やはりそんなに甘くはなかった。
サイトの再構築を行うと

ディレクトリ/usr/local/apache/htdocs/hoge/fugaの作成に失敗しました:
mkdir /usr/local/apache/htdocs/hoge: Permission denied at lib/MT/FileMgr/Local.pm line 107

というエラーが出てしまう。
まぁ当然か。
DB のデータの中にもパスが入ってたんだからね。
その後さんざん調べて、管理画面の各ブログの [設定] - [公開] の中にある「サイト・パス」を修正すればいいことが分かった。
これで無事に再構築完了。
めでたしめでたし・・・なのかな?
MT の環境を移動する手順がこれで合ってるのか、あんまり自信ないんだけど。
まぁ、今のところ動いてるから大丈夫かな。

Filezilla のメッセージログ

この前、Filezilla をバージョンアップしたら、メッセージログの表示位置を変更できるようになっているのに気がついた。
今使っているバージョンは 3.2.4。
過去のバージョンではファイルリストの上にしか表示できなくて、目立ちすぎるので非表示にしていたんだけど

・ファイルリストの上 ※過去のバージョンの設定
・転送キューの隣
・転送キューのタブ

の3つから選べるようになっている。
個人的には「転送キューのタブ」が好みだな。
これならぜんぜん邪魔にならないね。

Nagios の設定の継承について

Nagios では、監視する対象を大量に設定するときに楽になるよう継承の概念を持っていて、ドキュメントを読んでいたら大体理解できたので要点をまとめておく。
継承で使用するパラメータは3つだけだ。

name
    継承で使用する定義名。
    他のオブジェクトやテンプレートで継承したい場合だけ設定する。
    オブジェクトでは必須ではないパラメータ。
use
    継承するオブジェクトまたはテンプレートの指定。
    オブジェクトでは必須ではないパラメータ。
register
    0ならテンプレート、1ならオブジェクト。
    デフォルトは1。

ちょっと分かりにくいのがオブジェクトとテンプレートの違いだろうか。
実際に監視対象とするホストやサービスの定義はオブジェクトだけど、継承されるだけの不完全な定義をテンプレートと呼んで区別するらしい。
たとえば、ホストのオブジェクトの場合、register=1 だと必須パラメータの host_name が記述されてなければエラーになるけど、register=0 ならテンプレート用のオブジェクトとみなされて host_name を省略できるというわけだ。
よく考えられているね。

Nagios の設定で引っかかったところ

ここ何日か Nagios の設定をしていた。
デーモンはちゃんと起動していて設定も問題なさそうなのに、アラートが飛んでこなくてハマったことが何度かあった。
せっかくなのでざっと書いておくとしよう。

check_smtp のタイムアウト : デフォルトで10秒よりも大きな値にしないと通らないホストがあった
enable_flap_detection : 今使っているバージョン(3.0.6)だとデフォルトで enable_flap_detection が有効になっているので、テストとかでホストを上げたり落としたりしたときに State が Flapping になることがあった
TCP_Wrappers の設定ミス : NRPE を入れた監視対象のホストで /etc/hosts.deny を ALL:ALL にしているのを忘れていた

と、まぁ、こんなところか。
どれも些細なミスだね。
で、ひと通り動くようになってから日本語ドキュメントを眺めたら、とても詳しく書かれていて、上に書いたような問題はほとんど解決できてしまいそうな勢いだった。
ホストとかサービスのパラメータの詳細はもちろんだけど、理論をまとめたドキュメントは読み物としても面白い。
特に、通知の説明はこれから設定しようとする人は必読じゃないかな。
ほんと、先に読んでおけばよかったよ・・・。

Sleipnir の小技

Sleipnir のデフォルトの文字サイズ(中)は少し大きく感じるので小に設定して使っているんだけど、ページによっては小さすぎて見にくいことがある。
今までは、そういうページに遭遇したらいちいちステータスバーにある「ページの倍率を変更」を使ったりしてたんだけど。
こないだ、偶然 Alt+マウススクロールでも変えることができるのを見つけた。
これは自分のためにあるような機能だな。
ありがたい!
ついでに最近見つけた Sleipnir の小技をご紹介。
表示倍率の変更と同じぐらいよく使うのが、マウスを右クリックしながらスクロールするとアクティブなタブが切り替えられる機能。
キーボードに手を置いているときは F2 と F3 でも代用できるけど、Web を見てるときはマウスを握ってる方が多いしね。
あと、使う頻度は低いけど、Ctrl+L で直前に閉じたタブを開きなおすことができるのも何気に便利。
過去の閉じたタブを記憶してくれているので、Ctrl+L を押すたびに古いページにさかのぼって開きなおすことができる。
[ファイル] - [最近閉じたページを開く] より楽だね。
忘却の彼方に消えてしまったページを探すときにも活躍するから、[オプション] - [パネル] - [最近閉じたページ] で履歴数を増やしておくといいかも。