Movable Type を4.2x系より、5.2.3 にアップグレードしたときにおこったトラブルの解決と各設置をまとめたものです
設定について
Movable Type(以下 MT) 4.x 系から 5.x 系に移行した際の確認事項からまとめていきます。
*作業内容をことごとく詳細にメモをとっていたわけではなく、思いあたったものだけを記載してますので、一部抜け落ちているかもしれません。
アップグレードが完了してもすぐに全体を再構築しないこと。再構築をかけないかぎりは静的なページの表示に変化はありません(当然のことながらダイナミックで動いている部分には変更が反映されることがあります。
従ってテンプレートの確認の優先順位としてはスタティックなページより、ダイナミックなページのテンプレートのほうを先におこなうほうがよいといえます)。
1. サイトの構成とパスはあっているか?
MT4.xからMT5.x にしたときにブログが存在する場合、自動でサイトが判別されて、その配下にブログがおさめられるという仕様になっています(あとからでも移動なども可能です)。
以下確認事項を列挙します
- ユーザーダッシュボードを開いたときに、下のほうのウィジェットに「ウェブサイト」のタブにあるURLがドメインのトップなどになっているか
- ブログのタブに、MT4.x で作成したブログ群が並んでいるか
- ウェブサイト管理ページの設定>全般のところのパスに正確な値が入っているか
- ウェブサイト管理ページの設定でウェブサイトのURLはあっているか(www. ありかなしかなど MTWebSiteURLに反映されるので)
- ブログ管理ページの設定>全般のところのパスおよび公開設定は旧環境と同じ値が入っているか
- 各管理ページのタイムゾーンの設定はあっているか
変更をおこなったら、保存をクリックします。反映には再構築ですが、ほかの確認がすんでから全体の再構築時でかまわないとおもいます。
2. プラグインが認識されていないものはないか?
MT4.x で使えていたものが、MT.5x で使用できない、もしくはシステムのプラグイン一覧のところに警告表示のあるものはないか、などをチェックしておきます。
動作しないか、または動作に不安があるプラグインについては、アップグレード後の確認の段階ではシステムのプラグインリストより個別にプラグインの使用を停止するか削除しておくほうがいいでしょう。
MT5.x系でのプラグイン動作の確認情報
- 小粋空間: Movable Type プラグイン一覧(MT5対応)
- 拙作プラグインのMovable Type 5.2対応状況 - The blog of H.Fujimoto
- MT5・プラグインの皆さん動いてますか - WolaWola (続編は前掲の『小粋空間』のページ上に全てリンクされています)
3. テンプレートの状態
- アップグレード後にテンプレートが文字化けしていたりしないか
- ダイナミックパブリッシングに設定しているテンプレートは正常に動作しているか
- グローバルテンプレートなど初期化はおこなったか
- 5.13、5.07、4.38 へのアップグレード後に必要な作業 : Movable Type 5 ドキュメント このブログでは、コミュニティ関連の機能を使っていない状態だったので、特に変更はやっていません。該当する場合は修正の必要があります。
トラブルに関して
- a. 5.2.3 設置完了後に YAML のエラーで管理画面に入れない
- b. サイトのテンプレートで文字化け
- c. ダイナミックパブリッシングにしているテンプレートが404 で返る
- d. PubSubHubbub プラグインで ping が動作していない
a. ですが、 YAML モジュールがMT5が YAML::Syck を標準にしていることで、書式において厳密になっているのが主な原因といえます。
対処方法は、問題のおこるプラグインを削除してしまう、あるいは、YAML::Syckに怒られないように.yamlファイルを修正するか、 YAML::Tiny を使うように、mt-config.cgi に書き込むなどです。
インストール時は、修正とかすると時間がかかってしまうので、一時的にmt-config.cgi に YAMLModule YAML::Tiny を書き加えました。
インストールが完了して一通り確認作業が終わった時点で、問題のおこっているプラグインの.yaml ファイルの修正にとりかかりました。というのも、標準にYAML::Syck が採用されたのはおそらくパフォーマンスに関係してるとおもわれ(確かベンチとったかたが記事をあげていたような)、面倒でも YAML::Syck の環境にしたかったので。ローカルのほうのMTOSもYAML::Syck になってますし。
エラーをおこしているプラグインの具体的な名前をあげると、 CommunityActionStreams とか Motion 。 CommunityActionStreams はGitHub 上のものに差し替えると大丈夫そうです。
.yaml の修正ですが、[_1] <a href= ... > のようなコードは、シングルクォーテーションを使って囲うことでエラーは回避できます。 あと、インデントにタブが使われているものもエラーですので、それらは半角スペースに、それとインデントの位置があっているかもチェックしておきます。
まあ、どちらもほとんど使わないようになってきたので削除してしまったほうが早かったかもしれません。
b. の文字化けについて
これは、Movable Type 5.x の変更点、注意事項、および既知の問題 : Movable Type 5 ドキュメント に書かれている、「データベースがMySQL 5.x で、UTF-8を利用している場合は、mt-config.cgiに"SQLSetNames 0"を指定してください。」の文面どおりにおこなったらなりました。
---- 同じような現象は、Google検索をかけてみるといくつかみられました。サーバーの環境などにもよるものらしいですが、当方の環境も当りだったということのようです。
具体的には、テンプレート名やサイトのタイトルなど複数の箇所で文字化けがおこります。環境変数を削除すれば、ほとんど解消します。しかしながら、これまでにデータベースになく新たにセットされたテーマで文字化けはそのままでした。
そこで、グローバルテンプレートについてはテンプレートの初期化を、サイトのテーマについては、再適用で文字化けは解消しました。
d. PubSubHubbub ですが、GitHub 上の https://github.com/miyagawa/MT-PubSubHubbub 最新版に差し替えて使用しています。
ところが、そのままで使うと、ping が送信されないので当然リーダーのサービスにも反映されていませんでした。
以前のヴァージョンもそういえば、テンプレートが標準でないときに動作してなかったことを思い出して修正をおこないました。
Plugin.pm の11行は、
if ($tmpl && $tmpl->identifier eq 'feed_recent')
となっています。このブログだと、template_identifier がNULL のため、以下に修正(改変?)しました。
if ($tmpl && $tmpl->name eq 'Atom')$tmple->name
テンプレート名が 'Atom'のものを対象とする
(注: これは自分が修正したときのものです。1回既存のテンプレートをテーマとしてエクスポートし、既存のフィードのテンプレートはテーマの configuration で identifier => 'feed_recent' にして、最適用させるかidentifier にfeed_recent 登録済なテーマに入れ替えるのが望ましい方法です)
いまのところ以上です。なにか気づいたことがあったら追記します。
Comments:
コメントをどうぞ。書き込む場所が不明な場合やサイトオーナーへのコンタクトは、GuestBookまでお気軽にどうぞ
blog comments powered by Disqus