在Openshift上搭建Movabletype

  • Posted on
  • by

Openshift的免费账户提供的功能已经超过了许多便宜空间服务商的服务。本文介绍在Openshift上搭建Movabletype的步骤。由于Openshift的空间部分被GFW屏蔽,但是加密链接还可以正常访问,因此介绍的方法需要连接vpn进行设置。安装步骤所采用的本机操作系统为Mac os X,服务器操作系统为redhat,如要在其他系统环境下配置,请参考openshift相关帮助文档。安装的Movabletype版本为Movable Type Pro 6.0.3。

以下按照顺序介绍Movabletype的安装。示例代码中,可以替换的变量用斜体字表示。

1 创建应用

创建应用可以通过浏览器登录Openshift网站,进入网站设置页面创建,也可以使用rhc命令创建。使用rhc在本地创建一个名字为mt的perl应用命令如下:

$ rhc create-app mt perl-5.10
$ rhc set-env TZ=Asia/Beijing -a mt
$ rhc add-cartridge mysql-5.5 -a mt
$ rhc add-cartridge cron-1.4 -a mt

成功执行完这些命令后,在本地创建一个名为mt的文件夹。使用浏览器进入网站后台即可看到已经创建的应用。

2 安装Movabletype准备工作

进入应用本地文件夹,创建Movabletype依赖的perl模块。

$ cd mt/.openshift
$ touch cpan.txt

cpan.txt为Movabletype依赖的Perl模块列表,内容如下:

# .openshift/cpan.txt
###################################
CGI::Cookie
LWP::Protocol::https
LWP::UserAgent
HTTP::Request::Common
File::Spec
Image::Size
DBI
DBD::mysql
DBD::Pg
Net::SSLeay
IPC::Run
Archive::Zip
Net::SMTP::TLS
Authen::SASL
Storable
List::Util
CGI::PSGI
Cache::Memcached
Digest::SHA
Cache::File
Crypt::SSLeay
GD
Archive::Tar
Safe
CGI::Parse::PSGI
File::Temp
HTML::Parser
XML::SAX
Scalar::Util
Crypt::DSA
SOAP::Lite
Text::Balanced
Digest::MD5
HTML::Entities
XML::Parser
IO::Socket::SSL
IO::Uncompress::Gunzip
Digest::SHA1
IO::Compress::Gzip
XML::Atom
Net::SMTP
MIME::Base64
Net::SMTP::SSL
Imager
###################################

下载Movabletype安装文件,解压到mt文件夹,使用Git推送到服务器。

$ git add .
$ git commit -m "first commit"
$ git push

3 安装Movabletype

使用ssh登录服务器,获取相关环境变量并修改cgi脚本权限。

$ ssh [email protected]

进入服务器后,可以发现,Openshift的应用安装在app-root目录下。其中,执行的代码存放在app-root/runtime/repo目录,该目录每次提交代码会被覆盖,app-root/repo为指向app-root/runtime/repo的软链接,app-root/data目录则不受代码提交影响,可以作为数据的备份文件夹。

执行env命令获取数据库地址、端口、用户名、密码等信息,供安装应用使用。

$ env

进入代码存放目录,设置cgi脚本权限。

$ chmod 755 *cgi

在浏览器输入网站的地址:https://mt-veryword.rhcloud.com/index.html进行安装。结合运行env命令获取到的变量完成安装。必须输入包含index.html的网址,因为创建的应用是perl应用,默认的索引文件是index.pl,在按照提示安装完应用之后,可以修改.htaccess文件,指定首页默认索引文件为index.html。

4 安装后配置

安装完应用,可以创建用户,添加新的内容或者导入旧的Movabletype网站内容。

发布新文章并进行重建的时候,网站偶尔出现"504 Gateway Time-out"的错误,在整站重建的时候这个错误尤其频繁。这是因为服务器限制了脚本的运行时间。如果发布内容较少,刷新一下即可。如果发布内容较多,可以通过ssh进入网站的安装目录,删除所有Movabletype生成的旧的静态文件,减少脚本的判断时间,提高运行效率。

有时候,在提交代码完之后,访问网站会出现无法访问的错误,这可能的原因是应用没有启动,可以在本地重启应用。

$ rhc app restart -a mt

重建完之后,如果访问某个目录,找不到索引文件,需要修改.htaccess文件,增加以下内容:

DirectorIndex index.html

在安装并配置好之后,可以将服务器上app-root/runtime/repo文件夹备份到app-root/data目录下,因为每次重新提交代码都会把配置文件覆盖,需要重新安装的过程,如果不是涉及核心代码更新,用备份文件覆盖即可。

以上即为在Openshift上安装Movabletype的步骤及必要的配置。重建完毕后,可以发现,使用加密链接访问速度相当快。