先月からwordpressの管理画面でエラーが頻発するようになりました(記事更新時やページ遷移時)。
エラー内容は、
「500 internal server error」
サーバーの内部で何らかのエラーが起きている様子。
503エラーであれば単純にアクセス過多によるエラーなので問題解決も容易なのですが、500エラーはちょっと調べたところ、
.htaccessの「 記述 」「 書式 」「 文字コード ・ 改行 コード 」 に問題がある
PHPに関する設定を [ php.ini ] にせず、[ .htaccess ] に 「 PHP_Flag 」 や 「 PHP_Value 」 などを記述している
CGI・PHPのパーミッション等、設定に誤りがある ( 705 または 755 に設定していない )
CGI・PHPプログラムが正しく動作していない
など、複数の原因がある様子…。
さくらサーバのサポートに初めて問い合わせてみる
500エラーの対応方法を調べて軽く試してみるも効果なしだったため、さくらサーバへ問い合わせてみることに。
4年以上使っていて初めての問い合わせです。
すると、以下の回答を得ました。
・CGIの過剰利用による許容量超過、メモリオーバーが頻発している
・同時に稼働するプログラム数や容量を抑制するなど負荷の軽減が必要
・おそらく上位プランへの変更では解決できない(本症状に関する閾値は非公開)
・この状態が続くとサーバ全体への負荷を考慮してさらに閾値を制限する可能性もあり
wordpressをいじる程度の知識しかない私は「????」状態…(笑)
CGI?メモリオーバー?
さくらサーバのコントロールパネルから確認したところ、ディスク使用料は10%とまだまだ余裕があり、1日の転送量(リソース情報から確認)も15GBと限度の80GBと比較してだいぶ余裕があります。
しかしその後ネットで調べてみたところ、各サーバ「メモリ容量」というものがあり、さくらのスタンダードプランは18GBあるそうです。
(ちなみにさくらの18GBというのは一人で使える容量ではなく、同じサーバを使っている他ユーザーとの共有でということだそう)
そして、さくらは現在使っているスタンダードからプレミアム⇒ビジネスとプランを上げてもこのメモリ容量は変わらず、さらに一人当たりどれくらいメモリ容量を使えるのかも非公開だそうです。
エラーログを確認してみる
その後、コントロールパネルの「アクセスログの設定」から「エラーログ」を確認できると知ってさっそく見てみることに。
ここにエラーメッセージが表示されているそうです。
すると、「cgi:error」が多発しているのが分かりました。
さらにIPアドレスの後ろに書かれた「End of script output before headers: index.php」というのは「CGIがヘッダを出力する前に終了した」という意味だそう。
なるほど、まったく分かりません。
500 internal server errorが解消されない日々
しかしとりあえずメモリオーバーによるエラーということは分かったので、メモリ消費量をおさえればエラーは解決するはず…!
その後、試したこととしては以下の通り。
プラグインを外せるだけ外してみる
画像圧縮
FFFTPでパーミッションの確認・変更
1ヶ月前に実施したサイト速度改善策をすべて元に戻してみる
htaccessの確認
PHPを最新の7.2からバージョンダウンしてみる
All in One SEO Pack、Crazy Bone、Favicon Rotatorの削除
結果、すべて解決には至らず…!
解決策:メモリ容量が4GBあるミックスホストへサーバ移転
最後の手段として残していた「サーバ移転」ですが…。
もう何をしても改善しないのでいよいよ検討段階に。
各サーバを比較してみたところ、以下の内容からミックスホストが第一候補に。
・クラウド型で一人あたりメモリを4GB使える(スタンダードプラン)
・上位プランへの変更でメモリの増量可(8GB→12GB→16GB)
・プラン変更に柔軟に対応(日割り計算でその日から変更可能)
現在利用しているさくらやXサーバは一人当たり使えるメモリ容量が不透明のため、ミックスホストのように明確に表示してもらえると非常に助かります。
また、仮に4GBで足りないときに上位プランへの変更が非常に楽にできるそう。
さくらサーバの場合、上位プランへの変更が他社サーバへの移転と同じくらいの手間がかかり、Xサーバは月単位でしかプラン変更に対応していません。
スタンダードプランの場合、さくらが月額515円なのに対し、ミックスホストは月額880円。プラン内容がさくら以上に充実しているため、これくらいの金額アップであれば許容範囲です。
調べれば調べるほどミックスホストに惹かれていったのですが、ミックスホストはアフィリエイトプログラムがあるため、どうも信用し切れない部分があり…(アフィリエイターの性w)
最近ミックスホストに移転した友人が何人かいたので聞いてみたところ、共にサイト速度も速く満足している様子。
ミックスホストへのサーバ移転を決意しました。
ミックスホストへ移転後、500エラーが解消
そうと決まればさっそくミックスホストを契約。
サーバ移転は一度経験がありますが、ミックスホストは安価で代行サービス(9980円)があるというのでお願いすることに(サーバ移転は心理的負荷が大きいので…)。
昼過ぎに起きたら移転作業が終わっており、やることは確認作業のみ。
サイトもさくらのとき以上にサクサク動くようになり、管理画面上でも500エラーが起きることがありません。
また、ミックスホストはcPanelというコントロールパネル上でメモリの使用状況を確認できるようになっており、確認してみたところ、
3.8GB/4GB
というギリギリの使用状況…!
おそらくさくらは一人当たり使えるメモリ容量が4GBもなかったということでしょう。
しかし現在のアクセス数(月間50万PV)だと1GBも消費しないらしいので、やはりメモリを過剰に食っている原因がどこかにあるはず…。
メモリ消費量が3866MBから30MBへ突如ダウン
その後もプラグインの精査やファイルの確認を続けるも、ギリギリのメモリ消費量は変わらず…。
アクセスが集中したり何かあったらまたすぐ500エラーが頻発する事態になるのではと思いつつも、現状ではとりあえず問題が解消したのでエラー対応作業から通常作業に戻っていたところ、突如メモリ消費量が、
3866MB⇒30MB
へと大幅ダウン。
PC初心者の常套句「何もしていないのに」です…笑!
これだけ下がってくれればまず500エラーが起こることはないでしょう。
しかしメモリ消費量に変化のあった時間帯も普通に寝ているだけだったので理由はよく分かりません。どこかからDDoS攻撃でも受けていたのでしょうか?
しばらく様子を見てみたいと思います。
とりあえず…。
今回の500エラーが頻発する問題は、メモリ容量の多いサーバへ移転することで解消しました。
サーバーの平均応答時間も大きく下がりました。
ここ2週間ほどずっとエラーで頭を悩ませていたので、ようやく解放されてホッとしました。