MovableType管理画面をPSGI(Plack,Starman, Starlet)で動かす方法
事前準備
Task::Plackのインストールをしておいてください。Plack入門:Plackでウェブサーバを起動してhello worldするまで
前提
下記のようなURL・パスになっているという前提で解説します。URL | ファイルシステム上の位置 | |
---|---|---|
ブログ | http://blog.example.com/ | /path/to/blog/ |
MT管理画面(mt.cgiの場所) | http://blog.example.com/mt/ | /path/to/blog/mt/ |
mt-static | http://blog.example.com/mt/mt-static/ | /path/to/blog/mt/mt-static/ |
実施手順
1.psgiファイルを作成します。
mt.cgiと同じディレクトリに "mt.psgi" というファイル名で保存します。#!/usr/bin/env perl
use strict;
use warnings;
use File::Basename;
use Plack::Builder;
use Plack::App::CGIBin;
builder {
enable "Plack::Middleware::Static",
path => qr{^/mt/mt-static}, root => '/path/to/blog';
mount "/mt" =>
Plack::App::CGIBin->new( root => '.', exec_cb => sub { 1 } )->to_app;
};
2.plackupで起動
$ cd /path/to/blog/mt
(Plackで動かす場合)
$ plackup /path/to/blog/mt/mt.psgi
(Starmanで動かす場合)
$ plackup /path/to/blog/mt/mt.psgi -s Starman
(Starletで動かす場合)
$ plackup /path/to/blog/mt/mt.psgi -s Starlet
3.動作確認
http://blog.example.com:5000/mt/mt.cgi にアクセスすればMT管理画面が開くはずです。
あとがき
うまく動きましたでしょうか?パスやURLの設定が人によって違うので、若干てこずるかもしれません。
mt-static/以下のファイルが404 not foundになってしまう場合は、こちらの記事を参考にしてください。
Plack入門:Plackで静的ファイル配信をする方法
ちなみに私はパスの設定に手こずって半日かかってしまいました。
本記事を読んでからやれば、割と簡単にできるかと思います。
Enjoy!
※肝心の動作速度ですが、HTTP+CGIと比べて体感的には全然変わりませんでした。残念。
CGIがボトルネックかと思っていたらそうではなかったようです。
参考
- How to run MovableType with Plack
- https://gist.github.com/732822
- Plack入門:Plackでウェブサーバを起動してhello worldするまで
- Plack入門:Plackで静的ファイル配信をする方法
カテゴリ:
Perl