WordPressで管理画面にログインできなくなった場合の対策

管理画面にすらログインできない

久しぶりに「設定」→「一般」を見ていたら、ついつい油断してやらかしてしまいました。
サイトアドレスを変えてしまったのです。

アドレスをちょっといじって変更をクリックしたが最後、全てにアクセスできなくなってしまいました。

上下とも同じアドレスにでもしてしまったのか、リダイレクトループになってしまっている様子でした。
ログインできないどころか、ログイン画面すら出せない状況です。

なんとか復帰することができたので、手順を忘れないように備忘録として残しておきます。
同じ状況になったらこの記事も読めないという事実は内緒です。

url

↑の状態に戻さねばなりません。

設定ファイルなどを変更するため、不具合が生じる場合も考えられます。
あくまでも参考程度に自己責任でお願いいたします。
対処方法

やらなければならないことは「サイトアドレスを正しいものに戻す」ことです。
2種類の方法をご紹介します。

・phpMyAdmin などでデータベースのアドレスを直接編集する
・wp-config.php に記述を加えてアドレスを上書きする
phpMyAdmin から直接アドレスを編集する

phpMyAdminにログインできる状況であればログインし、画面左から「wp_options」を探します。

「wp_options」はデフォルトのテーブル名ですので、環境によって接頭は「wp_」では無いかもしれません。optionsを頼りに探してください。

options

「wp_options」があれば、そこをクリックします。

画面の右側に「wp_options」の中身が表示されますので、その中のsiteurlの項目を探します。
ここを正しいURLに編集して戻すのが一番手っ取り早く確実な方法です。

「siteurl」の項目の編集をクリックして下さい。

options2

編集を選ぶとURLが編集できるようになるので、正しいURLを入れて実行で保存します。

options3

この場合の正しいURLとはWordPressを設置してある場所です。
「wp-admin」「wp-content」「wp-includes」のフォルダがある場所です。

私の場合、WordPressが置かれているのは「https://mndangler.net/wp」でしたのでこのように編集しました。
wpの部分はお名前.comの特有のフォルダ構造なので、普通はドメイン名までです。
末尾の「/」は付けないでください。

ログインできるか試します。
いつものログイン用URLが「○○/wp-admin」の方は「○○/wp-login.php」で試してみてください。

wp-config.php に記述を加える

phpMyAdminにログインできない場合はFTPを使います。

FFFTPなどのFTPクライアントを使い、WordPressのフォルダから「wp-config.php」をダウンロードします。
ダウンロードしたら念の為、コピーを作っておきます。

「wp-config.php」をテキストエディタで開き、一番下に下記のように追記します。

define( ‘WP_SITEURL’, ‘http://sample.net/wp’ );

右側の「http://sample.net/wp」の部分はご自身のWordPressの設置場所に書き換えてください

「wp-config.php」への記述は phpMyAdmin で書き換えたデータベースの siteurl の内容よりも優先されます。

またこの方法の場合、管理画面にログイン後「設定」→「一般」でサイトアドレスを見た時、URLの欄が灰色になっており変更ができなくなっています。書き換える必要も特にありませんので、同じミスが起きないようにそのままにしておくというのも1つの手かもしれません。

記入後はFTPで再びアップロードして「○○/wp-login.php」にアクセスし、ログイン可能か確かめてください。

ちなみに、

「define( ‘WP_SITEURL’, ‘http://sample.net/wp’ );」の代わりにこのように書く方法もあります。

define( ‘RELOCATE’, true );

こちらはWordPressの引っ越しをする時にも使える記述だそうです。
同じく記入後はFTPでアップロードしてログイン可能か確かめてください。

上記2つの方法でもダメだった場合

私の場合、上記の方法を試しても接続不可状態が続きました。

この場合、原因はクッキーかキャッシュ系プラグインにある可能性が高いようです。
私の場合はキャッシュが原因でした。

クッキーの消し方はお使いのブラウザにより異なるため割愛します。

まず、「DB Cache Reloaded Fix」というプラグインが怪しいと思いました。
そこで、キャッシュ系ファイルを一度削除してみることにしました。

FTPでアクセスして、私の「wp-content」フォルダの中にあった「DB Cache Reloaded Fix」関連のファイル「db.php」と「db-donfig.ini」、さらに「advanced-cache.php」と「object-cache.php」の4ファイルをダウンロードして保存しておき、サーバ上では削除してみました。

するとCSSの効いていないログイン画面が表示されました。

無事ログインできるかと思ったところ、今度はログイン画面で正しいパスワードを入れてもなぜかパスワードだけが消えるという現象に陥りました。

これも他のプラグインが悪さをしているに違いないと思い、一度全てのプラグインを停止することにしました。

簡単にプラグインを全て止める方法

プラグインを全て削除してしまうと後で面倒なので以下の方法を取りました。

FTPでアクセスし、「plugins」フォルダの名前を変更してしまいます。
例「plugins.escape」などなんでもOKです。

そして、新規フォルダ作成で「plugins」フォルダを新しく作ります。

これで空の「plugins」フォルダが作成されました。
読み込まれるプラグインが無い状態となり、全て止まったことになります。

この状態で、アクセスするたびに作成される「object-cache.php」を何度も削除しつつブラウザからログイン画面を呼び出すと、やっとCSSの効いた状態でのログイン画面が表示されました。

ログインにも成功しました。
次にプラグインを元の状態に戻します。

私が使用していたキャッシュ関連のプラグインは、

「DB Cache Reloaded Fix」
「MO Cache」
「WP File Cache」
「Quick Cache」

この4つでしたが、「Quick Cache」を除いて残り3つはフォルダごと全削除しました。
キャッシュ系以外のプラグインはそのままでフォルダ名を元に戻しアクセスしたところ、無事ダッシュボードが表示されました。

なんとなくですが、「WP File Cache」が原因であったように思います。

この後、「DB Cache Reloaded Fix」「MO Cache」「WP File Cache」を改めて入れ直し復帰完了しました。

環境により復帰方法は異なるとは思いますが、私の場合の復帰までの経緯です。

コメント

 DISQUSコメントシステムとは?
DISQUSコメントシステムFacebook Twitter Google などのアカウントを使用してコメントを残すことができます。
また、それらを使いたくない場合でも メールアドレスのみ でコメントが可能で、その際のアドレスはもちろん非公開です。
YouTubeTweet などはURLを貼ると自動で埋め込み表示されますし、画像をアップすることもできます。
お気軽にコメント頂けると嬉しいです。

New Post



Random


CLOSE