- カタチグラフィックスのBlog – Katachigfxの日記と制作メモ

「2012 5月」のかたログ

05.18

久しぶりのブログ更新は、制作メモ。
つまらない内容ですみませ〜ん。

Movable Type5(スタティック)にて、自動的に更新するには、サーバ側のcronを使って定期的にプログラムを叩く必要がある。
なんとやっかいな。

今回、ハマったのは、ブログ記事のステータスを「日時指定」した際、ブログ以外のウェブサイトインデックスページと他ページに、その新着を表示させるというもの。

「日時指定」の公開は、cronを使って「mt/tools/run-periodic-tasks」を叩けばよい。

※cpiサーバの場合は、run-periodic-tasksの11行目あたりlibとextlibのパスを/usr/home/…からのパスに変更する必要がある。
../lib →/usr/home/……/mt/lib
../extlib → /usr/home/……/mt/extlib

ウェブサイトインデックスページも同時に更新したい場合は、ウェブサイト側のプラグイン「MTMultiBlog」で再構築トリガーを設定すればよい。

問題は、ウェブサイトインデックスページ以外のページも同時に更新したい場合だ。
方法は、色々あるだろうが、以下の方法でうまくいく。

1. プラグイン「mt-rebuild」 のダウンロード。

2. mt-rebuild.plをmtディレクトリにコピーして、cronユーザが実行できるようにパーミッションを755にする。

3.古いプラグインなので、手を加える。

use MT;
my $mt = MT->new( Config    => $MT_DIR . 'mt.cfg',
          Directory => $MT_DIR )
  || die MT->errstr;

これを以下のように修正

use MT::App;
my $mt = MT::App->new( Config    => $MT_DIR . 'mt-config.cgi',
          Directory => $MT_DIR )
  || die MT::App->errstr;

4.cron指定!

$ ./mt-rebuild.pl -blog_id=ブログID -mode="all"

※ cpiサーバの場合、コマンドは打てないので、cron用のスクリプトを用意する

mt-rebuild.sh

#!/bin/sh
/usr/home/....../mt/mt-rebuild.pl -blog_id=ブログID -template="ウェブページ"

mt-rebuild.shは/mt/tools/の中にでも入れて、パーミッションを755にする。
あとは、cpiコントロールパネルのcron設定画面から mt-rebuild.shを叩くようにすればよい。

MTは一手間多いから嫌いだ。