2012-12-03 27 views
2

MovableType 5.2具有內置PSGI支持(通過主目錄中的mt.psgi),我一直試圖利用starman/plackup來利用它。Starman和MovableType 5.2

Starman w/MT啓動了,但是我運行mt-upgrade.cgi時出現故障,沒有找到並且無聲掛起&失敗。

如何我運行接龍:

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-靜態和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似乎然後到達失敗,這個孤獨的消息到接龍日誌:

[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 
+0

我不知道'StaticFilePath'配置指令是否對此很重要,但我知道這是爲了一些東西。 –

回答

0

嘗試改變在MT-config.cgi你的路徑相對路徑,不是URL。像這樣:

CGIPath /mt/ 
StaticWebPath /mt-static/ 

只是好奇:雖然現在做的工作,你知道,PG不支持的,正在做的風險是MT的未來版本可能會打破它?

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

+0

我嘗試了這兩項修改,但並未改變問題中列出的不良行爲。我忘了顯示PIDFilePath配置,只是將它添加到問題中。我肯定想到postgres的風險,我需要使用,因爲我想使用它的可查詢json數據類型。如果很快就沒有明確的解決方案,我也會嘗試使用mysql來確保。 –

+0

感謝您的回覆@ francois-nonnenmacher ...所以我只是用DBI :: sqlite MT配置來試用它。結果:與postgres相同的一組行爲,但創建了一個零長度的sqlite數據庫文件。 –

+0

我記得起初有同樣的問題,但後來它的工作(有關權限設置和運行普拉克之前,MT目錄cd'ing,你似乎這樣做)。儘管我沒有執行升級,但您可能想要從全新安裝開始進行快速測試,以查看該設置是否有效(使升級腳本不在等式中)。 –

0

順便說一句,404上http://mysite:8045/mt/index.html看起來很正常。你不應該把你的網站索引放在與MT相同的級別(你可以,但這不是推薦的設置,並且它不適用於股票MT安裝,假設MT和生產的網站是分開的)。

+0

絕對同意將生成的內容與mt本身分離。我認爲獲取404是很奇怪的,因爲在movabletype目錄中有一個index.html(這是一個啓動新的基於UI的安裝的介紹頁面)。但我還沒有深入瞭解在mt代碼庫中配置足夠的psgi的情況...... –

1

如果您試圖在Starman下運行Movable Type,我會認真地推薦使用與您的選擇相同的命令行來運行Movable Type附帶的升級腳本。 mt-upgrade.cgi沒有很好的理由以Starman和Plack允許的方式持久化。

2

我是Yuji Takayama,Movable Type的首席工程師。我確實試圖重現你的步驟,但我無法重現這一點。 (這意味着我有初始安裝屏幕)

所以,你可以嘗試與MySQL?你也可以嘗試「工具/升級」腳本?我認爲當出現一些錯誤時你可以得到錯誤信息。

ex。) cd MT_HOME; perl -Ilib -Iextlib tools/upgrade --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一定不能列出。

+0

謝謝Yuji!自從我開始使用自定義解決方案後,我認爲mysql是MT和WordPress的最佳選擇。 –