意味不明・・・。カズヤ(@kazumiso_s)です。
先日からワードプレスの管理画面へログインしようとしても、セッションがすぐに切れたと言われ、またログインへ戻ってしまい何も出来ない状況が発生。
たまにログインできたかと思ったらまたすぐにセッションが切れてログインを促されて何も出来ない。
ただログインを繰り返すだけ。
管理画面のログインページを開く→ログインする→セッションが切れる→ログインする→セッションが切れる→ログインする→セッション切れる→俺もキレる。
うあ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛
最近はワードプレスになーんも手を加えていないんですよ。
プラグインを更新したり追加したり。手動で各種ファイルを修正したり。
ただただ記事を投稿していたくらい。
なのになんで?心当たりがまったくない・・・。
とまぁ、色々よく分からない状況なんですが色々試した結果、直ったので試したことをまとめ。
ちなみに、アイキャッチには何も意味もありません。
リダイレクトしまくってイラついていると思うので可愛い女の子を見て落ち着いてください。
WordPressで管理画面のセッションが切れまくって何度もログイン画面へリダイレクトする時に行ったこと。
まずは対処方法をググってみる・・・。
いや、待て。俺は何もしていない。
サーバー側に問題があるはずだ。と横着して使用しているレンタルサーバーの「エックスサーバー」に問い合わせ。
ぴあろ:ワードプレスの管理画面のセッションが切れまくって開きません。サーバーおかしくない?
エックスサーバー:弊社にて調査を行いましたところ、サーバー障害等は発生しておらず(ry
まぁそうですよね。仕方がなくググる。
タイムゾーンをUTC+9に変える
管理画面の設定→一般にある「タイムゾーン」を「東京からUTC+9」に変更。
っていう記事がたくさんあったので試してみる。
時刻がずれているとセッションが切れたことになりますからね。
管理画面セッションが切れまくる中、何十回もリダイレクトと格闘してやっとの思いで更新。
・・・
ダメでした。
サーバーにターミナルでログインしてサーバー日付にズレがあるのではと疑いましたが問題なかった。
次。
WordPress アドレスとサイトアドレス
管理画面の一般にある「WordPress アドレス (URL)」と「サイトアドレス (URL)」。
これが同じでないとダメみたいな記事もいくつか見つかりました。
確認してみると同じだったのでスルー。
リダイレクトどころかそもそも管理画面が開かねー!!!って方はwp-config.phpに以下を記述してください。
それぞれ値の指定がファイルから行えるのでログインしなくても設定可能です。
ドメイン部はご自身のものに直してくださいね。
//Wordpressのアドレス(URL)
define('WP_SITEURL','http://hogehoge.com');
//サイトのアドレス(URL)
define('WP_HOME', 'http://hogehoge.com');
クッキーなどブラウザ側の設定をクリア
ブラウザに保存されているキャッシュやクッキーを消す。
という手段も多く見受けられました。
あまり消したくないのですが仕方ありません。
- Chrome:削除 → 変わらず。
- FF:削除 → 変わらず。
- Safari:削除 → 変わらず。
- Safari(iPhone):削除 → 変わらず。
- IE:めんどいからやってない。
ダメでした。
次!
プラグインの停止
何か問題あればプラグインの停止。
王道ですね。
でもプラグインの更新していないからスルー。
というわけにも行かないので、管理画面から停止!
特にキャッシュ系プラグインはやはり優先的に停止していきます。
ってセッション切れるから停止もできねー!!
FTPでwp-content/pluginsを開き、各ディレクトリを一つずつリネームしていくこと。
念のため、事前にバックアップを取りましょう。
例):
head-cleaner
↓
_head-cleaner
リネーム→管理画面開く→リダイレクト→リネーム→管理画面開く→リダイレクト・・・
ほんとどリネームしたけどやっぱりダメ!
つぎつぎー!
ワードプレスのデバッグ・ログファイル確認
致命的なエラーがあってリダイレクトしているのか?
と思い、プログラムのエラー情報を確認することに。
wp-config.phpにある以下の変数の値をtrueにすると画面上にエラー内容を出力してくれます。
define('WP_DEBUG', true);
これを設定すると管理画面だけではなく公開している記事ページなどにも影響するため、閲覧ユーザーがいたらエラー内容が見えてしまいます。
が、仕方ありません。
trueにして保存して画面開いてエラー内容を出したらすぐにfalseに戻して保存します。
表示されたエラー内容を見ると・・・WARNINGはありますがその他致命的ものはありませんでした。
そりゃぁ何も修正してないからね・・・。正常に動いていた時と同じはずです。
以下のログファイルにはこれといって致命的なものは出力されていなかった。
wp-content/debug.log
Developer ToolsでHTTPステータスの確認
ChromeなどでF12を押すとDeveloper Toolsが開きます。
これで管理画面へログインした際のNetworkのリクエストを確認。
リダイレクトした時のステータスを見ると302 (Moved Temporarily) が発生してリダイレクトしていることが判明。
えー、その302が出た時のキャプチャ保存していなかったので・・・例として正常時のキャプチャを。
yahooのページを開いた時に「www.yahoo.co.jp」というリクエストに対してHeader情報を見ると「200 OK」となっています。
200というのは正常に開かれたコードを示しています。
私の場合はここが302 (Moved Temporarily) となっていて黄色い玉が付いていました。
302はアクセスしたURLが一時的に移動となったことで今開いているURLへリダイレクトしましたよっていうステータスになります。
でも・・・管理画面のURLなんて変えていないから移動したもなにもない。
が、とりあえず解決の糸口が見えた。
SSL化したことでURLが変わったことが原因か?
昨年末にノリで当ブログをSSL化しました。
つまり管理画面へのログインURLが変わったことになります。
http://applina.jp/・・・ → https://applina.jp/・・・
半年以上経過しておりその間、特に問題はなかったのですが302となるとこれしか疑いようがありません。
とりあえずググる!ググる!
で、どうやって辿り着いたかは忘れましたが、以下のサイトを見てみるとドメインを引っ越した際の設定内容がありました。
WordPressの引越しに役立つテクニック
WordPressを新しいドメイン(サブドメイン)に移動させる場合は、ファイルやデータベースを移動する前に、「wp-config.php」に下記の設定をします。
define(‘RELOCATE’,true);
この設定をした後、FTPとデータベースを移動し、新しいドメインでWordPressにログインします。その後「設定」の「一般設定」で「WordPressのアドレス」が新しいものに変化したかどうか確認してください。確認後、この設定は削除します。
この方法はデータベースを手作業で修正する必要がなくなります。
SSL化したことでドメインが変わったので引っ越しとはちょっと違うのかなって思ったのですが、とりあえず試してみること。
・・・
うん。直った。
マジでありがとうございます!!!!!
でも、原因は分かりません。なぜ半年経った今、SSL化したことによる問題が出てきたのか。
そもそも本当にSSL化が問題だったのかは分かりませんが・・・。
本当に直って良かった。
ワードプレスのWikiにも載っていましたね。
define(‘RELOCATE’,true);を設定して管理画面ログイン後は、wp-config.phpから必ず削除しましょう。
セキュリティ的にかなり危ない状況となるそうです。
最後に
あまりの急な出来事でリダイレクトに苦しみもうブログ辞めようかと思うくらいイラついた(;^ω^)
しかも仕事に行く前に発覚したので業務中はモヤモヤしながら仕事することに・・・。
こういう日に限って遅くまで残業って仕打ちにもあいましたが、なにはともあれ直った良かったです。
こうして無事に記事を書くことができたので。
同様に管理画面のリダイレクト地獄でお悩み方、RELOCATEの設定を是非お試し下さい。
プラグインの停止やキャッシュクリアの前に試す価値ありです!
最後にもう一枚、癒しの可愛い女の子を。しかも二人です。
不測の事態の時ほど落ち着いて冷静に対応しましょう。
私は取り乱しましたが。