【发布时间】:2012-12-03 21:02:44
【问题描述】:
MovableType 5.2 具有内置 PSGI 支持(通过主目录中的 mt.psgi),我一直在尝试使用 starman/plackup 来利用它。
带有 MT 的 Starman 启动,但是当我运行 mt-upgrade.cgi 时,我得到奇怪的 Not Founds 和静默挂起和失败。
我是如何运行starman的:
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 返回“未找到”,但 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
【问题讨论】:
-
我不知道
StaticFilePathconfig 指令是否对此很重要,但我知道它对某些事情很重要。
标签: perl amazon-ec2 movabletype psgi starman