とある雑記ブログを見ようとしたら表示されない・・・いくらたっても空白のまま
暫くすると502エラーが表示された。
「502 Bad Gateway」
初めてのケースで驚く、慌ててWPにログインしようとしても・・・開かない、そして最後はやはり502エラー。
しばらくしたら青地に503エラー
「503 Service Unavailable」
ググってみたら503エラー「アクセス集中によるサーバー負荷でサイト表示が出来なくなる」tというのが一般的見解ですが自分の503エラーは違いました。
どうしようもなくなりサーバーにアクセスしたりググったり切り分けしながら原因と解決方法を探ってみた経緯と解決した内容を記してみたい
503エラー表示でブログが見れなくなった状況説明
どのような条件で503エラーがどのような状況になったか説明してみます。
503エラーになったブログの仕様
サイト:雑記ブログ100記事
ソフト:Wordpress有料テーマ
サーバー:Xサーバー
pv:1日3000pvで月10万pv
お昼に1記事2000文字ほど投稿、画像やTwitterなどMapなどを埋め込み
503エラーが現れた時の症状
夜寝る前にサイト確認しようとしたら、表示されないでずーっと検索中のまま、数分経ったら白地に503のエラーが表示
焦ってしまい、WPにログインしようとしても同様な症状
何度か来る返しているうちに表示が変わって、青地に501エラーの表示で詳細にはアクセスが集注しているためと表示がある。
503エラーの一番の原因はアクセス集中によりサーバー負荷がかかり表示されなくなるという症例が大半と知った。
安いサーバー例えばロリポップなどは501エラーが出やすいというがXサーバーはアクセス負荷には強くある程度のアクセス集中には耐えられるとの口コミだったので契約したのだが?
実際1時間に3万pvでも平気だったので???もちろんその時はアクセス集中しているような記事も無かったので???原因がわからない。
503エラーの切り分け原因解明の作業経緯
自分の通信環境の問題なのか、それともDNSや途中の通信問題なのか?またもやサーバー側の問題なのか切り分け確認してみた。
Googleアナティクスで他社のリアルアクセスの確認
まずGoogleアナティクスにアクセスしてみる。リアルアクセスはあるが、いつもなら10名以上アクセス有る時間帯に2、3名しかいない。
でも自分のページを閲覧している人がいるということは自分だけの問題なのか?
自分の通信環境の問題なのか?原因なのか?検証
- PC以外のスマホで確認してみる⇒同じく501エラー
- chrome以外のブラウザで確認⇒ファイアーフォックスなどのブラウザでも同じく501エラー
- ルーターの再起動・IPアドレスの変更⇒IPが変わってもルーターが変更しても同じく501エラー
以上を確認したけれども同じ症状
ちなみに通信速度確認したけれども10Mbps でいつも通りなどで通信環境ではない。
つまり、自分の通信環境やブラウザなど問題でなく、それ以外の問題だと確定
Xサーバー側の問題なのか切り分け検証
- Xサーバーにログイン⇒ログインできた
- Xサーバーのメインテナンス確認⇒していない
- XサーバーでUPしている全サイトの確認⇒シリウスで作成したサイト全て〇、他のWPで作成したサイト1部NG503エラー
このことから、Xサーバーというより、サイト自体の問題だと確定
503エラーになっているサイトは2つ
1つは雑記サイト(アクセスあり)そして他のサイトは、このサイト(アクセスなし)だった。
このことから、Wordpressの問題ではないことが確定
そしてアクセスがないこのサイトも同じような503エラー(アクセス集中)になっていることからアクセス増大が原因でないことが確定。
一部共通しているのは、有料テーマ(別テーマ)だということ、他のXサーバーにUPしているサイトは無料テーマだった。
ただ障害が起きている2サイトは別々の有料テーマなのでテーマが問題とは思えない。
Xサーバーに取りあえずメールしてみる(真夜中)
501エラーの原因特定作業
ここまでで分かったこと。
- 通信環境のが原因ではない
- サーバーの原因ではない
- WordPressの問題ではない
- アクセス集中の問題ではない
- サイトの設定に問題があるようである
どうも色々ググっていたらHPHのバージョンやらプラグインの問題のような気がしてきた。
原因が分からないけれどもやってみた作業の全て
PHPのバージョンUP
とりあえずXサーバーにアクセスできるので
phpのバージョンを1番上にUPしてみた.
PHP7.2.17 / PHP7.1.28 / PHP7.0.33
現在公式にサポートされているバージョンです。
PHP7 は、従来のPHPと比較してパフォーマンスが大幅に強化されていますPHP5.6.40現在公式にサポートされているバージョンです。
PHP5.5.38 / PHP5.1.6旧バージョンです。
今後バージョンアップの予定はないため新規での利用は推奨しません。
PHP 7.2.x への移行を推奨します。
2サイトともバージョンが古くて推奨バージョンではなかったのでUPしてみた。
エラーログの抽出
Xサーバーにログインしてエラーログを取ってみた。
凄い文字の羅列でわかないけれども、最後の文字を追ってみる。
すると、
mod_fcgid: can't apply process slot for とい文字の羅列が沢山ある。
それは、FastCGI実行時のことだとわかる。
Xサーバの中をみてみると
各PHPバージョンの「FastCGI」と「キャッシュモジュール」について
- PHP7.2.17 / PHP7.1.28 / PHP7.0.33 / PHP5.6.40 / PHP5.5.38
- 「FastCGI」と「OPcache」が標準で有効です。
設定を変更することはできません。- PHP5.4.16 / PHP5.3.3
- 「FastCGI」と「APC」が標準で有効です。
設定を変更することはできません。- PHP5.1.6
- 「FastCGI」が標準で有効です。
設定を変更することはできません。
「FastCGI」と「キャッシュモジュール」に関する詳細は
マニュアルページ「FastCGIについて」と「APC/OPcacheについて」をご参照ください。
とある。
CGIをFastCGIとして動作させる場合、プログラムの拡張子を「.fcgi」に変更にしてください。
また、拡張子を変更せず「.cgi」をFastCGIとして動作させる場合には、
下記を.htaccessに追記することによって「.cgi」でFastCGIの使用が可能です。
AddHandler fcgid-script .cgi※CGIでFastCGI化を行うにあたっては、該当のCGIプログラム自体がFastCGIに対応している必要があります。
なので.htaccessに追加してみた。
すると見れるようにった。
原因はこれか?と思ったのもつかの間、また503エラーがでてしまった。
WPに強制的にログインする方法
とにかくWPにログインできないのでどうしようもない。
そこで、Xサーバーにログインできるので、そこでに自分のIPだけアクセスできる仕様にするとログインできると書いてあったのでやってみた。
.htaccessに下記を追加
Order deny,allow
deny from all
allow from XXX.XXX.XXX.XXX 自分のIPアドレス
結果ダメだった。
ログインができませんでした。相変わらず503エラー
Googleアナティクスでリアルアクセスみたら0になっていた。完全に閲覧できない状況になっている。
広告収入はGoogleアドセンスだけの僅かだけだが何とも惜しいものである。
他のサイトにいい情報が載っていた。Xサーバーのファイルマネージャーからサイトのフォルダーにアクセスしてプラグインを全て停止することでアクセスできるとある。
パブリックの中のプラグインホルダの名前を変更するだけで全て無効になるらしい。
名前の後にハイホン1をつけるだけ、アクセス出来て解消したら、またハイホン1を消すだけで元通りになる。
なんとアクセス出来た。
そして、表示がでるようになった。しかし、やはり503の表示がでて見れなくなった。
これはプラグインが邪魔していたと思い、確認作業を始めた。
全てのプラグインは最新でテーマーも最新問題が無かった。
一つずつ不安なプラグインを停止してみたが原因がわからない。
時間にして4時間。
限界でやめてしまう。
結局は502・503エラーは自然復旧?原因特定できず。
翌朝問題が無くなっていた。原因が不明のままで終了した。
今後いつ起こるかがわからなく怖いですが、どうしいうもありませんんね。
やったことは2点
- PHPを推奨の最新バージョンUP
- AddHandler fcgid-script .cgiを.htaccessに追記(「.cgi」でFastCGIの使用が可能)
503エラーは自己解決するしか方法がない
Xサーバーからは下記のメールが届いていた。
結局は自分で原因を解決しないといけないらしい。
もし解決できなければ、一生?そのまま恐ろしい。
------------------------------------ Resource temporarily unavailable(PHP実行時) Premature end of script headers (CGI実行時) suexec policy violation: see suexec log for more details(CGI実行時) mod_fcgid: can't apply process slot for(FastCGI実行時) ------------------------------------ という旨のエラーメッセージが表示されている場合は、 CGIやPHPの同時起動数が多くなり、 アカウント単位のリソース制限がかかっている可能性がございます。 大変申し訳ございませんが、共有サーバの特性上、 1つのサーバアカウントに負荷が集中しないよう、 上記の措置をとらせて頂いております。 何卒ご理解、ご了承くださいますようよろしくお願い申し上げます。 ・動的なプログラムであればキャッシュ系のプラグインを導入する ・CloudFlareなどのCDNサービスを利用する ・該当ファイル記述の見直し ・サイト構造の見直し(負荷の分散) ・データベースを使用したプログラムの場合、データベースの最適化 ・データベース上不要なファイルの削除
今回は原因が解明できないまま、HPHのバージョンを上げただけで元に戻っていた。
但し、復旧するのに数時間6時間ほどみれない状況が続いた。
もし、また同じような状態が生じても自分では解決できない。Xサーバー側でも少しヒントをくれればいいけれども責任問題になるので具体的なアドバイスできないんだろうな。
そんなことを感じた503トラブルでした。
参考にしたページ
- サーバーエラー503の対処法!アクセスがストップ?原因のプラグインを停止しよう
https://happytraveling555.com/error-503-acces-stop - 503エラー発生 原因:「can’t apply process slot」の対処方法
https://rpa-affiliate.com/2018/04/22/error_503/