とある問題の作業でWordPressのテーマ設定を初期化してしまった為、
設定を戻そうとエックスサーバーのサービスで自動的に取得しているバックアップデータを使い復元しました。
復元処理は正常終了のメッセージが表示されましたが、実際にWordPressのログイン画面にアクセスしてみた結果、
エラー画面が表示されログインできない事象が発生してしまいました。
根本原因こそ不明でしたが、解決方法が見つかり復旧できたので、その方法を紹介します。
- 同じ現象でお悩みの方
- 当サイトの環境と近い方
- 原因はわからずとも復旧を優先したい方
エラー発生時のサイト環境
2022/5/2現在、エラーが発生した際の環境は下記の通りです。
このサイトの環境と近く、同じ現象でお悩みの方はご参考ください。
環境一覧
メーラー | Outlook.com |
レンタルサーバー | Xserver(エックスサーバー)レンタルサーバー |
WordPressテーマ | Cocoon(コクーン) |
WordPressプラグイン | 複数ある為、下記の「プラグイン一覧」を参照 |
※2022年8月現在、WordPressのテーマは「SWELL(スウェル)」に変更しています。
プラグイン一覧
プラグイン名 | 機能説明 | 補足事項 |
---|---|---|
Aurora Heatmap | ユーザーのクリック箇所を可視化 | - |
Broken Link Checker | 外部のサイトのリンクをチェック | - |
Contact Form 7 | 問い合わせフォームを追加 | - |
Edit Author Slug | ユーザー名の漏洩を防ぐ | - |
EWWW Image Optimizer | 画像のアップロード時に自動で圧縮 | - |
GDPR Cookie Consent (GDPR Cookie 同意) | GDPR対応 | - |
Invisible reCaptcha | 認証機能を導入 | - |
SiteGuard WP Plugin | WordPressのセキュリティ強化 | - |
WebP Converter for Media | WebP画像形式に変換 | - |
WP Fastest Cache | キャッシュ使用で表示速度を高速化 | - |
WP Mail SMTP | 指定メーラーでメールを送信 | 事象①の復旧で追加 |
WP Multibyte Patch | マルチバイト文字の対応 | - |
WP-Optimize – クリーン、圧縮、キャッシュ | データベースの最適化 | 事象②の復旧でクリーンインストール |
XML Sitemap & Google News | サイトマップを設定 | - |
復旧前の注意事項
- 同じ事象かしっかり判断する
この記事では事象の詳しい内容と、その復旧方法をまとめて紹介している。
紹介している情報から同じ事象なのか、ご自身で判断し復旧方法を実施すること。
- 解決できない可能性あり
事象の根本原因は特定できていない。
私の環境で復旧できた方法を紹介しているので、復旧できる保証はない。
- 作業前にバックアップを取得
小さい作業でも作業前にバックアップすること。
作業時に不具合が発生していた場合でも、作業でより悪くなったしまう可能性は十分ある。
どんな時でもバックアップは重要。
全体の流れ
最初は事象①「WordPressのログイン通知メールが届かない」問題がありました。
その原因を特定しようとWordPressのテーマを変更した結果、使用していたテーマ(Cocoon)の設定が初期化されてしまいました。
*テーマ変更で設定が初期化するのは仕様動作。
意図せずテーマの設定が初期化されてしまい設定を戻そうと、
エックスサーバーの自動バックアップデータを使って復元しました。
復元した結果、
今回の事象②「Xserverで復元後にWordPressログイン画面でエラー」が発生。
この記事では事象②をメインに復旧した方法を紹介します。
プラグイン「SiteGuard WP Plugin」により、
実現していたログイン通知メールが受信しなくなった事に気づく。
いま読んでいる記事の事象。
事象①の切り分け作業でテーマを変更した事により、
テーマの設定が初期化されてしまった。
初期化された設定を戻そうと、
エックスサーバーで自動取得しているバックアップデータを使い復元するも、
WordPressのログイン画面でエラーが表示された。
事象内容
エックスサーバーの自動バックアップデータを使い復元を実施。
復元は正常終了するもWordPress(ワードプレス)のログイン画面で、
エラーが発生してしまう事象が発生しました。
このエラーによりWordPressへのログインが不可となりました。
WordPressログイン画面のエラー
エラー画面は下記のとおりです。
エラー内容から「plugins/wp-optimize」というキーワードが各所にあり、
プラグイン「WP-Optimize」に関連したエラーであることがわかりました。
*エラー内容の一部にエックスサーバーのIDが入っていた為、塗りつぶし加工する。
Warning: include_once0: Failed opening ‘/home/XXXXXX/haretokidoki- blog.com/public_html/wp-content/plugins/wp-optimize/cache/class-wpo-page-cache.php’ for inclusion (include_path=’.:/opt/php-7.4.25/data/pear’) in /home/XXXXXX/haretokidoki- blog.com/public_html/wp-content/plugins/wp-optimize/wp-optimize.php on line 208 Fatal error: Uncaught Error: Class ‘WPO_Page_Cache’ not found in /home/XXXXXX/haretokidoki-blog.com/public_html/wp-content/plugins/wp-optimize/wp- optimize.php:210 Stack trace: #0 /home/XXXXXX/haretokidoki-blog.com/public_html/wp- content/plugins/wp-optimize/wp-optimize.php(529): WP_Optimize->get_page_cacheO #1 /home/XXXXXX/haretokidoki-blog.com/public_html/wp-includes/class-wp-hook.php(307): WP_Optimize->p|ugins_loaded(“) #2 /home/XXXXXX/haretokidoki- blog.com/pub|ic_html/wp-includes/class-wp-hook.php(331):WP_Hook->apply_filters(NULL, Array) #3 /home/XXXXXX/haretokidoki-blog.com/public_html/wp-includes/plugin.php(474): WP_Hook->do_action(Array) #4 /home/XXXXXX/haretokidoki-blog.com/public_htm|/wp- settings.php(450): do_action(‘plugins_loaded’) #5 /home/XXXXXX/haretokidoki- blog.com/public_htm|/wp-config.php(99): require_once(‘/home/XXXXXX) #6 /home/XXXXXX/haretokidoki-blog.com/public_html/wp-load.php(50): require_once(‘/home/XXXXXX’) #7 /home/XXXXXX/haretok in /home/XXXXXX/haretokidoki-blog.com/public_html/wp-content/plugins/wp- optimize/wp-optimize.pl1p on line 210
引用元:エラー内容を文字起こし
時系列
下記が詳細な時系列です。
事象①の切り分け作業で意図せずテーマの設定が初期化される。
*テーマの変更でテーマの設定が初期化される動作はWordPressの仕様。
復元前に手動でテーマやWebデータ、メールデータ、MySQLのバックアップを取得するべきだった。
参考情報:エックスサーバーの手動バックアップ方法
エックスサーバーで自動的に取得しているバックアップデータを使い復元を実行。
直近で自動取得していた2022/4/28分のバックアップデータ(Web・メールデータとMySQL)を使用。
参考情報:エックスサーバーの自動バックアップからの復元方法
エックスサーバーの復元処理は正常終了するもWordPressのログイン画面にアクセスしてみるとエラーが表示されている事を確認。
このエラーによりWordPressへのログインが不可となる。
エラー内容よりプラグイン「WP-Optimize」の名前を表す文字列が多くあった。
復旧方法を調査した結果、プラグインの無効化を対応してみる事となる。
エックスサーバーのサーバ上にあるプラグイン「WP-Optimize」データのフォルダ名を直接変更。
フォルダ名の変更で強制的なプラグインの無効化に成功。
参考情報:強制的にプラグインを無効化にする方法
前項でプラグインを強制的に無効化した事によりWordPressのエラーが無くなり、
ログインできるようになった事を確認。
ただし、プラグイン「WP-Optimize」は無効化されている為、
次はプラグインを正常動作させる方法を検討。
*WordPressへログインできるようになった後、強制的に無効化したプラグイン「WP-Optimize」をWordPressの管理コンソール上から有効化してみると同じエラーが再発した。
強制的に無効化したプラグイン「WP-Optimize」を削除し、
新規インストール(*)を実施する。
*インストール済みの状態より削除→新規インストールする事をクリーンインストールという。
プラグインのクリーンインストールにより、
プラグイン「WP-Optimize」も動作する状態(有効化)で、
かつWordPressへもログイン可能な状態となる。
原因
原因は不明。
ただ、エラー内容と復旧までの経緯から判断すると、
プラグイン「WP-Optimize」で何らかの問題が発生したものと考えられる。
復旧方法
エックスサーバーのファイル管理でプラグイン「WP-Optimize」のフォルダ名を直接変更する事により、
強制的にプラグインを無効化。
無効化によりWordPressへログイン可能となり一時的に復旧。
続けてプラグインのクリーンインストール(削除→新規インストール)により、
プラグイン「WP-Optimize」も動作する状態(有効化)で、
かつWordPressへもログイン可能な状態となり完全復旧。
参考情報:強制的にプラグインを無効化にする方法
今回の対応での反省点
前述の時系列にある通り、エックスサーバーの復元実行前に適切な判断ができていませんでした。
復元前がWordPressのテーマ設定が初期化された状態だった為、
これ以上、悪くなることはないだろうと高を括り、
作業前のバックアップを取得せずに復元を実行してしまいました。
結果、WordPressにログインできなくなるという重大な問題となりました。
*レンタルサーバーのサービスとして自動バックアップや復元機能が提供されている為、
確実に復元できるという思い込みもあった。
問題の大小に限らず何か作業をする際はバックアップを取得するべきだったと反省しています。
参考情報:エックスサーバーの手動バックアップ方法
まとめ
- 原因は不明(おそらくプラグイン「WP-Optimize」に関連した問題)
- プラグイン「WP-Optimize」を強制的に無効化したことで一時的に復旧
- プラグイン無効化で一時復旧後、プラグインをクリーンインストールで完全復旧
コメント