2025年4月30日から5月1日にかけてのサイトダウンとその対処の顛末

2025年4月30日から5月1日にかけて、当サイトでエラーが発生してコンテンツが閲覧できない状態になりました。ちょうど旅行中で、行きの電車の中でその状況に気づいたため結構焦りましたが、5月1日未明に復旧しました。その顛末です。

現象と原因

サイトにアクセスすると下のような画面が表示される状態になっていました。

screenshot_20250430-110009654568970995278023

今回の不具合はWordPressの自動バックアップ用プラグインBackWPupの不具合によるものでした。

一般的な環境では対応していないcalender拡張機能を必要とするcal_days_in_month()という関数が使われたことが原因だったようです。

同プラグインを無効化することで回避できました。また最新のバージョン5.2.1では修正されています。

変更履歴

5.2.1

Release date: April 30, 2025

  • Bugfix: Fixed fatal error caused by cal_days_in_month() function on 5.2 for unsupported servers.
BackWPup – WordPress Backup & Restore Plugin | 開発

旅行中にどう対応したか

以下、対応した内容を書いてみます。

発見するも放置を決断

上述のように、サイトでエラーが発生していることには電車の中で気づきました。管理者ログインした状態でアクセスした際には「詳細については、サイト管理者のメール受信ボックスを確認してください」という文言も入っていましたが、自分宛メールを確認してみたもののWordpress関連らしきメールは見当たりませんでした。

何か対応に着手しても電車の中で完了するかどうかわりませんし、自分のサイトなので他人に迷惑がかかることはなさそうなので、告知だけしてその日はそのまま放置することを決断。観光して温泉に入って夕食食べて、疲れたので早寝しました。

夜中にホテルのベッドで対応開始

あまりに早く寝たせいで夜中の2時ごろに目が覚めました。寝付けないので、サイトのエラーの修正に着手することにしました。

使えるのはスマホのみ。環境は以下の通りです。

Webサイト側

  • サーバー:さくらのレンタルサーバ スタンダード
    • OS: FreeBSD 11.2-RELEASE-p16
    • CMS: WordPress version 6.8.1
    • PHP: version 7.4.33 ← 古かったので現在は8.3.8にアップデート済みです
  • 端末:DoCoMo SO-52C (Xperia 10Ⅳ)
    • OS: Android version 14

手動バックアップ

当初はエラーの原因がわからなかったので、作業前のバックアップを手動で取ることにしました。一応プラグインで自動バックアップは取っているものの (それがエラーの原因だということはこの時点では知りません) 色々制約のある環境下ですので念のため、ということで。

サイズはそれなりに大きいのでスマホにダウンロードするのは現実的ではありません。とするとSSHでサーバーに入ってサーバー内でアーカイブを作るのが良さそうです。Google Playストアを探して、Termiusというアプリをインストールしました。

細かい設定手順は省きますが (というか忘れた) サーバーのアドレスとアカウント、パスワードがわかっていれば接続できます。つないでしまえばあとはtarなりzipなりでwww配下外のどこかに置けばOKです。私の場合は~/www/wpがWordPressのディレクトリなので、これを~/wp_20250501.tar.gzにまとめるため

$ cd www
$ tar czf ../wp_20250501.tar.gz wp

を実行しました。Termiusの画面ではこんな感じ (キーが打ちにくいので画面回転して横長画面にしましたが、キーボードを表示すると2行しか表示できない…)。

ちなみにこのアプリ、iPhone版、Windows版、Mac版、Linux版もあります。SFTPも統合されており、鍵や設定を管理するためのクラウドVaultも提供されているようで、なかなか良さそうです。Windowsにも入れてみようかな。

情報収集

アーカイブにはそれなりに時間がかかるので、その間に情報収集。WordPress.org日本語のFAQ トラブルシューティングWordPress の一般的なエラーのページを見て、プラグインが怪しいと当たりをつけます。さらにXでこんな投稿を発見。これだ!

ここからリンクされているお知らせページには対処法も書いてありました。

BackWPupの無効化

手動バックアップを行うからにはデータベースもバックアップすべきところですが、上記のように原因らしきものを見つけたのでやらなくて良いことにします。wpフォルダのアーカイブが終わったところで、上記ページに書いてある通りBackWPupの格納されているフォルダの名前を変更してみました。既にSSHでつながっているので下記を実行。

$ cd www/wp/wp-content/plugins
$ mv backwpup _backwpup

しかし、私のところではこれを実行した直後にサイトにアクセスしてもエラーは解消されず、リネーム後の_backupフォルダをpluginsの外に出してようやくエラーが解消されました。

$ mv _backwpup ~/

もっとも、後日改めてフォルダのリネームを再度試してみるとプラグインは無効になったので、エラーが解消されなかったのはブラウザのキャッシュが残っていたりしたのかもしれません。

いずれにしてもこれで一安心。旅行中の対応は以上としました。

帰宅後にBackWPup再設定

今回のBackWPupのエラーは、確かにサイトにアクセスできなくなってしまうような致命的なものでしたが、すぐに修正バージョンが配布されたことや、大きな問題は (私が認識したものは) これが初めてであったことなどから、当面は使い続けることとします。

使用再開にあたっては、まず移動した_backwpupフォルダを元の場所に正しい名前で戻します。

$ cd www/wp/wp-content/plugins
$ cd ~/_backwpup backwpup

サイトのコントロールパネルでプラグインを開くとBackWPupが無効になっているはずです。

ここで本来なら無効のままバージョンを上げてから有効化、だと思うのですが、自動更新が設定されていたためか気が付くと5.2.1に上がっており、有効化して対処は完了しました。

おわりに

旅行中にサイトがエラーで表示できなくなりましたが、スマホで復旧することができました。コマンドラインでの作業に抵抗がない方なら、SSHクライアントを入れておけばいろいろと役に立ちそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です