https://thejuraku.com/pc/?p=6557

WordPressのサイトにアクセスすると勝手にURL転送される

最近忙しく更新が滞っている状態ですが、毎日のチェックだけは行っています。

チェックは基本的にサイトにアクセスできるか?

アクセスした際におかしい挙動をしていないか?

など簡単なものからちょっと時間があるときはオンラインセキュリティースキャナーでチェック等いろいろです。

さて、数ヶ月前のの9月28日15時頃にチェックしたときは問題なくアクセスできました。それが、同日午後17時頃にアクセスしたらいきなりhttp error 500という意味不明な状態に。

こういうときに原因を調査せずすぐ直してしまう方法といえばWordPressサイトの場合は全てのファイルとデータベースをバックアップから復元するという方法。これが一番手っ取り早いです。

サイトの挙動がおかしいときにするべきこと

ここでは基本的にWordPressにてサイトが構築されていることを前提として話しますが、WordPressや他のCMS(コンテンツ・マネジメント・システム)に限らずサイトの挙動がおかしいときはまず、

  1. プラグイン、コアファイルの更新をしたか?
  2. 記事の更新・新規投稿等をしたか?
  3. テーマファイル

と上記を疑うべきです。

何が問題になるかは一つ一つ調べてみれば必ず解決策があります。

1.1 プラグイン、コアファイルの更新をしたか?

プラグインやコアファイルを更新した場合、稀にHTTP500エラーを起こしたりする事がある。

プラグインを更新する前まで問題なくサイトが稼働していたのに動かなくなった場合、プラグインが原因の場合が多い。

但し、プラグインを更新する前にワードプレス自体を更新していた場合ワードプレスとプラグインが問題となる。

理由としてワードプレスが新しいphpバージョンを使い出し古いphpとの互換性を排除したからになる。

もちろんワードプレス側も前々から新しいphpバージョンに移行すると告知はしているのでプラグインの作者が怠慢なだけなのであるが。

基本的にそういう問題を起こしかねないプラグインは削除するか、自分で中のphpなりを改変して現環境に合わせるしかないが、できない場合はこのましくはないがその問題になる前のバージョンを使うしかない。

また、古いphpやsqlを使っている場合、ワードプレスの動作が遅くなったり、セキュリティ上懸念されることがあるので気をつけたほうが良い。

1.2 記事の更新・新規投稿等をしたか?

結構前から運用していて記事だけの移行を新しいワードプレスにしていないときにhttp500、WSOD、記事だけ白紙などが起こることがあります。

原因は不明ですが、投稿直後なので投稿後にチェックするクセがついている場合は気づけますが、まじで謎です。

1.2.1 回避方法は様々

  1. コードが記事内に説明として記載されている場合は一旦コードを削除してみる。削除してみて問題なければコードをpngなどにするのも手。
  2. コードをそのまま使いたい場合は、記事に適当に改行を入れてみる。これで試すとうまくいくときもある。
  3. コードを記載していなくてもなるときはなるので適当に改行でトライアンドエラーで試す。
  4. テーマファイルを違うものにしてみる。これで解決しちゃったらテーマファイルが原因。
  5. ただし、一つのテーマファイルだけでなく違うテーマファイルでも試してみると良い。できればデフォルトのtwentyなんとかで。

どれを試してもだめなら新しくワードプレスの環境を構築し、記事(画像含む)だけをそこに移動。

1.3 テーマファイル

テーマファイルが問題かはすぐわかる。それは、デフォルトのテーマファイルにとりあえず変えてみれば良い。

もしそれで問題なく問題が解決すればテーマファイルが原因と判る。

1.3.1 原因がわかるが原因の理由が解らない

さて、Wordpress 5.0.0が出て一夜明けたとき、サイトにアップデートも何もしていないのにいきなりWSOD(White Screen Of Death)が表示されるようになった。

ログを調べてみると始まりの時刻は大体朝の0900頃。但し、Google Analyticsをみても一日中問題なくアクセスが来ているとみえる。

大体のところWSODが表示されるのはテーマファイルの不都合が原因かプラグインファイルにてヘッダーを書き換えたりしたときに起こったりする。

執筆時の当サイトではSimplicityという有志が作ったテーマファイルを使っている。Wordpressに興味がある、Wordpressにてサイトを運用していれば同じような見栄えのサイトを見たことがあると思う。

話をもとに戻すと今回WSODが起こったのはテーマファイルの破損である。破損原因は不明だが、WSODが起こった日時のあたりを調べてみるとログに大量にテーマファイルが原因となるような事が記載されている。

ここで一つ誤解を招くかもしれないので行っておくとSimplicityというテーマファイルは非常に優れたテーマファイルである。また、本来この様な原因を起こす事は問題なく動作しているテーマファイルには起こらないので、サーバー側にていじくられたかサイトが攻撃されたかになる。

今回は問題を起こしている箇所がテーマファイルの一部ファイルであることが確認されたがなぜこのようなことが起こったかは不明のままだ。

一つ言えることがあるとすれば使用していたsimplicityのテーマファイルのバージョンが古かったのでこの際新しいバージョンに置き換えたら問題なく動作した。

最後に

いろいろとやることはあるが、問題はすべてログファイルに記載されているからそこからたどるのが良いでしょう。

ログファイルはドキュメントルートに有ったりしますが他にもテーマファイルの中とかにもあったりします。サーバーログはサーバーへログインしてみればよいのですが、それ以外の場合はphpファイルが置かれているディレクトリーに出力されている事が多々ありますのでドキュメントルートに記載されているログで問題が解決できない場合は色々とディレクトリーを下って探すのが手です。

あ、気づきましたか?記事が少しでも役に立ったと思ったらシェアでもコメントでもしてみてください^^;
Sponsored Links
このページの短いURL: https://thejuraku.com/pc/?p=6557