お天気MTWeatheの自動更新化


先日設置した お天気MTWeather ですが

※MTWeather は MT を再構築したときに情報が更新される仕組み

とのことですので毎日エントリー投稿出来れば問題ありませんが
出来ない日が続きますと取得データが更新されませんので
古い情報のまま配信し続けることになってしまいます
格好悪いですよね

そこで

毎日エントリー投稿はしないけど自動更新させたいという方に朗報です
 MTのindex Rebuild自動化


このスクリプトは定期的(一日一回でいいのかなぁ?)に実行させる
必要がありますので cron が使える環境でないとなりません
MS Windows サーバーでも タスク に登録すれば
よさそうですが環境がありませんので未確認です


もう一つの必須事項は perlモジュール の LWPモジュール が必要です
説明によりますと 2004/08/31 追記:LWP 同梱 とありますが
どこに入っているか確認できませんでした

MTWeather.zip のここ /lib/LWP /lib/Jcode にありました

当方では次の作業が必要でしたので MS Windows にだけ有効なのかも知れません
Linux ではこの LWPモジュールlibwww-perl-5.805 に含まれてます
JcodeモジュールJcode-2.05 に含まれてます


どこかのサイトで次の書き込みを発見しました
 「RebuildIndex.cgiを動かそうと必死だったのですがPerlの
  ライブラリーに 「Jcode.pm」を入れたところ問題なく動きました」

これは MT ではなく サーバ を指しているのでしょうか
サーバー側で yum が使える環境でしたらでサックとインストールできます
 [root@linux ~]# yum install perl-Jcode
※レンタルサーバーをご使用の場合は自由にインストールする事は出来ません
  必要なモジュールがインストールされているか確認してみましょう


 ※LWPとcodeモジュールは MT か サーバ のどちらかに入っていればよい
はずですがレンタルサーバーをご使用で環境がわからない場合は"競合"が怖い
ですのでまず両モジュールを
 MT には入れず動作の確認を行ってから必要に応じてインストール
した方が無難だと思います

参考にしたサイトの説明では解凍したファイルを
 「(3)展開した lib ディレクトリ内を Movable Type の
     extlib ディレクトリへ必ず全て FTP して下さい」
とありますので MT と サーバ の両方に入っていても
害はないのかもしれませんが・・

下準備は以上です


[ 設定手順 ]
 1.ダウンロードした RebuildIndex.cgi のエディターで開き
   MT_ID MT_PW server
   をご自身の環境にあせて書き直します
     ## MTのID
     my $MT_ID="MovableTypeのログインID";
     ## MTのPW
     my $MT_PW="MovableTypeのログインパスワード";
     ## サーバ名
     my $server = "ここはサーバー名というかアクセスURL ex)www.hogehoge.jp/mt";

 2.cgiスクリプトですのでFTPによりアスキー転送します
   実行権限を与えて下さい(MS Windowsサーバーは不要) ex)755

 3.cron へ登録します
   [user@linux ~]$ crontab -e
   00 00 * * * /home/ご使用の環境/RebuildIndex.cgi

これで毎日午前0時に RebuildIndex.cgi が実行されますので
お天気のデータが更新されるはずです
RebuildIndex.cgi の置き場ですが /public_html/ の下にしますと
外部よりアクセス可能ですの最悪中身が覗かれ username, password までも
お披露目してしまう事になりかねません /public_html/ と同列
 ex) NG /home/mt/public_html/RebuildIndex.cgi
    OK /home/mt/RebuildIndex.cgi
に置くことが望ましいです
※"ここ" に置けないレンタルサーバーもあるようです


今回の対策後の動作確認ですが今のところ毎日 "指定日投稿" により
エントリーしてますので確認がとれてません
ですが /home/ご使用の環境/RebuildIndex.cgi 実行後
エラーはでずこのように

[user@linux ~]$ /home/ご使用の環境/RebuildIndex.cgi
->Access: http://実際のアクセスURL/mt.cgi?__mode=rebuild&blog_id=2&type=index&next=0&offset=&limit=&total_entries=26&is_bm=&entry_id=&is_new=&old_status=&username=ログイン名&password=パスワード -> OK

 ※rebuild&blog_id=2 はご自身の環境(設置するブログの番号)に合わせて下さい
   mt.cgi の"エントリー" にカーソルを合わせますと
    mt.cgi?__mode=rebuild&blog_id=
2
   番号の確認がとれます
   当方のようにブログ登録数が一つですと
1 になります

OK となりますのでとりあえずスクリプトの書換えは正しそうです
この段階で悲しくも エラー となってしまった時は
1.から設定を見直してから再設置してみてください

残すは cron への登録ですが何時に動作させればよいのかがわかりません
データの更新は 朝方もしくは朝 のようですのでデータ更新後にしないと
ならないような気がしますが・・
確認がとれましたら追記することにします