エラーの最近のブログ記事
具体的には、mt_sessionテーブル。
現象としては、ブラウザ、マシンを問わず、まるでクッキーが機能していないようにログイン要求画面が操作するたびに毎回でます。
一応、操作自体はできますが、リンクをクリックするたびに聞かれるので、たまったもんではないです。
直し方は、他のMT(同じバージョンがいいと思うけど、カラム名があっていればうごきそう)から、mt_seseionテーブルをエクスポートしてきて、壊れたDBのmt_sessionテーブルを削除してから、インポートします。(エクスポートでDropTable含んでいればそれで良いですけど)
これで直るはず。私は、phpMyAdminからしました。
しかし、私がログインできて、クライアントが出来なかったという現象、たまたま、セッション情報が生きていただけかもしれません。
もっと丁寧な解説をこちらでしてくれていますよ。
「Movable Typeがいきなり壊れた!(DBのmt_session) 」
あ、でもこのサイトを教えてくれたのはDigiclo氏。サイトの著者さまと彼に感謝です。
Degiclo氏が、テーブルを作成するSQL文を書いてくれました(MovableTypeでログイン異常時の対処)。これで、何度壊れても大丈夫?!
MT4から付いてきたバックアップと復元機能は、(アイテム登録してあれば)画像やらテンプレートまで、一括で書き出しできるので、非常に便利だ~!
と言っていたが、問題発生。
バックアップしたバージョンと復元するバージョンが違うと、機能しない!
でも、普通に考えれば、バックアップ → バージョンアップ → 復元 だよね~。じゃあ、これ、使えないジャン!!
このバージョンは、バックアップ&復元のモジュールのバージョンなのかな?MTのバージョンではないようだjけど。
突然、エラーが出た。
Can't locate object method "shift-jis" via package "Jcode" (perhaps you forgot to load "Jcode"?) at lib/MT/I18N/ja.pm line 93.
しかし、原因がまったく分からない。なぜなら、納品用のサイトをごっそりと開発環境から先方のサーバーにDBコピーしただけで、内容が同じ開発環境ではエラーが出なかったからだ。もちろん、プラグインもすべて同じ。
そこで、ひと晩寝かせて、mtを全部、再インストール。おまけに、プラグインも全部入れなおし。これで、開発環境と納品先の環境はまったく同じになった。
それでもエラーが出る・・・で、なんとなく分かってきたのは、
が、よく見ると?な箇所があった。
<MTEncodeText from="utf-8" to "shift-jis">
shift_jisじゃね?と思って、「-(ハイフン)」を「_(アンダースコア)」に直して再構築すると、直った・・・。
なんで、エラーが出る環境と出ない環境があるのか? あ、サーバー違った!
文字コードの表記にご用心。
<MTEncodeText from="utf-8" to "shift_jis">
ps.ブログのコメントでは、「sjis, shift_jis, euc-jp, euc, utf-8, utf8」と書かれてました(^^;
いくつかあったブログを、サーバー1個にまとめることにした。
で、ブログの数も多いが、MT4からバックアップ&復元があるので、これを使ってみた。
今までは、DBを直接バックアップ&復元していたのだけど、今回は、ブログをマージする必要があるので、DBのリストアじゃだめなのだ。
バックアップ&復元の対象にあるのは次の通り。
- すべてのテンプレート
- MT4.1から標準装備されるカスタムフィールド
- エントリー
- アセット(きちんと画像をMTからアップロードして、いれば、ここで役にたつ)
- コメント
- タグ
- その他、一切がっさいの設定。たとえば、BASENAMEとか
ただし、エクスポートの良いところは、テキストデータとして残せるので、他にも流用できそうなデータ形式になるところ。
シックスアパートでは、MTフォーマッとのテキスト形式で書き出すことで、インポート可能なデータを作成することができると紹介している。(Movable Type のブログ記事インポートフォーマット)
そのフォーマッとでは、上記のうち、カスタムフィールドのデータ、アセット、テンプレートが落とせない。
あくまでもエントリーに関するデータがメインなので、気をつけないといけない。
復元機能は万能ではない。復元時には注意すべきことがある。
フォルダは前もって作成しておく
どうも、復元時に、フォルダがないとエラーになるようだ。
これ以外にも、現在、原因が特定できないエラーに悩まされている。
復元中にエラーがありました。 (IP: xxx.xxx.xxx.xxx)
internal error at /usr/local/lib/perl5/site_perl/5.8.8/i686-linux/XML/LibXML.pm line 485. at /usr/local/lib/perl5/site_perl/5.8.8/i686-linux/XML/LibXML/SAX.pm line 64 at lib/MT/BackupRestore.pm line 270
このエラーのせいで、ブログのタイトルしか復元できない・・・。
また、分かったら、解決策載せます。今、手がつけられないから、あとで。
