Starman和MovableType 5.2

时间:2012-12-03 21:02:45

标签: perl amazon-ec2 movabletype psgi starman

MovableType 5.2内置了PSGI支持(通过主目录中的mt.psgi),我一直试图利用starman / plackup来利用它。

Starman w / MT火了起来,但我得到了奇怪的Not Founds和一个无声的悬挂&当我运行mt-upgrade.cgi时失败。

我如何运营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返回“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

4 个答案:

答案 0 :(得分:2)

我是Movable Type的首席工程师Yuji Takayama。我确实尝试重现你的步骤,但我无法重现这一点。 (这意味着我得到了初始安装屏幕)

那么,你能试试mysql吗?你也可以试试“工具/升级”脚本吗?我认为您可以在发生错误时收到错误消息。

离)。 cd MT_HOME; perl -Ilib -Iextlib工具/升级--username --password --nickname --email --preferred_language --site_name --site_url --site_path --site_theme --site_timezone

并且,我已经回答了“未找到index.html”。

原因:MT永远不会将MT_HOME挂载为静态文件目录,如mt_static,因为我们认为无法列出MT_HOME。

答案 1 :(得分:1)

如果您尝试在Starman下运行Movable Type,我建议您使用您选择的命令行等效命令运行Movable Type附带的升级脚本。毫无理由让mt-upgrade.cgi以Starman和Plack允许的方式持久化。

答案 2 :(得分:0)

尝试将mt-config.cgi中的路径更改为相对路径,而不是URL。像这样:

CGIPath /mt/
StaticWebPath /mt-static/

只是好奇:虽然现在确实有效,但是你是否意识到PG不受支持并且你冒着未来版本的MT可能会破坏它的风险?

P.S。也不要忘记the documentation中提到的PIDFilePath指令。

答案 3 :(得分:0)

顺便说一句,http://mysite:8045/mt/index.html上的404看起来很正常。您不应该将您的站点索引设置在与MT相同的级别(您可以,但这不是推荐的设置,并且它不适用于假设MT和生产的站点明显分开的库存MT安装)。