WordPress管理画面で勝手にログアウト事件を解決

ログイン直後『wordpress セッションの有効期限が切れています。前回行った操作の時点からまた続けるにはログインしてください。』の無限ループ。これをやっつけたときの作業メモをまとめます。

僕の場合、いろいろやりました結果、
①テーマを変更
②ログインURLを考える
③プラグイン「Advance Broken Link Checker」の撤去
で解決に至りました。

そもそもWordPressのログインURLは大丈夫?

通常、「example.com」のドメインであれば、WordPressのログイン先は
http://example.com/wp-login.php
と言われています。

世のブログサイト、URLの後に「/wp-login.php」をつけたら
だいたいがログイン画面に遷移します。

しかし、レンタルサーバーの管理画面からのログイン先(WordPressのダッシュボードへのリンク)は
http://example.com/wp-admin/
となっていました。

習って、これをログインURLにしました。

続いて、SSL。レンタルサーバーで無料SSL化したので
URLの頭は「https://」です。

なのに、レンタルサーバーの管理画面からWordPressにログインするURLは
「http://」と。。。「s」の記載がないです。

ので、同じくこれにあわせました。

あわせると、今のログイン先URLは、
http://ドメイン/wp-admin/
としています。

シンプルにいったんWordPressのデフォルトに戻そう


勝手にログアウトの無限ループは「テーマ」か「プラグイン」が原因かもです。
検証のため、WordPressをデフォルトに戻してみましょう。

  • プラグインをひとつひとつ、停止させて状況を確認します。
  • プラグインの挙動チェックが終われば、テーマを変更してみます。

注意:プラグインを停止しても、テーマを変更しても、投稿した記事に影響はありません。

僕の場合、バズ部さん謹製のテーマ「Xeory Base」(20200110現在。最新版Ver0.2.0)
これが勝手にログアウトする主原因の1つ目。テーマは古いバージョンに戻しました。 2つ目がプラグイン「Advance Broken Link Checker - Link Manager」です。速攻で外しました。 最後に、ログインURLを変えました。
これで今は安定稼働しています。

強制的にデフォルトに戻すには直接サーバーを触るしかない

WordPressの管理画面で何かするたびにログアウトする。
これでは、何の設定も変更もできません。

なので、強制的に「テーマ」と「プラグイン」を撤去します。
Webサーバーにアクセスして、フォルダごと、まるっと引っこ抜き、です。

サーバーにつなぐ情報を得る

まず、レンタルサーバー管理画面からWebサーバーにログインする情報を入手します。
ここでは、wpXspeedのレンタルサーバー管理画面で紹介します。

サーバー管理 > WordPress管理 > WordPress設定 > ドメイン > FTPアカウント設定

wpXspeedのレンタルサーバー管理画面

転送プロトコル:FTP
ホスト名:「FTPホスト名=(aa1234.wpx.ne.jp)」
ユーザー名:「ドメイン名=(sample.org)」
パスワード:「表示されるパス=(password)」

画面に表示されたものをメモします。パスワードは前後に出てきます。

FTPソフト「WinSCP」をインストール

WinSCPインストーラのダウンロードサイトに行きまして、「WinSCP」をインストールします。
これはサイト開発でよく使われます。Webサーバーに接続する超メジャー級の無料ソフトです。

なお、「WinSCP」の使い方はこちらに詳しいです。
Windowsだけで使える!WinSCPの使い方【初心者向け】

インストールできましたら、次。

WinSCPを使って「テーマ」を強制撤去

これで今使っている「テーマ」を強制的に撤去します。

WinSCPを起動後、先程のメモでサーバーにログインします。
WinSCPを起動して情報入力。

転送プロトコル:FTP
ホスト名:「FTPホスト名=(aa1234.wpx.ne.jp)」
ユーザー名:「ドメイン名=(sample.org)」
パスワード:「表示されるパス=(password)」

ログインできたら、WordPressのテーマがある場所に行きます。
WinSCPで階層を下がる。
サーバー側が赤枠。
階層的には「root」→「wp-content」→「themes」→「テーマ一覧」がそれです。
下の画像を参照。
テーマファイルのバックアップ

パソコンのディスクトップなどに任意のフォルダを作って、それぞれのテーマのフォルダごとドラッグ&ドロップします(サーバーにあるテーマファイルをバックアップするのと同意)。

それから、もともと入っているデフォルトテーマ「twentyseventeen等」があるか確認します。
テーマを削除すると、デフォルトテーマに自動的に切り替わりますので大事なポイントです。

デフォルトテーマの存在が確認できたら、WinSCPの画面(Webサーバー側)で使用中のテーマを選択。キーボードの「Delete」ボタンを押します。これで今使っているテーマが削除されます。

