既に世界は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の管理画面にアクセスするとアップデートプログラムが実行されます。