2018年8月現在、レンタルサーバはさくらのレンタルサーバ スタンダードを利用しています。
さくらインターネットはレンタルサーバー界では老舗で有名だったこと、そして月額料金の安さから13年以上ずっと使っているのですが、先日からWordPressで構築したサイトが急に、頻繁に「500 Internal Server Error」を出すようになってしまいました。
今まで見た事のないエラーだったので焦って原因を探っていると、そのサイトだけではなく、同じレンタルサーバ内で複数運営している他のWordPressのサイトも同じような状態になっていました。
全く思い当たる事が無かったので、もしかしてサーバ側で何か問題が起きているのではないかと思い、電話でさくらインターネットのサポートに問い合わせてみました。
その日はラッキーな事に朝いちで電話をしたらすぐにサポートに繋がりました。
結果、今すぐ解決、という状態には至らなかったのですが、今できる対策と、今後の対策方法を練る事が出来たので、同じような症状で戸惑っている方の参考になれば。
さくらレンタルサーバで500エラーが頻発する症状
ある日から、さくらのレンタルサーバで運営しているWordPressのサイトで頻繁に「500 Internal Server Error」が出るようになりました。
「500 Internal Server Error」が出るのは以下の状態の時です。
・管理画面にログインしようとした時
・管理画面で別ページに移動しようとした時
・管理画面内で更新をした時
また、常にエラーが出るわけではありませんが、エラーがたまに出る時は、管理画面内も非常に重くなります。
また、そのサイトだけではなく同じレンタルサーバ内で複数運営しているWordPressのサイトも同じような状態になっていました。
500 Internal Server Errorとは?
「500 Internal Server Error」はサーバー内部で起きたエラーです。
何らかの理由でプログラムの処理結果を返すことができない場合にこの画面が表示されます。
考えられる原因は以下のように、色々あるようです。
・サーバーのメモリ上限オーバー
・htaccess の設定ミス
・PHP の記述ミス
・アクセス急増などでサーバーへの負荷が大きくなっている
500 Internal Server Errorの原因は?
今回このような症状が現れるようになった前日は普通にブログを更新しただけです。
何かプラグインなどを新規に入れたりカスタマイズをしたりという事は無いので、設定ミスなどではないと考えましたがさっぱり原因がわかりません。。
さくらに500エラーの原因を問い合わせ
しかしその前にもしかしてサーバ側で何か問題が起きているのでは?もしそうなら自分で色々調べる時間が無駄になるかもと、まずはさくらのレンタルサーバのサポートで「メンテナンス・障害情報」をチェックしました。
しかし該当する情報はありませんでした。
そうこうするうちに電話サポートの開始時刻になったのでとりあえず電話してみる事に。その日はラッキーな事に朝いちだったからかすぐにサポートに繋がりました。
状態を説明すると「これといった原因特定は難しい」と前置きがあったものの、状況を一緒に確認してくれました。
さくらのコントロールパネルからリソース情報確認
まず、さくらのコントロールパネルの左サイドバーから「リソース情報」を見てくださいと言われたのでクリック。
すると、問い合わせ当日に503エラーの発生回数の増加が確認されました。
503エラーとは、一時的にウェブアクセスが集中しているCGIプログラムが誤作動を起こしているアクセス転送量が多い場合などで表示されるエラーだそうです。
でも、一日に28回ぐらいならそれほどひどくもない(わりとある)の事でした。
リソース情報では他にも色んなデータが見れますが、8/10あたりからCPU使用時間、転送量、PVなどが増えているのがわかりました。
何か思い当たる事は無いですか?とサポートに聞かれたのですが、ばっちり思い当たりました(汗)
エラーが多発するようになった起点の日は、あるブログをWordPressに移転し公開したタイミングです。
この事から今回の「500 Internal Server Error」多発の原因は、アクセス急増などでサーバーへの負荷が大きくなっているからではないかとの結論に至りました。
500 Internal Server Errorの解決方法は?
アクセス増によるサーバーへの負荷の大が原因となると、レンタルサーバーのプラン変更や、よりスペックの高いサーバーへの移転などで解決するしか方法はありません。
ディスク容量もデータベース容量もまだまだ余裕があるのですが、それとこれとは別なんですね。。
いくつか方法を考えてみました。
さくらのレンタルサーバのプランのアップグレード
最初に検討したのはさくらサーバー内でのアップグレードです。
2018年8月現在はさくらのレンタルサーバ スタンダードを利用していますが、プレミアムへ変更するという案です。
しかしその場合、運用コストが月額515円→月額1,543円と約3倍になってしまいます。
そのコストであれば、現在1つのサーバで運用している複数のドメインを丸ごと移すと考えると、またしても同様のエラーが出ないとは限らないと思いました。
また、プランのアップグレードと言っても、1度現行プランを解約し新規でプレミアムプランを契約し、データ移行、WordPressなどの再設定なども全部最初から自分で行わなくてはなりません。
エラーの再発の可能性を考えるとかなりリスキーでは無いかと思いました。
さくらのレンタルサーバのスタンダードをもう1つ契約
次に検討したのは、今借りているさくらのレンタルサーバ スタンダードをもう1つ契約し、エラーの原因と思われるアクセスの多いブログだけそちらに引っ越すという方法。
その場合、運用コストが月額515円x2個で月額1,030円と2倍になります。
しかも2018年4月からさくらのレンタルサーバは新構成サーバで高速化されているので、対策としてはこれが一番簡単かと思ったのですが、そのアクセスの多いブログは独自ドメインの「サブドメイン」で運営しているブログな事に気付きました。
しかもその独自ドメインの「サブドメイン」で運営しているブログは全部で4つあります。
つまり、引っ越しするには独自ドメイン(静的サイト)と関連するサブドメイン4つ(WordPressサイト)ごと移転しなければなりません。
すると、また同じようなエラーが再発する可能性が否めません。
他社のレンタルサーバへの移転
次に考えたのは、より高速で安定性の高いレンタルサーバへの移転です。
ちょうど10月が、年間払いしたさくらのレンタルサーバの更新時期なので、それが一番現実的かなと考えています。
エックスサーバーとミックスホストで検討しましたが、今はほぼエックスサーバで固まっています。
決め手はユーザーの多さとその評判の高さとコスパ。
しかも今新規でサーバーを契約すると独自ドメインを1つプレゼントしてくれるんです。
しかもしかも、今回契約のサーバーを利用している間は、ドメインの更新費も無料なんです。
ドメインの移管でもOKなら、かなりお得です!
他、現状ですぐ出来る500エラーの解決方法は?
最終的にはよりスペックの高いサーバへの移転しか解決方法が無いのですが、今すぐ引っ越ししてハイ、明日には解決!というわけにはいきません。
引っ越し前に一度SSLを解除しなければとか、けっこう大変そうです。。
二度手間でも、また一回ローカル環境に戻してから引っ越した方が良いのかとか、今、以下にアクセスに影響なく引越しできるか調べていますが、今日明日すぐには出来なそうです。。
そこで、今の現状で何が出来るか調べてみました。
さくらのコントロールパネルからエラーログを確認
さくらのコントロールパネルの左サイドバーから「アクセスログの設定」をクリックします。
「エラーログ」をクリックします。
すると、エラーの内容がずらっと表示されました。
エラーがほとんどない時間もあるのですが、ある時は頻発しています。
しかもそのほとんどが[cgi:error]となっています。
さくらのコントロールパネルからアクセス解析を確認
また、同じ「アクセスログの設定」から「アクセス解析」をクリックします。
すると、アクセスの多いサイトなどが見れますが、その中に「wordpress-popular-posts」という文字が多数みられました。
もしかしてWordPressのプラグイン「WordPress Popular Posts」が問題に?と思って検索すると、どうも今回の場合はこれも影響があるようです。
以下はエックスサーバーのサポート情報からの引用です。
WordPressのプラグイン「WordPress Popular Posts」をご利用のサイトにおいて、
バージョン「4.0.0」での仕様変更以降、「コンテンツ表示速度の低下」や
「サーバーへの過負荷」が発生するケースを多数確認しております。■コンテンツ表示速度の低下について
多数のアクセスが発生した際に、データベースの処理が非常に多くなり、
コンテンツが表示されるまでに通常よりも長い時間がかかる場合があります。
また、サーバーの負荷を軽減する設定方法も掲載されていたので引用します。
■推奨設定について
当サービスでは、コンテンツ表示速度の向上や、
サーバーに対する負荷の軽減が見込める以下の設定を推奨いたします。【WPPキャッシュ期限ポリシー】 ・・・「キャッシュする」を選択
【キャッシュ更新間隔】・・・・・・・「1時間」以上を指定
【データサンプリング】・・・・・・・「有効」を選択以上の項目は、いずれもWordPressの管理ページ(ダッシュボード)にログインし、
「設定」→「WordPress Popular Posts」にある「ツール」にて
設定することができます。
もちろん対処しておきました。
そしてとりあえず、さくらレンタルサーバで運用している間はアクセスの多いサイトからはこのプラグイン「WordPress Popular Posts」を停止しておきました。
また、稼働していないプラグインも全て停止しました。
早くサーバを移転しなければ!