解決!さくらのwordpressで500エラー多発の原因

Posted by: admin  :  Category: レンタルサーバー

結論だけ知りたい人へ

wp-login.phpへの大量アクセスが原因だったから、.htaccessで自分のIP以外をアクセス制限したら解決したよ!

ぐだぐだっとした詳細は以下

ある日、WordPressを更新しようと思ったら、500 internal server errorが頻発…
管理画面で移動しようとする度に白い画面にinternal server errorってなる。
さくらインターネットのよくある質問によると、 「 CGIまたはPHPプログラムの設置方法 」 や「パーミッション設定項目等の動作条件に誤り 」 があると出る場合があるらしい。
でも、なんか違う。誤りがあるなら毎回エラーになるはずなのに、エラーが出るのは2回に1回くらい。
なんだか、負荷に耐えられずという感じ。

そこで調べてみたら、ちょっと前にメンテナンスで、新サーバへの移設を行ったみたい。

さくらレンタルサーバーのバージョンアップで500 Internal Server Errorが出た場合の対策 | PLUS

↑こちらを見て、PHPのバージョンをアップしてみたけど変化無し。

ついでにWordPressも最新にバージョンアップするも、これも変化無し。

さくらレンタルサーバーでWordPressで500エラー(503もね)になる話。(途中経過〜

↑こちらを見るに、メモリの使用量オーバーで500エラーになっちゃう人がけっこういるみたい。
確かにWordPressを15個も同じサーバーに突っ込んでるけど、それほどアクセス無いんだよね…

さくらのコンパネから、リソース情報を見てみる。CPU使用時間っていうのが6時間を超えているだと…
よくわからないけど、明らかにおかしい。

不要なプラグインを停止、削除。キャッシュ系のプラグインを入れてみたりもしたけど、変化無し。

というか、一番アクセスあるWPいじって対処しようとしてたけど、15個もWP入れてるんだから、どのWPが原因かわからなくね?

アクセスログの設定から、エラーログも見てみる。そこで見つけた「wp-login.php」の文字。
あ、こりゃアタックされてる!ブルートフォースアタックや!

WordPressがハッカーの標的にされ、ロリポップで8千件以上も改ざん被害が出たのは記憶に新しいです。

当サイトもその時に、セキュリティを強化していました。主要ファイルのパーミッションを変更したり、ログインを制限するプラグインを入れたり、ユーザー名をadmin以外にしたり。
そのおかげか、サイト改ざんはまぬがれていましたが、アタックされることによる負荷までは考えていませんでした。

まあ、ブルートフォースアタックだけでなく、スパム的なクローラーによるアクセスが多いのかもしれないと思い、とりあえずアクセスログを残す設定に変更。

アクセスログの設定

そして0時まで待ちます。

アクセス解析を見てみると…

アクセス解析

wp-login.phpへ、59,927アクセス!
多すぎる!怖すぎる!

アクセス解析の画面では、どのサイトのwp-login.phpか解りません。でも、ホスト名の情報を残す設定にしたから、どこかで見れるはず…
下にログファイルの位置が書いてあった。FTPでアクセスログをダウンロードして確認。
すると、アタックされてたドメインは複数。

Login LockDownすり抜けてるのかな…IPを変えてガンガンくるのもある模様。

ということで、wp-login.phpのセキュリティを強化することに。
突破させない」じゃなくて、「アクセスさせない」に目的を変更。

IPによるアクセス制限が確実です。
このIPは来ちゃ駄目!っていうのがブラックリスト。
このIPだけは来てもいいよ!っていうのがホワイトリスト。
ホワイトリストで制限するのが、手間も無く確実。

.htaccessを使います。
FTPで見ると、wp-login.phpのあるディレクトリに、すでに.htaccessがあると思います。
それをダウンロードして、追記してアップロードしてください。

レンタルサーバーとDynamicDNSのアイネットディー

自分のIPやドメイン(ホスト名)は、ここでわかります。
アクセス情報【使用中のIPアドレス確認】

ノマドワーカーだから、IPいろいろ変わるんだよね。という方は、ログインURL(アドレス)を変更するという方法もあります。
「Stealth Login Page」というプラグインの過去バージョン(3.0)で可能みたい。
4.0以降のバージョンでは、パスワードをもう一個増やすという別物になった模様。

前のバージョンの Stealth Login Page をダウンロードする方法

wp-login.phpへのアクセスを制限した結果

リソース情報

めでたく管理画面もサクサクになりました。
めんどくさがらずに最初から.htaccessで守っておけばよかった…

なぜメモリを食っちゃうのかは、人それぞれだと思います。人気サイトの場合は、普通にアクセスが多いからでしょうし。
不人気サイトの人たちの参考になれば幸いです。(´・д・`)
とにかく、さくらのアクセスログ、残す設定にして一回見てみてもいいかも。

この記事に関連する投稿:

  1. ハッスルサーバーにWordPress設置【複数インストールも】
  2. ホームページが消える?iDiskの代わりのレンタルサーバー。
  3. WordPressが白紙に!表示が真っ白になったら…
  4. ハッスルサーバー10日間無料申込手順
  5. ハッスルサーバーを評価するぞ。【注意点と評判】

Comments are closed.