1440秒で閉ざされるWordPressの扉の開け方

いつの間にか、WordPressからログアウトされている。
こんな状況に、よく出くわすようになった。
僕には、これまで、そんな経験はない。

これまでのクセでググった僕だが、その解決策は見つからない。
そうして、その原因と解決策を秒速で提示したのは、僕の専属編集者兼メカニックを自称するGeminiだった。

WordPressから自動でログアウトされる

僕は、これまで経験がなかったのだけれど、フェイマスなプロブレムだったらしく、検索すると、その解決策も含めてたくさんのものが釣り上がった。

「WordPressから自動でログアウトされる」異常が発生し続けますか?本記事で紹介するいずれかの手順を使用して、エラーを処理してください。

発生し続ける「WordPressから自動でログアウトされる」問題の処理方法(7つの方法)

手軽な解決法として提示されている、ブラウザのキャッシュとクッキーのクリア。
これを何度か試したけれど、状況は一ミリも改善しない。
もし、それで改善しなければ、サーバー側の問題かもしれませんと記事には記載してある。

そういえば、この問題が発生するようになったのは、シンレンタルサーバーへ移行してからだよね。
そのサーバー側に問題があるんだろうか?
こうなると、テック弱い系ブロガーとしては、お手上げだ。

Geminiをチャットで呼び起こすと、分析とアクションを、秒速で表示した。

Geminiによる原因と解決策

「気のせい」ではなく、サーバーの仕様や設定が変わったことによる「仕様」である可能性が高いです。

シン・レンタルサーバー(およびその母体のXserver系)は、パフォーマンスとセキュリティに厳格な傾向があり、前のサーバーよりもデフォルトのセッション維持時間が短く設定されているケースがよくあります。

主な原因と、十一さんが取れる対策をまとめました。

1. PHPの設定(session.gc_maxlifetime)の違い

これが最も技術的かつ一般的な原因です。

WordPressのログインセッションの一部はPHPのセッション機能に依存しています。

  • 何が起きているか:
    多くのサーバーでは、無操作状態でセッションを維持する時間(session.gc_maxlifetime)のデフォルトが 1440秒(24分) に設定されています。前のサーバーがこれを長め(数時間など)にカスタムしていた場合、シン・レンタルサーバーのデフォルト値(24分)に戻ったことで「早く切れる」と感じます。
  • 対策:
    シン・レンタルサーバーのコントロールパネル(サーバーパネル)から設定変更が可能です。
  1. サーバーパネルにログイン
  2. 「PHP環境設定」 > 「php.ini設定」 をクリック
  3. 「session.gc_maxlifetime」 の項目を探す
  4. 数値を増やす(例:86400 にすれば24時間になります)

2. 「ログイン状態を保存する」のチェック忘れ

移行時にブラウザのCookieがいったんリセットされたため、ログイン画面で毎回**「ログイン状態を保存する(Remember Me)」**にチェックを入れる習慣が抜けている、ということはありませんか?

  • 何が起きているか:
  • チェックなし: ブラウザを閉じると即ログアウト、またはデフォルトで48時間で切れやすくなります。
  • チェックあり: デフォルトで 14日間 維持されます。

3. IPアドレスの変動(セキュリティ機能)

シン・レンタルサーバーやXserver系は、セキュリティの一環としてIPアドレスの変動に敏感です。

  • 何が起きているか:
    もし十一さんがスマホのテザリングや、IPアドレスが頻繁に変わるWi-Fi環境で作業している場合、WordPressやサーバーのWAF(Webアプリケーションファイアウォール)が「セッションハイジャックの可能性がある」と判断し、安全のために強制ログアウトさせることがあります。

4. 解決策:コードで強制的に延ばす

いちいちサーバーパネルを触るのが面倒であれば、テーマの functions.php (または自作プラグイン)に以下のコードを追記することで、WordPress側のクッキー有効期限を強制的に延ばすことができます。

PHP

// ログイン保持期間を1年間にする(「ログイン状態を保存する」にチェック時)
add_filter( ‘auth_cookie_expiration’, function( $seconds, $user_id, $remember ) {
    if ( $remember ) {
        return 365 * 24 * 60 * 60; // 1年間
    }
    return $seconds;
}, 10, 3 );


ジェミナイの推測:

おそらく 1番(php.iniのデフォルト値) が原因ではないかと思います。

シン・レンタルサーバーは「高速化」を売りにしているため、メモリを食う不要なセッションは早めにガベージコレクション(掃除)したいという思想で運用されていることが多いからです。

一度、サーバーパネルの php.ini を覗いてみてください。1440 という数字があれば、それが犯人です

セッション維持時間が24分に設定されている

言われるがまま、サーバーパネルのphp.ini設定から「直接編集」を開いてみると、Geminiの指摘通り、セッション維持時間が、1440秒(24分)に設定されていた。



まさにそこです!その 1440 が犯人です。

その数字は「秒」を表しているので、計算すると:

$1440 \text{秒} \div 60 = \mathbf{24 \text{分}}$

つまり、ダッシュボードを開いていても、記事を書いていても、24分間サーバーとの通信(保存や画面遷移)がないと、セッションが「ゴミ(Garbage)」として回収(Collection)され、ログアウトさせられてしまいます。

推奨設定

これを、「1日(24時間)」 または 「1週間」 くらいに伸ばしてしまいましょう。

推奨値:

session.gc_maxlifetime = 86400

(これで 24時間 になります)

もっと長くしたい場合は:

session.gc_maxlifetime = 604800

(これで 7日間(1週間) になります)

手順

  1. その 1440 を 86400 (または任意の数値)に書き換える。
  2. 画面下の「設定する(確定する)」ボタンを押す。
  3. 重要: 設定変更後、一度ログアウトして再ログインすると新しい設定が確実に適用されます。

これを変えるだけで、あの「ちょっと席を外して戻ってきたらログアウト画面」というストレスから解放されるはずです!ぜひ書き換えてみてください。



僕は、とりあえず 86400(24時間)に設定変更した。
おかげで、現状は安定してる。

いくらTouch IDだからって、しょっちゅう指紋を読み取られるのも気持ちのいいものじゃないもんね。

Geminiとブログを書くようになって、良くなった点は2つある。
1つは、昨日のように、たわいもないトピックスが、広がりと深さを経て、思わぬところにたどり着くこと。

そして2つ目は、まさにコレ。
WordPressでブログをやっていくと、書くこと自体以外に立ち塞がるアレコレが多すぎる。
僕は書くことにおいては#WordPresserであるけれど、技術的には#WordPresserではない。
そうした障壁を、Geminiがちゃっちゃと取り除いてくれる。
自由なレイアウトで書くことの代償を、代わりに引き受けてくれるというか…

この自称専属編集者兼メカニックがいてくれる限り、WordPressで書ける自由さを、僕は享受し続けることができるのかもしれないね…

Buy Me a Coffee

コメントを残す