Movable Type 6.0.3(MT6)を8.0.3(MT8)にバージョンアップしてみた→大成功!

本サイトで利用しているMovable Type 6.0.3を8.0.3にバージョンアップしてみました。
結果から言うと、大成功です。

upgrade_to_mt8_from_mt6_on_sakura_internet_01.png

MT8の前は、MT7というバージョンがリリースされていましたが、特に困っていることもなかったのでMT6のまま使っていましたが、バージョンアップの間隔を開けすぎるのも...と思い、今回、MT8へバージョンアップすることにしました。
サーバーはさくらインターネットのレンタルサーバー・スタンダードで、MySQLは5.7を使っています。

MT6からMT8へのバージョンアップ作業は、シックス・アパート社の提供する説明サイトの通り進めることで、問題なく行えました。
今、ご覧頂いているページは、MT8で全ページを再構築し直し、新規に追加したページになります。

では、行った作業について、簡単にご説明します。

まずはバージョンアップの計画を立ててみます。本当にできるのか?について机上でシミュレーションです。ちなみに、バージョンアップはアップグレードとも言います。

  • 現在のバージョンが6.0.3+MySQLなので、8.0.3にすることに大きな問題はなさそう。
  • 使っているさくらのレンタルサーバーのPerlのバージョンが5.14.4(MT6はこれじゃないと動かない)。MT8は5.16.3以上をサポートということなので、MT8へのアップグレード(mt.cgiの実行)直前に、さくらのコンパネより「標準のPerl [推奨](この時点では5.32.1になる)」に変更する。6.0.3のMTの管理画面にログインしようとすると、Perl 5.32.1では「 Can't locate object method "is_ready" via package "GoogleAnalytics::Provider" 」というエラーが表示された。
  • そろそろMySQL8の声も聞こえてきているが、今回は現行のMySQL5.7(utf8)で作ったデータベースをそのまま使う。さくらでMySQL8が使えるようになったら、文字コードをutf8mbで作成したデータベースに、MySQL5.7のデータをエクスポート&インポートして、MT8に同梱の「データベースを utf8mb4 に変換する」ツールを使って変換にチャレンジしてみようと思う。
    https://www.movabletype.jp/documentation/mt8/appendices/included-tools/utf8mb4-converter/
  • DBのバックアップは、phpMyAdminでしっかりとっておく。

というわけで、バージョンアップができるはずというシミュレーション結果になったので、早速やってみます。

本来なら、最初に、MTが稼働するサーバーが、MTの動作要件を満たしているかどうのチェック(mt-check.cgiの実行)が必要ですが、MT6が動いていたということで、mt-check.cgiによるシステムチェックは省略しました。

upgrade_to_mt8_from_mt6_on_sakura_internet_02.png

upgrade_to_mt8_from_mt6_on_sakura_internet_03.png

1.MT8のダウンロード

よりMT8をダウンロードします。
シックス・アパートさんでは、、MT8でも、「Movabletypeの個人無償ライセンス」というものを提供してくれています。ありがたい限りです。

2.MT8をインストール

このページの、
「旧バージョンから Movable Type 8 へアップグレードする」というリンクの説明には、「Movable Type 6 以前のバージョンから Movable Type 8 にアップグレードする方法について説明します。」と書いてありますが、MT6以前の場合も、MT7の場合も、MT8の場合も、「旧バージョンから Movable Type 8 へアップグレードする」というリンク先のページの説明を見ることになります。よってこのページの内容に従って進めます。
そして、本当に、そこに書いてある手順なので、ここでは細かいことは書きません。

注意する点があるとすれば、プラグインでしょうか。
MT8に対応していないプラグインをコピーすると、以下の4の手順にてアップグレード処理中にエラーになってしまうことがあるので、明らかに使っていないと思われる古いプラグインは、新しい環境へはコピーしないほうがいいでしょう。

3.Perlのバージョンアップ
前述したように、MT8ではPerl 5.16.3以上をサポートということなので、このタイミングでレンサバのPerlのバージョンを 5.32.1 へ変更します。変更は、さくらのコンパネの「スクリプト設定」より行います。
下図のように、Perlのバージョンの「設定」欄で「標準のPerl[推奨]」を選択し、画面下部の「保存する」をクリックします。

upgrade_to_mt8_from_mt6_on_sakura_internet_04.png

4.ブラウザからmt.cgiへアクセスしMTをアップグレード
 mt.cgiへアクセスし「アップグレードを開始」をクリックします。

upgrade_to_mt8_from_mt6_on_sakura_internet_05.png

アップグレード作業が始まり、なにも問題がなければ「アップグレードを完了しました」というメッセージが表示されます。
 今回は、以下のようなエラーが発生しました。
 
 アップグレード中にエラーが発生しました Undefined subroutine &Smartphone Device request_cache called at /xxxx/plugins/SmartphoneOption/lib/Smartphone/Device.pm line 112.

upgrade_to_mt8_from_mt6_on_sakura_internet_07.png
 
やみくもに、プラグインを移行しようとしたために発生したエラーです。
SmartphoneOptionプラグインは不要なので、次の操作を行いました。
・FTPを使って、pluginsフォルダから SmartphoneOptionフォルダ を削除。
・エラーが表示されているブラウザの戻るボタンをクリックして前の画面に戻り、再度「アップグレードを開始」をクリック。
しばらくすると、「アップグレードを完了しました」というメッセージが表示されました。
ホッと一安心です。

upgrade_to_mt8_from_mt6_on_sakura_internet_06.png

5.MTの管理画面にログインして記事を再構築
手順4までの作業で、MT8へのバージョンアップは完了しています。
そこで、MTの管理画面にアクセスし、再構築を行ってみます。

upgrade_to_mt8_from_mt6_on_sakura_internet_01.png

MT6と比較すると、画面の構成がずいぶん変わっています。
画面左上の「再構築」をクリックし、表示された小窓で「すべてのファイル」を選択後「再構築」ボタンをクリックします。
18年分の1500件の記事の再構築が4分28秒で完了しました。
すごいぞ、さくらインターネット!

upgrade_to_mt8_from_mt6_on_sakura_internet_08.png

6.新しい記事を投稿してみる
新しい記事を投稿してみます。

実はここで問題発生。
ぱっと見の画面に異常はないのですが、以下の現象が発生しました。

  • 新規記事の作成で、何も更新していないのに、一覧へ戻ろうとすると「このサイトを離れますか? 行った変更が保存されない可能性があります」というメッセージが表示される。
  • 本文欄の「フォーマット」が「リッチテキスト」なのにリッチテキスト用のWYSIWYGエディタ用のツールボタンが表示されない。
  • 本文欄の「フォーマット」が「リッチテキスト」なのに、テキストエリアにはタグ形式で記事が表示される。
  • 右サイドの「カテゴリ」の「編集」をクリックしてもカテゴリ一覧が表示されない。

原因は古いTinyMCEエディタ用のプラグインが有効になっていたからでした。
画面左上の縦3点アイコンをクリックし、シムテムを選択。左サイドの「設定」→「プラグイン」で、以下のプラグインを無効にすることで解決しました。

FormattedTextForTinyMCE
TinyMCE

upgrade_to_mt8_from_mt6_on_sakura_internet_09.png

計画(調査)は含めず、1から5までの作業時間は1時間ほどでした。

バージョンアップも日々の投稿作業もスムーズに行うことができる Movable Type は実に素晴らしいCMSだと思います。
ありがとー、シックス・アパート!

ぐっどらっこ。