使っているテーマを削除すると、テーマが自動的に「twentyseventeen」などに変わっていると思います。

これでログインの検証をしてみます。
勝手にログアウトする問題が解決していたら、テーマが原因です。
これまで使っていたテーマは捨てましょう。

まだ問題が続くようでしたら、パソコンにコピーしたテーマをサーバーの元の階層に戻して、次へ。

プラグインを強制的に外す

続いて、プラグインを強制的に外します。
やり方はテーマフォルダと同じです。

プラグインのフォルダが管理されている場所はこちらです。
WinSCPでプラグインを削除する
階層的には「root」→「wp-content」→「plugins」→「プラグイン一覧」となります。

まるっと全部、ディスクトップの任意のフォルダにドラッグ&ドロップでコピーします(プラグインファイルのバックアップとなります)。

その後、FTP接続の画面上で、プラグインをひとつひとつ削除して検証します。
ひとつ削除したらログインしてみる(検証する)。これを繰り返します。問題となるプラグインを探します。

※プラグインの設定情報などは復活(有効化)させたら元通りになります。

Advance Broken Link Checker – Link Managerは勝手なログアウトの原因だった

記事内の外部リンク切れを自動的にチェックしてくれるプラグインですが、これが問題でした。
定期的に何かをしてくれる自動ツールです。

勝手にログアウトする瞬間をGoogleコンソールツールのタイムラインを眺めてましたところ、
読み込み時間にでとても気になる帯が発生しました。何も読み込んでないのに・・・。

で、突然ログアウトしました。

見ると、いずれも赤枠の「easy-broken-link-checker」が関係してます。
多分、いや、絶対そうなので、速攻で停止させました。

リンクチェック状況

原因は追求できてませんが、このプラグインを停止させたら、勝手にログアウトしなくなりました。
ので、多分これも関係してます。

【問題検証で勝手にログアウトする原因とした理由】
過去に3年間ほど、Xサーバーの無料サーバーでブログやWordPressなどのテストをしていました。SSLにはなっていません。何の問題もなく、安定稼働していました。今回、そのときの環境とまったく同じ構成でブログをたてたのですが、勝手ログアウト問題が発生しました。違いを考えると、バズ部さんのテーマアップデート更新(というか差し替え)をした程度です。プラグイン構成も同じです。
差分を考えると、バズ部さんのテーマアップデート更新(というか差し替え)、プラグインインストールで最新版が入った。SSL化した。
の3点です。最新版とプラグイン最新版の何かがぶつかったのだと推察します。
バズ部さんのテーマは安定稼働していた古い方を選び、「Advance Broken Link Checker」のプラグインは入れるべきではないです。

現在、勝手にログアウトすることもなく、ログイン時に再度ログインを迫られることもなく、まったくもって安定稼働しています(記事を投稿した翌日に思い出したので追記しました)。

それでもまだ勝手にログアウトするなら以下の対策

どれも多くのブログサイトで書かれている内容です。

・利用しているブラウザのcookieを削除する
chromeであれば 設定 > 閲覧履歴データの削除 > cookieと他のサイトデータ
参考:Chrome で Cookie の削除、有効化、管理を行う

・WordPress アドレスとサイトアドレスを同じにする
管理画面 > 設定 > 一般 > WordPressアドレス (URL)=サイトアドレス (URL)
WordPressアドレス (URL)はWordPressをインストールした階層のこと。
サイトアドレス (URL)はWEBで表示されるアドレスのこと。

・タイムゾーンをUTC+9に変える
管理画面 > 設定 > 一般 > タイムゾーン

ほか、ドメインの引っ越しで記事があります。
「wp-config.php」に下記の設定をしてからFTPとDBを引っ越しする

define(‘RELOCATE’,true);

この定義は「WordPressがどの階層にインストールしてるかを調べて、管理画面のWordPressアドレスに正しいURLを再設定」してくれるもの。記述は、引っ越し後に削除します。

引用:WordPressをもっと便利に!知って得するwp-config.phpファイルの設定いろいろ
WordPressの引越しに役立つテクニック より

検索キーワードの提案

これらの情報で解決とならない場合、以下の単語で検索もおすすめです。

キーワード
wordpress 勝手にログアウト
wordpress 管理画面 タイムアウト
wordpress セッション タイムアウト 時間
wordpress ssl セッションの有効期限が切れています。
セッションの有効期限が切れています 再度ログインを行なってください
wordpress セッションの有効期限が切れています。前回行った操作の時点からまた続けるにはログインしてください。

解決に至ることをお祈りします。

いつもありがとうございます。

コメントを残す