XREA.COM に設置した MovableType で指定日投稿をしてみた。
指定日投稿をするには、CRON を利用しますので、プラスサービス(有料)の環境が必要です。
また、注意点として、指定日投稿では更新ping が送られないようです。
僕の環境は、
サーバー名 : s238.xrea.com
Movable Type バージョン : 3.33-ja
で、以下の説明で、
ID : player
MTのパス : /virtual/player/public_html/blog
としています。
指定日投稿は、blog/tools/ の中にある、run-periodic-tasks というスクリプトによって公開されます。
その run-periodic-tasks を動作させるスクリプト mt-tasks.sh (名前はお好きなもので)を作成し、それを CRON に登録します。
①mt-tasks.sh を作成する。
#!/bin/sh
#PERL
/usr/local/bin/perl /virtual/player/public_html/blog/tools/run-periodic-tasks
exit
②/virtual/player/ に「script」というフォルダを作り(お好きな名前で)、その中に mt-tasks.sh を入れる。
つまり、
/virtual/player/script/mt-tasks.sh
③mt-tasks.sh のパーミッションを700にする。
④mt-tasks.sh を CRON に登録する。
「管理メニュー」の「CRONジョブ」で設定します。
そこに「CRONジョブの例」「シェルスクリプトの例」も載っているので参考にされるといいと思います。
僕の場合→例(3時間毎15分に実行)
⑤記事投稿の際、「公開設定」を「指定日」にして、「投稿日」に希望の日時を入力。
⑥本来ならば、これでO.K.のはずなのですが、この状態ですと下記のようなエラーメールが送られてきます。
Can't locate MT/Bootstrap.pm in @INC (@INC contains: lib ../lib /usr/local/lib/perl5/5.8.8/i686-linux /usr/local/lib/perl5/5.8.8 /usr/local/lib/perl5/site_perl/5.8.8/i686-linux /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl .) at /virtual/player/public_html/blog/tools/run-periodic-tasks line 11.
BEGIN failed--compilation aborted at /virtual/player/public_html/blog/tools/run-periodic-tasks line 11.
なので、run-periodic-tasks の10行目
use lib 'lib', '../lib';
を
use lib 'lib', '/virtual/player/public_html/blog/lib';
というように絶対パス指定にします。
※もし、その他うまくいかなかったなら、mt-tasks.sh の改行コード(「LF」にする)や run-periodic-tasks のパーミッション(僕は705にしてます)を確認してみて下さい。
追記:
Parsing of undecoded UTF-8 will give garbage when decoding entities at /virtual/player/public_html/blog/extlib/LWP/Protocol.pm line 204.
というエラーメールが届くようになりました。
LWPを最新のバージョンにしたらエラーが出なくなりました。
libwww-perlをダウンロード,解凍し、libの中にあるLWP以下を/virtual/player/public_html/blog/extlib/LWPと入れ替えます。
入れ替えると言っても、念のためモトを取っておいたほうが良いでしょうから、モトのLWPの名前を変更して、最新のLWPをアップロードして下さい。
次に、モトのLWPを参考にパーミッションを設定して完了です。ちなみに、僕の環境では、ファイル,ディレクトリとも全て705です。