MovableType 5.2 には組み込みの PSGI サポートがあり (メイン ディレクトリの mt.psgi を介して)、starman/plackup を使用してそれを利用しようとしています。
Starman w/ MT は起動しますが、mt-upgrade.cgi を実行すると、奇妙な Not Found が表示され、サイレント ハング & 失敗します。
スターマンの実行方法:
cd /home/ec2-user/mysite/perl/components/movabletype
plackup -s Starman --port 8045 --error-log /home/ec2-user/mysite/perl/logs/starman.log --pid /home/ec2-user/mysite/perl/var/starman.pid -a mt.psgi
謎 1: 私のブラウザは index.html に対して "Not Found" を返しますが、mt-static と mt.cgi にはアクセスできます。
X http://mysite:8045/mt/index.html ... Not Found
✓ http://mysite:8045/mt-static ... listing of static assets
✓ http://mysite:8045/mt/mt.cgi ... redirects to ...
X http://mysite:8045/mt/mt-upgrade.cgi?__mode=install ... fails
謎 2: リダイレクトにより、MT コードが実行されていると思います。しかし、さまざまな MT デバッグ オプションを試しても、starman ログにはほとんど何も表示されません。さらに悪いことに、mt-upgrade.cgi に到達したように見えますが、starman ログに次のメッセージが表示されて失敗します。
[mypid] Bootstrap CGI script in non-buffering mode: /home/ec2-user/mysite/perl/components/movabletype/mt-upgrade.cgi
この非バッファリング メッセージは、情報を提供するものであり、通常のように見え、MT コードベースからのものです。
また、starman の直下で実行したところ、同じ結果が得られました。
アイデアや助けをいただければ幸いです。
システム/環境:
MT_HOME='/home/ec2-user/mysite/perl/components/movabletype'
linux AMI on an amazon ec2.
perl-5.16.0 under perlbrew.
CPAN モジュール:
cpanm starman
cpanm CGI::PSGI
cpanm CGI::Parse::PSGI
cpanm CGI::Compile
yum install expat-devel
cpanm XML::Parser
cpanm SOAP::Lite
cpanm SOAP::Transport::HTTP
cpanm XMLRPC::Transport::HTTP::Plack
cpanm DBI
sudo yum install postgresql9-devel
cpanm DBD::Pg
cpanm Task::Plack
MT 構成:
CGIPath http://mysite:8045/mt
StaticWebPath http://mysite:8045/mt-static
PIDFilePath /home/ec2-user/mysite/perl/var/starman.pid
DebugMode 1
ObjectDriver DBI::postgres
Database db
DBUser dbuser
DBPassword dbpass
DBHost dbhost.mysite