Movable Type(5.02 or 5.03)の tools/rebuild-pages を使ってみた
Movable Typeでリビルドさせるコマンドとして mt-rebuild.pl があるようだが、これはTypePadにsign inしないとダウンロードできないし、随分前のスクリプトなので MTに同梱されている tools/rebuild-pages を試してみた。
なお、参考したのは以下のページだが、こちらの環境はMTOS 5.02/5.03なのでスクリプトの実行権、ライブラリの読み込みはすでに設定済みであった。
http://techno-st.net/2008/08/11/toolsrebuildpages.html
http://profligate.peewee.jp/blog/2010/06/mt5-toolsrebuild-pages.html
- perldoc rebuild-pagesすると使用方法と必要なモジュールが表示されるので一読。
- Web::Scraper が必要で、これは rebuild-pages のmanpageに書いてあるとおり、CPANによりインストールする(その前にperlのlibxml関連をyum経由で入れておく)。
- LWP::UserAgent::Local が必要で、これは rebuild-pages のmanpageに書いてあるリポジトリから取得する。
# yum install perl-libxml-perl.noarch # cpan cpan> install Web::Scraper cpan> quit # $ cd MT/extlib $ cd LWP $ mkdir UserAgent $ cd UserAgent $ wget http://code.sixapart.com/svn/movabletype/trunk/t/lib/LWP/UserAgent/Local.pm $ cp -ip Local.pm Local.pm.org $ vi Local.pm # rebuild-pagesは tools 配下にあり、mt.cgi はその上にあるので、"./$script_name" # ではなく、"../$script_name"に修正。 $ diff -u Local.pm.org Local.pm --- Local.pm.org 2010-03-23 09:44:30.000000000 +0900 +++ Local.pm 2010-09-09 16:08:53.000000000 +0900 @@ -75,12 +75,12 @@ if ($request->content()) { $ENV{CONTENT_LENGTH} = length $request->content(); - my $pid = open2(\*RESPONSE, \*REQUEST, "./$script_name") - or die "Couldn't spawn ./$script_name"; + my $pid = open2(\*RESPONSE, \*REQUEST, "../$script_name") + or die "Couldn't spawn ../$script_name"; print REQUEST $request->content(); close REQUEST; } else { - open RESPONSE, "./$script_name|" or die "Couldn't spawn $script_name"; + open RESPONSE, "../$script_name|" or die "Couldn't spawn $script_name"; print STDERR "$script_name exit status: $?\n" if $?; } $ cd ../../../tools $ cp -ip rebuild-pages rebuild-pages-on-this-site $ vi rebuild-pages-on-this-site my $script_path = '/cgi-bin/MT/'; # 環境に合わせて修正 my $hostname = 'localhost'; # localhostでアクセスできない場合はホスト名 $ ./rebuild-pages-on-this-site --user=管理者名 --pass=パスワード これでblog_id=1(トップのウェブサイト)のindexページが再構築される。