昨日(2021年8月31日)、Twitterのフォロワーさんからの依頼で、WordPressの復旧のご相談がありました。
最初はどうしたのかな…と思いながら、詳しく聞いてみると、以下の表示が出ていました。
この表示はびっくりするよね
どうやら、Pochipp(ポチップ)関連っぽいということがわかってきました。
しかし、よく調べていると原因は思わぬところにあることがわかってきました。このブログを最後までお読みいただけると嬉しいです。
このブログでは、この問題の原因と解決法を簡単に解説します。
大丈夫。必ず復旧できますし、慣れれば数分で復活できますよ。
今回の原因について
今回の発生原因については、Pochipp・Rinkerプラグインの特定のバージョンの組み合わせでのみ発生します。
Pochipp ver 1.4.11までのバージョン使用中で、かつRinkerをver 1.9.1へ先にアップデートすることにより発生。
どちらのプラグインも併用していて、両方とも有効化していると発生します。
Rinkerを1.9.0のバージョンのまま使い続けるか、もしくはPochippをver 1.4.13へアップデートしていただければ、問題なくRinker 1.9.1を併用していただくことが可能です。
PochippとRinkerを同時にアップデートする場合はどうなるか
問題ありません。実際に検証済みです。ぜひ同時にアップデートしてください(そのほうが安全です)。
問題の発生有無検証中。
— しらこ♨くろにゃん子育て中🐈 (@96ssbike) September 1, 2021
PochippとRinkerを同時に更新すると、影響は出ないね🙆♂️
これって、Pochippがアルファベット的に先にくるから、Rinkerよりも先にアプデされるから大丈夫?🤔
それとも、アルファベット順関係なく、同時アプデは問題出ない?🤔 pic.twitter.com/797kwFoFpG
もしくは、Pochippを先にアップデートして、後でRinkerをアップデートしていただくことも可能です。
絶対にやってはいけないこと
Rinkerを先にver 1.9.1へアップデートすることは絶対にやめてください。Fatal Errorが表示されます。
もしFatal Errorが出たら…対処法(たったの数分で解決できる)
もしも誤ってFatal Errorが出てしまった場合は、以下の方法で対処可能です。
リカバリーモードに入れる方と、そうでない方とで対処法が異なります。
リカバリーモードに入れる方
リカバリーモードに入れる方は、以下の手順で対処可能です。
- リカバリーモードにログインし、(念のため)Pochipp・Rinkerを両方とも無効にする。
- 2つのプラグインを最新バージョンにアップデートする。
- 再度2つのプラグインを有効化する。
上記手順であれば、以下の「リカバリーモードに入れない方」向けの方法よりも非常に単純で、後述で説明している通りのディレクトリ(フォルダ)名変更が伴わない、プラグインを停止してアップデートするだけで単純です。
リカバリーモードに入れない方
リカバリーモードに入れない方は、以下の手順で対処可能です。
レンタルサーバー付属のファイルマネージャーもしくはFTPへアクセスして、一時的にRinkerのディレクトリ(フォルダ)名を変更することにより問題解決することができます。
具体的な手順は以下の通りです。
各レンタルサーバーのファイルマネージャーもしくはFTPにアクセスして、Rinkerのディレクトリ(フォルダ)名を書き換えます。yyi-rinker
となっているものを、たとえば_yyi-rinker
などに変更します。
各レンタルサーバーのファイルマネージャーのマニュアルは以下の通りです。ご参考ください。
その他の会社については、ご自身でお調べください。
それぞれのレンタルサーバー上でのフォルダパスは概ね以下の通りです。
- エックスサーバーの場合
あなたのドメイン名
>public_html
>wp-content
>plugins
>yyi-rinker
- ConoHa WINGの場合
public_html
>wp-content
>plugins
>yyi-rinker
書き換え完了したら、ダッシュボード(WordPress管理画面)へアクセスし、Pochippを1.4.13以上にアップデートします。
もう一度ファイルマネージャーもしくはFTPへアクセスし、一旦 _yyi-rinker
などに書き換えたディレクトリ(フォルダ)名を yyi-rinker
に戻します。
その後、ダッシュボード(WordPress管理画面)に戻り、再度Rinkerを有効化します。
これで以上です。
他のテーマ・プラグイン由来でもエラーが起きた場合も対応できる
今回の方法は、何か他のテーマ・プラグイン由来でエラーが発生した場合でも、同じ方法で対応できることです。
今回はたまたまPochipp・Rinkerプラグインの併用のうち、特定条件下で発生する問題でしたが、今後ももしかしたら(稀ですが)、他のテーマ・プラグイン由来などで発生しなくもないとも限りません。
その場合は慌てないで、今回のやり方と同様に他のテーマ・プラグインをリカバリーモードで停止したり、ファイルマネージャー(もしくはFTP)などでディレクトリ(フォルダ)名を名前変更することで解決することができます。後半の名前変更する方法は、WordPressの緊急回避的なお作法と言いますか、ディレクトリ(フォルダ)名を名前変更することにより(ずっと変更しっぱなしは良くないのですが)、有効化済みのテーマ・プラグインを強制的に無効化してWordPressの基本動作に影響させなくすることができます。
基本的には、どのテーマ・プラグインが関係してエラー(Fatal Errorなど)が発生しているか、エラーメッセージ上でわかりますが、場合によってはエラーメッセージ自体が詳細に出ない場合もあります。
いずれにしても、復旧の手助けとなるでしょう。
ただし、問題が起きたときの原因の切り分けは別問題です
さて、みなさん。上記の問題が発生して復旧したとしても、問題が発生したときの原因の切り分けはスムーズにいくでしょうか?
実は、今回は私が特定の組み合わせで発生することを最初に調べた(最終的に、Pochipp開発者の方にフィードバックさせていただきました)張本人なのですが、それまでの道のりは決して単純ではないような気もします。どうでしょうか。
- フォロワーさんからFatal Error発生の報を受けた時点では、上述のPochippを強制停止することしかできなかった。ただし、その中のエラーメッセージに、
/pochipp/inc/api/paapiv5.php
と書かれていたので、おそらく「Pochipp本体というよりかは、PA-API関連なんかな?」とも想像していました(あくまで勝手な想定です)。 - 直前で、Pochippが1.4.11へアップデート提供されているので、その影響は考えていた(他の方もそう考えられていた。笑)が、実際は1.4.9などのバージョンでも問題が発生していた。なので、Pochippアップデートの影響ではない。
- しかしながら、すべてのユーザーで発生しているわけではない(現に私は何も起きていない)ことから、しばらくの間は原因調査しないでおいた(他の仕事もあるっちゃあるし…)。
ただし、この返信(リプライ)がトリガーとなって、私には大きなヒントになりました。
エラー的にポチップ単体では発生しなくてなんか別のプラグインと併用したらまずいみたいな感じな気がしていますね。
— ひろ🐾ポチップ開発者 (@hiro_develop127) August 31, 2021
瞬間的に、「あれや…!」と閃きました。
- ヒントをいただいた後にPochipp・Rinkerの複数のバージョンのファイルを手元に用意して検証、無事に同じエラーを起こすことに成功し(笑)、今回の組み合わせで発生することを突き止めました。前日にRinkerのアップデートが提供されていたこともわかりました。また、この時点でPochippが好きな方には、Pochippを停止しなくても良いこともわかりました。
同じ現象再現して、そしてPochipp無効にしなくても復活したわ。 pic.twitter.com/DUfZXrfamu
— しらこ♨くろにゃん子育て中🐈 (@96ssbike) August 31, 2021
という感じです。たまたまなんですが、原因を見つけることができました。
この情報をPochipp開発者の方へフィードバックし、早期に不具合回避バージョンの開発に役立てていただくことができました。また様々な方にDM・リプライを行って緊急回避の方法を提供したり相談できる環境を用意し、即座に復活していただくことができました。
ワークフローをシンプルにしておいたので、同時に何人かご相談いただいても完全対応できるようにしておきました。
- どっちも使っている方には、とりあえずPochippとRinkerどちらを一時的に無効にするかを選んでいただいた。そして、一旦無効にするプラグインも、後述の修正版が提供された段階で元通りに戻すようにした。
- PochippもしくはRinkerどっちか消したい人には、この機会に不要なほうを消していただいた。
- そして、相談いただいた何人かには、Pochippの修正版が提供されたらお知らせすることを約束していた。そして、全員にPochippの修正版が提供されたことをお知らせ、同時に最終の復旧手順もお知らせして完全復旧していただいた。
私はただ情報提供しただけですが、まったく未知のことから当日中に完全解決(修正版が提供された)できたことは、間違いなくPochipp開発者のひろさんのご尽力のおかげです。