====== 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に関して]]