====== MovableType 5.2.9→6.2 ====== ====== 概要 ====== MovableType 6シリーズは、MySQLのみをバックエンドとして利用可能である。 5.2.9でこれ以外のバックエンドを利用している場合には、先にデータベースの移行を行う必要がある。 ((データベースの移行は、異なるMovableTypeのバージョン間ではできないので、まずデータベースの移行から行う必要がある。)) 移行に関しては、[[MovableType 5.2.9→5.2.9(データベース移行)]]を参照のこと。 ====== 旧バージョンからコピーしておくべきファイル群 ====== * plugins * addons * extlib * themes * mt-static/plugins * mt-static/addons * mt-static/support * mt-static/themes これらのディレクトリで新しいバージョンにないものは既存のものからコピーしておく。 ((まれに古いプラグインなどは、新しいバージョンで利用できなくなっている場合がある。その場合はバージョンアップ後の管理画面から、新しいバージョンのものをインストールする。)) ====== バグ ====== 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に関して]]