MT6.2系から6.3系にアップデートしてみる

既に世界はWordPressが席巻していますが、複雑なことをしない個人サイトであれば静的な書き出しができるMovableTypeも良いチョイスだと思っています。

静的な書き出しをするCMSとしては jekyll + GitHub Pages を使う方法なんかもありますね。静的なコンテンツであればサーバーの移行なども簡単なのでいいですよね。

さて、MovableTypeのアップデートをしてみます。

今回利用しているサーバーはロリポップ。ロリポップで今使っているプランではSSHアクセスもできるようになっています。レンタルサーバーといえばFTP、という印象が強いですが、時代の流れですね。

事前準備

事前にサーバー上のデータ及びデータベースのバックアップをとっておきましょう。

サーバー上にMTのコンテンツを配置してみます。

差分確認

差分を調べてみます。

diff -qr mt622  mt633

差分が結構あるので1つずつ見ていきます。

extlib

diff -qr mt622/extlib/  mt633/extlib/ | grep Only

僕の環境だと以下が差分として抽出されました。この辺はプラグインを利用する関係で自前で入れたような気もします。1年以上前なので覚えてませんが。

HTML: AsSubs.pm
HTML: Element
HTML: Element.pm
HTML: Parse.pm
HTML: Selector
HTML: Tree
HTML: Tree.pm
HTML: TreeBuilder
HTML: TreeBuilder.pm
LWP: UserAgent
Web
XML: XPathEngine
XML: XPathEngine.pm
cp -ar mt622/extlib/HTML mt633/extlib/
cp -ar mt622/extlib/LWP mt633/extlib/
cp -ar mt622/extlib/Web mt633/extlib/
cp -ar mt622/extlib/XML mt633/extlib/

plugins

diff -qr mt622/plugins/  mt633/plugins/ | grep Only

僕の環境だと以下が差分として抽出されました。

AccessCounter
ExtendPlainEditor
FutureRebuild
OGPClearCache.pl
PageBute
PostTweet
RandomArray
RemoteCommentsSchema
disqus
mixiComment

MTに内包されているプラグインは新しいものを優先すれば良いと思うので、自前でいれたプラグインのみをコピーします。

cp -ar mt622/plugins/AccessCounter  mt633/plugins/
cp -ar mt622/plugins/ExtendPlainEditor  mt633/plugins/
cp -ar mt622/plugins/FutureRebuild  mt633/plugins/
cp -ar mt622/plugins/OGPClearCache.pl  mt633/plugins/
cp -ar mt622/plugins/PageBute  mt633/plugins/
cp -ar mt622/plugins/PostTweet  mt633/plugins/
cp -ar mt622/plugins/RandomArray  mt633/plugins/
cp -ar mt622/plugins/RemoteCommentsSchema  mt633/plugins/
cp -ar mt622/plugins/disqus  mt633/plugins/
cp -ar mt622/plugins/mixiComment  mt633/plugins/

themes

diff -qr mt622/themes/  mt633/themes/ | grep Only

僕の環境だと以下が差分として抽出されました。

bootstrap3
cleanblog
seo_tuning_eiger
shield
simplecorporate
cp -ar mt622/themes/bootstrap3  mt633/themes/
cp -ar mt622/themes/cleanblog  mt633/themes/
cp -ar mt622/themes/seo_tuning_eiger  mt633/themes/
cp -ar mt622/themes/shield  mt633/themes/
cp -ar mt622/themes/simplecorporate  mt633/themes/

mt-static

diff -qr mt633/mt-static/plugins/ mt622t/mt-static/plugins/ | grep Only

僕の環境だと以下が差分として抽出されました。

ExtendPlainEditor
disqus
mixiComment
cp -ar mt622/mt-static/plugins/ExtendPlainEditor mt633/mt-static/plugins/
cp -ar mt622/mt-static/plugins/disqus mt633/mt-static/plugins/
cp -ar mt622/mt-static/plugins/mixiComment mt633/mt-static/plugins/

以下もコピーが必要そうでした。

cp -ar mt622/mt-static/support/theme_static mt633/mt-static/support/
cp -ar mt622/mt-static/support/theme_thumbnails mt633/mt-static/support/

以下のコマンドでコピー漏れがないか確認します。(phpフォルダは自分でさわっていないので除外しています。)

$ diff -qr mt633/ mt622 | grep Only | grep mt622 | grep -v php

また自前で用意したcron実行用のシェルスクリプトもコピーしておきます。

cp -ar mt622/rebuild-pages.sh mt633/
cp -ar mt622/run-periodic-tasks.sh mt633/

mt-config.cgi

はmt633に含まれる mt-config.cgi-original をベースに必要な設定項目を写経するのがよさそうです。

また、一気にMTをアップデートする方法もありますが、データベースは新しいものを用意して、バックアップしておいたデータをリストアしてそっちに接続するようにしておくと安心かと思います。

パーミッション変更

CGIのファイルのパーミッションを変更します。

chmod 0755 mt633/*.cgi

シンボリックリンク変更

自分の環境ではシンボリックリンクを指定しているので、変更します。

ln -nfs ./mt633 ./mt

あとは普通にMTの管理画面にアクセスするとアップデートプログラムが実行されます。