Movable Typeにログインできなくなった場合の対応方法
MTにログインできない場合の解決方法まとめ
Movable Typeにログインできない、あるいはパスワードを忘れた場合、次の手順で確認して解決できます。
(1)Cookieを疑う
↓
解決方法:Cookieを削除
(2)ID PASSWORDが間違っていることを疑う
↓
解決方法:MT-Medicで変更
(3)DBの格納ファイルがあるかどうか確認する
↓
確認方法:mt.cfgで設定したフォルダやその中身を、FTPあるいはコントロールパネルでアクセス
↓
あった場合は(4)へ。ない場合は(5)へ
(4)サーバのバージョンアップや移行を疑う
↓
解決方法:DBのバージョンアップをしてみる
解決方法:外部DBの場合アクセス権が変更されていないか確認し、修正する
(5)それでもダメならHTMLファイルから復旧させる
次に、詳しく書きます。
Cookieを疑う
Cookieの不具合や、競合するWebアプリケーションのCookieの影響でログインできない時があります。
とくに、NucleusとMovable Typeが同時にログインできないことは有名です。
まずは、さくっとCookieを削除してみましょう。
FireFox 1.x …ツール>オプション>プライバシー>Cookie データの保存→クリア(もしくは該当ドメインのみクリア)
InternetExplorer 6.x…ツール>インターネットオプション>全般>インターネット一時ファイル→Cookie の削除
ID PASSWORDが間違っていることを疑う
Cookieを削除してみてもログインできない場合、あるいは最初からパスワードを忘れたけど、「Forgot your password?」でRECOVERしようにもメールがこない(設定していない)時は、再度入れ直すことが出来る便利ツールがあります。
それは『MT-Medic』です。
うまく手順をまとめている方がいるので引用します。
mt-medicをダウンロード→解凍
↓
解凍後出てきたmt-medicファイルをエディタで開いて下記部分を修正
↓
my $ADMIN_PASSWORD = "パスワード";
my $INFO_PASSWORD = "パスワード";
↓
FTPでサーバにUP
※mt.cgiと同じディレクトリ内、パーミッションは755もしくは700
↓
mt-medic.cgiにアクセス
↓
ログインした画面内にある「Authors」をクリック
↓
さっき設定したパスワード(ADMINの方)でログイン
↓
該当する個所の「edit」をクリック
↓
変更したい個所を修正し「SAVE」
↓
ログアウト
↓
念のためFTPで「mt-medic.cgi」ファイルを削除
↓
MTのログイン画面で普通にログインできるはず♪
伊勢志摩より・・・laugh: MTにログインできなくなった!
MT-Medicでも上手くいかないのはDBのせいかも
私の場合も次の罠にかかりました。
指示のとおり、「Authors」をクリックしても一覧がでていません。
新しくアカウントを作ろうとすると、
Invalid author id '0' at hoge/public_html/mt/mt-medic.cgi line 746.
と出てしまってどうにもなりません。
「IDがないよ」ってことなので、どうやらDBファイルが読めなくなっているようです。
過去のコメントのURL欄をクリックするなど、DBファイルを読む動作を試してみると、確かに動きません。
DBがなくなったかもしれないので、DB格納フォルダを確認しました。
(初期設定から変更していないの場合「./db」です。忘れた場合はmt.cfgを見ましょう。)
とりあえずなくなってはいなかったので、壊れたか、べつの原因です。
MT-Medicの本家ページでも同じような相談が乗っていますね。
この回答が役に立ちました。
16. The Invalid author id ‘0’ at mt-medic.cgi line 746 error means that MT-Medic couldn’t correctly create the user. This usually means that your database is missing, misconfigured or corrupted.
If you’re using DB_Berkeley, make sure that your configuration points to the correct directory and that the directory contains the Author tables (author.db, etc.) along with the other tables. If they’re there, they are either corrupted or maybe you host changed the version of DB_Berkeley. Try the MT-Forum for a solution.
MTで外部データベースを使わない場合は『Berkeley DB』になっています。
このBerkeley DBを使用している場合でサーバ移行をしたときは、前と今とではインストールされているBerkeley DBのバージョンが異なり、このような症状がでるとのことです。
解決方法はDBファイルのアップデートです。
DBファイルのアップデート
公式マニュアルにも書いてあります。マニュアルは「Movable Type User Manual: TROUBLESHOOTING」の下記部分です。
・I changed hosts, and now I can't log in to Movable Type.
$ cd <db_dir>
$ db_upgrade *.db *.idx
しかし、私の場合、次のように「ファイルの種類が認識できない」と出てしまったので更に作業を進めます。
db_upgrade: author.db: unrecognized file type
db_upgrade: DB->upgrade: author.db: Invalid argument
が、めんどくさいので、パッチを探したところありました。
・Individual Page : サーバー移行でMTにログインできなくなったときの対処方法
感謝しつつ、実行した所、成功しました。
いままでの作業はtelnetを使わないとできないので、telnetが利用できないサーバーの方は、telnet.cgiを使えば代用できます。(ただし自己責任です)
それでもダメな場合は再インストール
自分の場合はここで上手くきましたが、「author id '0' 」で上記作業をしてもダメな場合…。また、「./db」などのDBディレクトリ自体消えてしまっている場合、このような方法で復旧させることができます。
・bricklife.weblog.*: HTML から weblog を復旧する方法
こちらはDBが消えてしまった場合や、本当に壊れていた場合に使える方法ですね。
Movable Typeが静的HTML吐き出しになっているからこそ使える技です。
感想
mt-medic.cgiで「author id '0' 」が出ると嘆いている方は、DBが壊れているか、私と同じようにBerkeley DBのバージョン変更により読めなくなったか、のどちらかでしょう。
しかし、DBのバージョンアップとは…自分でサーバを変えたのではないので、なかなか気が付きませんでした。
少し前にレンタルサーバからの「バージョンアップのお知らせ」があったのをいまさら、発見…いやはや。
telnetもセキュアになっていてアクセスできなかったり、ひや汗ものでした。minicpressは無事修復です。