最近、サーバーの引っ越しによる独自ドメインの移管や、ワードプレスのテーマ変更などを頻繁に行いました。その過程で、知らない項目は一通りドハマりした訳ですが、一番苦しんだ『503エラー』が無事に解決したので、記録としてメモ致します。
目次
『503エラー』って何ですか?
そもそもエラー自体、心臓に悪い現象ですが、慣れると画面と読み込みの雰囲気から、ある程度の原因予測が立つようになります。ただ、今回直面した『503エラー』は過去にも経験しているのですが、その時とは様子が違うのです。
システムエラーは同じ番号や画面であっても、複数の原因が潜んでいるから困ります。
結局は、一つずつ潰して行くしか無いんですよね。
アクセス集中のバズ
真面目に意味のあるブログ記事を一定数以上更新していると、メディアやSNSの影響でサイトがバズる(拡散が拡散を呼ぶ)ことがあります。勿論、一時的な爆発なので驚きますが、サーバーの同時アクセス制限が原因なので、ほとぼりが冷めれば治ります。
これを解消したいのであれば、耐久性のあるサーバーに変更するしかありません。ちなみに今回の事例は、バズ対策でおススメの『Xserver』で起こったことなので、原因は別にありました。
サイト自体が重い
写真や動画などコンテンツ自体が重い場合、アクセス渋滞が起こります。一定時間経過してタイムアウトされれば、やはりエラー表示されてしまうのです。例えるなら、動脈硬化の高血圧による脳梗塞でしょうか。
サイトの待機時間は『3秒ルール』と言われるぐらい、待てない人が多いです。
ラーメン屋さんの行列は当たり前のお国柄なので、この辺りに矛盾を感じます。
データ転送量の制限
サイトにデータを置いている場合、ダウンロードが集中すると制限が掛かります。
これも、バズと同じ意味合いです。
PHPのバージョン
『503エラー』はアクセス集中が原因と考えて間違い無いのですが、『PHP』のバージョンが古いと起こる可能性もあるので、サーバー経由でチェックしてみて下さい。ワードプレスを安価で構築させ、メンテナンスフリーだと思い込んでいるクライアントが、結果的に出くわすバチでもあります。
プラグイン
ワードプレスと言えば『プラグイン干渉』なので、FTP経由でプラグインファイル自体の頭に『アンダーバー』などでリネームし、一旦オフってみると一目瞭然です。面倒臭がらず、初期段階で実施すべき基本の『き』です。
-
WordPress:記事更新『501エラー』Xserver - MiyabixPhoto
ブログの過去記事を観覧していたら気になる点があった見付かったので、修正し更新ボタンを押しました。すると、まさかの『501 ...
miyabix.com
-
WordPress:『AH01068:Got bogus version エラー』サイト表示が重過ぎる(Xserver) - MiyabixPhoto
最近、ワードプレスサイトの移管や構築を頻繁に行っています。先日、あとはFTPアップロードしておしまいのタイミングで、サイ ...
miyabix.com
ちなみにオフって一時的に回復しても、タイムラグで戻ってしまうことがあります。
そんな時は、上記のリンクをお試し下さい。
『xmlrpc.php』不正侵入アクセス
『503エラー』の厄介なところは、サイト管理者である自分自身が管理画面にすら入れなくなることです。そうなると、サーバー経由でしか解決出来ない訳ですね。
順を追って説明しますが、ワードプレスでの投稿を『メール経由』で行っている方は、必見です。『xmlrpc.php』はパスワードさえ分かれば投稿出来るので、ランダムに不正アクセスが繰り返されます。これって、とんでもない数になるんですよね。
FTP経由で『xmlrpc.php』を削除してしまえば解決しますが、ワードプレスのアップデートで復活してしまうので、現実的ではありません。
1 2 3 4 |
<Files xmlrpc.php> Order Deny,Allow Deny from all </Files> |
でも、ご安心下さい。
『.htaccess』にて上記を追記すれば、アクセス出来なくなります。
IPアドレス制限
そもそも自分のサイトにアクセス出来ないのは、自身もその渋滞に巻き込まれているからです。ならば、自分しか入れないよう設定してしまえば解決します。
-
アクセス情報【使用中のIPアドレス確認】
あなたのアクセスしているIPアドレス情報などをENVとJavaScriptで取得し表示します。あなたのIPアドレスからポ ...
www.cman.jp
上記リンクへ、アクセスして下さい。
すると、あら不思議。
自分の利用している『IPアドレス』が表示されました。
『.htaccess』を開きます。
1 2 3 |
Order deny,allow deny from all allow from 自分のIPアドレス |
上記コードを追加記載します。(※後で削除します)
これで、自分以外のアクセスは拒否されます。
アクセスしちゃいましょう。
ポイント
http://サイトURL/wp-login.php
管理画面に入れさえすれば、様々なことが解決出来るはずです。
-
WordPress:保存したのにサイト記事が更新されない事例 - MiyabixPhoto
ワードプレスを長く使っていると、不思議な現象に出くわすものです。例えばサイトや記事を更新した後、仕上がり具合をチエックし ...
miyabix.com
キャッシュが原因の事例は多いです。
丁寧にやっつけましょう。
ポイント
- WordPressのバージョン
- テーマのバージョン
- プラグインのバージョン
また、それぞれのバージョンが古いとエラーの原因になることもあります。
注意
当然ですが、要件が済んだら『.htaccess』からコードを確実に削除しましょう。
忘れると、自分しか観れないサイトになってしまいますからね。
サイバー攻撃『F5アタック』
サイバー攻撃も選択肢の一つです。
サーバー機能の『デバッグ』で確認すると解決が早いです。
ちなみに、よく分からないのが前項の『.htaccess』による自分以外のアクセス拒否が効かなかったことです。
まだまだ、勉強不足ですね。
さて、解決策を進めます。
エックスサーバーで説明しますが、どこのサーバーでもデバックの吐き出し機能はあるはずです。
『サーバーパネル』⇒『アクセス解析』⇒『エラーログ』へ入ります。
任意のドメインを選択し『ダウンロード』します。
するとテキスト形式で、エラーログ一覧が見られます。
連続して同じIPアドレスからアクセスがあったら要注意。
どうしても読みたいサイトに繋がらない時、何度かリロードすることはありますが、連続して何百回もアクセスすることはまずありません。これは自動でクリックさせるソフトを使った、犯罪行為です。キーボードの『F5』キーはリロードなので『F5アタック』と呼ばれています。
『サーバーパネル』⇒『ホームページ』⇒『アクセス拒否設定』へ入ります。
『拒否IPアドレス』欄に、連続アクセスのあったIPアドレスをコピペで入れます。
『wp-cron.php』のDoS攻撃
さて、今回の原因は『wp-cron.php』による『DoS攻撃』でした。
攻撃と表現すると印象は悪いですが、今回の例は健全です。
前項同様、Xserverからデバッグを吐かせます。
すると、まるで『F5アタック』を思わせるような連続攻撃が表示されます。
『悪い奴がいるもんだ』と、IPを調べてみると、まさかの自分!?
自分で自分を攻撃しているらしい・・・(*ノωノ)
どうやら、WordPressはサイトアクセスをトリガーとして、実行項目を探す仕様だそうな。
それが『wp-cron.php』を経由している為、このような連続ログになってしまうんだとか。
結果、実質アクセスの2倍の負担が、サーバーに掛かるようです。
『wp-cron.php』を無効
wp-cron.php
/home/サーバーID/ドメイン名/public_html/wp-config.php
FTPで上記の場所に追記します。
1 2 |
<?php define('DISABLE_WP_CRON', 'true'); |
文頭、2行目を書いて下さい。(『<?php』の次の行に書く)
これで『wp-cron.php』が無効になります。
無効により、記事の予約投稿やバックアップなど、定時実行が動作しなくなります。
この使用に依存しているプラグインも多いので、システム側の『cron』で『wp-cron.php』を定期実行する必要があります。
-
Cron設定 | レンタルサーバーならエックスサーバー
レンタルサーバー「エックスサーバー」のご利用マニュアル|あらかじめ指定した時間に指定コマンド(プログラム)を自動的に実行 ...
www.xserver.ne.jp