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