ユーザ用ツール

サイト用ツール


movabletype_5.2.9_6.2

MovableType 5.2.9→6.2

概要

MovableType 6シリーズは、MySQLのみをバックエンドとして利用可能である。 5.2.9でこれ以外のバックエンドを利用している場合には、先にデータベースの移行を行う必要がある。 1) 移行に関しては、MovableType 5.2.9→5.2.9(データベース移行)を参照のこと。

旧バージョンからコピーしておくべきファイル群

  • plugins
  • addons
  • extlib
  • themes
  • mt-static/plugins
  • mt-static/addons
  • mt-static/support
  • mt-static/themes

これらのディレクトリで新しいバージョンにないものは既存のものからコピーしておく。 2)

バグ

6.2に入れ替えた途端に、ブログページが表示できなくなった。 サーバは500 (Internal error)を返すだけで、error_logにもなんの出力もない。 即ち、php の問題だ。

php.ini の中の次のパラメータをOnにして、apacheを再起動し、もう一度ページにアクセスすればエラーメッセージが表示される。

display_errors = On
log_errors = On

当サイトで遭遇したのは次の三点である。

  • DynamicMTML.pack の参照渡し
  • php/lib/class.mt_config.php の静的メンバーへの変数によるアクセス
  • lib./MT/Template/Tags/Asset.pm で非初期化変数へのlcに対する警告が出る

一点目は Notice なので、放置しても今のところ問題はないし、そもそも DynamicMTML.pack自体 5.2.9から引き写したものなので、いささか古い感は否めない。

二点目は、php 5.4で禁止されたコードで Fatal なので、これを直さない限り永劫にウェブページは表示されない。

php 5.3を推奨とかで済まされるレベルの話ではないので、どうにかしないといけないのだが、真面目にコードを修正するのも面倒なので、5.2.9のファイルをそのままコピーしてしまった。今のところ問題なく動いている。

三点目は、エラーではないが警告が出る。410行目の lc ()なのだが、

my $so
    = lc ( $args->{sort_order} )
    || ( $blog ? $blog->sort_order_posts : undef )
    || '';

となっている。確かに、 $args→{sort_order}は未初期化だし、実際に undefもあり得るから、このような評価式になっているのだと考えられる。 なので、

my $so
    = lc ( $args->{sort_order} 
    || ( $blog ? $blog->sort_order_posts : undef ))
    || '';

のように書き換えた。

MovableTypeに関して

1)
データベースの移行は、異なるMovableTypeのバージョン間ではできないので、まずデータベースの移行から行う必要がある。
2)
まれに古いプラグインなどは、新しいバージョンで利用できなくなっている場合がある。その場合はバージョンアップ後の管理画面から、新しいバージョンのものをインストールする。
movabletype_5.2.9_6.2.txt · 最終更新: 2015/11/11 06:48 by 127.0.0.1