ワードプレスの更新後にサイトが503エラーとなり
自分のブログの管理画面、ダッシュボードにすらアクセスできなくなり
ログイン画面にアクセスしても、自分のサイトにアクセスしても
何をやっても青い背景に「503 Service Unavailable」と書かれたページが表示されるだけした。
今回の記事ではWordPressをアップデートした後に
503エラーになったという問題を私が解決できた対処方法、解決方法を書きます。
WordPress 6.3のアップデート通知が来て
万一壊れても諦めがつくような自分の中で重要度の低いサイトから順に
更新していった。
私はサブドメインでいくつかブログを運営しています。
消えても諦めがつく重要度の低いブログで特に問題なくWordPress 6.3に更新できたので
所持しているブログを次々とアップグレードしていきました。
問題が起きた一つのサイト以外は私が所持する全てのブログでWordPressを正常に更新できて
ワードプレスのアップデート後も問題なく動作していましたが
更新できたサイトもフリーズしているかもしれない、固まった止まったんじゃないか、
アップデートに失敗したのかなと感じるくらい
更新ボタンを押してから、なかなか更新後の画面に進まないサイトもいくつかありました、
しかしそれらはブラウザを閉じずに気長に待つことによって問題なく更新を完了しました。
そして私が所持するサイトのうち、一つのブログだけ
WordPress更新後503エラーになって
自分のブログにアクセスもできなければログインもできなくなって
何もできなくなるという不具合に見舞われました。
今からその経緯をお話しします。
記事に使用した画像は画面キャプチャではなく再現画像です。
ワードプレスの更新により私のサイトが503エラーとなった経緯
私が所持している複数のブログは
同じ人=私がやっているので、だいたい使っているツールも設定も同じです。
一つのサイトだけ他のサイトでは使っていないプラグインを使っている
というようなこともありません。全部ほぼ同じです。
そのような環境であるにも関わらず、他のサイトは更新に成功し
一つのサイトだけ
---
データベースの更新が必要です
WordPressが更新されました。次に最後のステップとして、データベースを最新バージョンに更新する必要があります。
データベースの更新処理には少し時間がかかるかもしれません。しばらくお待ちください。
---
と表示されて
強制的にその画面が開かれて、元のダッシュボードに戻ることはできずに指示通りに進むしかないので、言われるがままに
「WordPressのデータベースを更新する」というボタンを押して進むと
---
更新完了
WordPress のデータベースの更新に成功しました !
---
という画面が表示され「続ける」というボタンを押した結果が
503エラーのページです。
こうなるともう、何をしても503エラーのページしか表示されなくなりました。
管理画面に行くためのログインページである
https:// 自分のサイト .com/wp-login.php/
https:// 自分のサイト .com/wp-admin/
これらにアクセスしても503エラーのページとなり、
https:// 自分のサイト .com/にアクセスしても503エラーとなるので
私のブログを第三者が閲覧することもできない状態でした。
503エラーの画面では
---
503 Service Unavailable
アクセスしようとしたページは表示できませんでした。
このエラーは、アクセスが大量に発生しているための一時的なエラーです。
時間を置いて再接続してください。
以下のような原因が考えられます。
・アクセスが大量に発生しているための一時的なエラーです。
---
と表示されていますが、私のブログで
エラーが起きるほどアクセスが集中することはまずないので(苦笑)
ワードプレスのエラーから来る503エラーだと感じました。
又、どんなに待ってもいつまで経っても503エラーなので
時間を置くことには意味がありませんでした。
最初に思いついたのはバックアップを使って
昨日にロールバックする。
私が利用しているレンタルサーバーはエックスサーバーで
3か月前に戻したいなどは自分で手動バックアップを取っていないと戻せないけど
サーバー領域データ(Webとメールデータ)は過去7日間分、MySQLは過去2週間分程度、自分でバックアップを取っていなくても自動バックアップを取得できるので
今日不具合が起きたのなら昨日のバックアップで復元したら
元に戻せるのではないかと考えました。
WordPressの503エラーを解決するために試したこと
WordPressの503エラーを解決するために試したことや、見当したことは
- MySQLの復元をすること
- バックアップを使ってサイト全体をロールバックすること(最後の手段であり極力やらない)
- PHPのバージョンを最新にすること
- サーバーのキャッシュ類を削除すること
以上の4つです。今から一つ一つの説明と
やってみたことに関しては、その結果も書きます。
WordPressの503エラーを解決するため自動バックアップを使ってMySQLの復元を試した結果
まず試したことが
MySQLのデータベースの自動バックアップを使ってMySQLの復元です。
MySQLのデータベースは自分でデータベース名を変更していなければ
ユーザー名_wp1、ユーザー名_wp2のようになっていて
同じドメインでやっているサブドメインのサイトであっても
ブログごとに復元ができるので万一間違った操作をしてしまっても
影響を受けるのは一つのブログだけなので、
そのブログも消えちゃったら悲しいけど、壊れても諦めがつくブログだったので
特に何も考えずに昨日の日付のバックアップでMySQL復元をしました。
WordPressをアップデートしたことによって503エラーが出た時に
MySQL復元をしてロールバックすることで不具合が起きる前の状態に、
元に戻せる、直るケースもあるようです。
しかし私の場合、503エラーのページしか表示されない状況からは変化があったのですが
ブログの管理画面にアクセスすると
「データベースの更新が必要です」という画面が強制的に表示されて、
その通りに進むと、また503エラーのページしか表示されず
もう一度MySQLのデータベースを復元しても、また、
データベースの更新が必要です→更新完了→503エラーページのループで
MySQLの復元は私の状況においては意味がないものだと思いました。
ワードプレスの503エラーを解決するためバックアップを使った復元、サイト全体のロールバックを考えた
その後、MySQLの復元では意味がないのなら
サイト自体をロールバックすれば元に戻るのではないかと考えて
不具合が起きた日の前日の日付を指定して
サイト全体の自動バックアップをダウンロードしました。
不具合の起きているブログだけ、サイトを構成している全てのファイルを
不具合が起きる前の日付のファイルに差し替えれば
最悪の場合、不具合が起きているサイトが壊れる可能性はあるかもしれないけど
他のブログには影響なくロールバックを試せると思いました。
バックアップを使った全ファイルの差し替えは
最終手段であって、他の方法もMySQL復元も効果がなく解決できなかった時に試す方法です。
これをやろうと思っていたのですが
バックアップのダウンロードに時間がかかって、その間に他の方法を試した結果
その方法で解決したので、結果的にサイト全体のロールバック、全てのファイルを前日の日付のものに差し替えるという復元は行わず、バックアップファイルは使用しませんでした。
解決に至った方法は今から書きます。
WordPressの503エラーを解決するためPHPのバージョンを最新にした結果
レンタルサーバーの管理画面(エックスサーバーの場合はサーバーパネル)にログインして
PHPバージョンを一番上にある最新にものに変えたところ、
嘘のようにあっさり自分のサイトにアクセスできるようになりました。
自分のワードプレスに再ログインすることもなく、今まで一度ログインしたらしばらくは
自分のダッシュボードにアクセスするだけでログインした状態で管理画面に行けるように
WordPress管理画面にアクセスしたらいつも通りにダッシュボードが表示され、
ブログも投稿記事も表示され、問題なく動作しました。
私はすごく古いPHPバージョンを使っていたわけではなく
推奨と書いてあるものの中では一番上のものを使っていましたが
それよりも上にある推奨というマークがない最も新しいPHPのバージョンに変更することが
503エラーの解決方法となりました。
PHPのバージョンを最新にしてもワードプレスの503エラーが解決しなかった時に試すこと
私はPHPのバージョンを最新のものに変更することが対処方法となりましたが
これで駄目だった場合は、試してみるべき方法は以下があります。
- エックスサーバーの場合は一時的にサーバーキャッシュをOFFにしてからXアクセラレータもオフにする(503エラーが解決にしたらまたONにする)
- ブラウザキャッシュ、サーバーキャッシュなどキャッシュ類を全て一時的にオフにする(503エラーが解決したらまたONにする)
それでも駄目だった時に試してみることは以下になります。(サイトのバックアップからの復元は重大な操作であってリスクも高いので、よく調べて、よく考えてから行う必要があります。)
- 不具合が起きるより前の日付のバックアップを使ってMySQLの復元
- サイトのバックアップを使ってファイルマネージャーから不具合が起きるより前の日付のファイルに差し替える
サイト全体のロールバックはリスクも伴うので、その時は、ご自身の利用しているレンタルサーバーに相談したり、専門家に相談したり、プロの業者に委託するなどしたほうが良いのかもしれません。
ワードプレスの503エラーはサーバーのキャッシュ類が原因になっている可能性がある
※2023年8月17日追記です。
この記事を初投稿した日は2023年8月10日です。それ以降503エラーは起きていませんが
他の不具合が起きて、もしかしたらサーバーキャッシュ類が原因だったのではないかと気づいたので今こうして追記しています。
WordPress管理画面のレイアウトが崩れる不具合が起きて、もしかしたら503エラーもサーバーのキャッシュ類が原因だったのではないかと気づきました。WordPressダッシュボードのレイアウトが崩れる不具合と、その対処方法については以下の記事に投稿しています。
私はエックスサーバーを使用しているので、サーバーのキャッシュ系の機能としてはサーバーキャッシュとXアクセラレータ Ver.2を使用していました。どうもこのXアクセラレータ Ver.2と、WordPressで使用しているテーマの相性が悪くて不具合が起きることがあるようなのです。
ワードプレスが悪いのでも、使用しているテーマが悪いのでも、サーバーのキャッシュ機能が悪いのでもなく、組み合わせ・相性が悪いとエラーに遭遇するのかもしれません。
XアクセラレータVer.2を有効にして使用している時に「無効となるphp.ini設定」というものが存在して、それが原因になっている可能性を考えました。
よって、ワードプレスの503エラーが出た時にPHPを最新バージョンにすることによって解決したのかもしれません。最新バージョンにしたことよりも、PHPのバージョンを設定し直したことが503エラーへの解決方法となったのではないかと思っています。
503エラーが起きたサイトでは、PHPのバージョンを最新に変更し、XアクセラレータVer.2は設定を変更することなくそのまま利用して、その後503エラーは一度も起きることなくワードプレスを利用していたのですが、WordPressダッシュボードのレイアウトが乱れるエラーが起きるようになって
下記2点の設定に変更しています。
- PHPのバージョンは最新のものではなく、(推奨)の文字がついているものの中で一番新しいものに設定し直した(最新より2つ程度前のバージョンを使っています)
- Xアクセラレータ Ver.2をXアクセラレータVer.1に変更
それ以降は503エラーもレイアウトが崩れるエラーも起きていません。
XアクセラレータVer.2はPHPの高速化も含みますが、XアクセラレータVer.1にはPHPプログラムの高速化は含まれません。PHPプログラムが503エラーやWordPress管理画面のレイアウトが崩れる不具合が起きる原因として鍵を握っているのではないかと感じました。
現在はPHPプログラムの高速化を含まないXアクセラレータVer.1に設定して使用し続けています。
エックスサーバー以外のサーバーを利用して、サーバーのキャッシュ類を使っている方も、何に対してのキャッシュ機能をONにしているのか確認してみると解決策につながるのかもしれません。
503エラーに関してまた何か不具合があったらこの下に追記します。何も追記がなければ、503エラーに関してはこれ以降特に何も起きていません。
再び503エラーに遭遇してWordPress更新後に起きやすいと感じた
※2023年11月1日追記
この記事を2023年8月10日に投稿してからしばらくの間は
503エラーは起きていなかったのですが2023年10月下旬にワードプレスを更新した頃、また503エラーが起きました、現在は解決しています。
PHPを含むキャッシュを使用しない、
エックスサーバーでいうところのXアクセラレータVer.2は使用せず、XアクセラレータVer.1(キャッシュにPHPを含まない)を使用し続ければ503エラーは起きません。
503エラーが起きてもPHPを含むサーバーキャッシュをOFFにすれば改善されます。
しかし、XアクセラレータVer.1よりもXアクセラレータVer.2のほうが表示速度が速く感じるため、503エラーが起きた時は一時的にXアクセラレータVer.1(キャッシュにPHPを含まない)に設定して数日経過後にXアクセラレータVer.2(キャッシュにPHPを含む)に戻しても不具合が起きないことを確認してからXアクセラレータVer.2を使用していました。
WordPressの更新をしたからといって必ず503エラーが発生するわけではなくて、発生しない時もあれば、発生する時もあります。一つのドメインでサブドメインを利用していくつかブログを運営していて、そのうちの一つのブログだけに503エラーが起きるため、一つのブログのためだけにXアクセラレータVer.1に設定することはデメリットに感じ、
現在は通常はXアクセラレータVer.2(PHPを含むサーバーのキャッシュ)に設定をして、
503エラーが起きた時だけ一時的にXアクセラレータVer.1に設定し、数日後にXアクセラレータVer.2に戻しています。
503エラーは頻繁に起きるわけではないので、WordPressアップデート後にそのまま放置などせず、できれば1日1回はブログが表示されているか確認していれば、PHPを含むサーバーキャッシュを使っても良いかもしれません。
ページ速度を気にしないのであればサーバーキャッシュを使わないという手段もあります。
※2023年11月8日追記
2023年11月8日にWordPress 6.4への更新が来ていることに気づいたのでアップデートしたところ、503エラーが起きました。毎回、サブドメインでいくつか運営しているブログのうちの一つのブログで、決まって同じブログだけに503エラーが起きます。XアクセラレータVer.2を使っていたのでXアクセラレータVer.1にしたら2~3分ですぐに改善されました。
503エラーにはワードプレスの更新が関係しているように感じました。
コメント