wordpress 「現在メンテナンス中のため、しばらくの間ご利用いただけません」からの「サイトに重大なエラーがありました」が出てサイトが見れなくなった時の対処法

wordpress サイトに重大なエラー ブログ

ワードプレスで普段は1つずつプラグインをアップデートしたりしているんですが、たまたま面倒だからと、まとめて更新しちゃえと思いすべてにチェックして更新。

なんか動いている感がないので「Enter押し忘れたかな?」と思い、再度「更新」ボタンを押したら「現在メンテナンス中のため、しばらくの間ご利用いただけません」が表示。

当然、管理画面だけでなくサイトも表示されなくなり・・・

スポンサーリンク

1.動いている(更新している)かわからない場合はしばらく放置すべし

ホントこれに尽きます。WordPressのプロセス(PHP)Killしちゃいました、自分。何か反応が返ってくるまで待てないとは、コロナで家に籠りがちでストレス溜まっていたのかもしれません・・・

そんなことより、解決しなければせっかく数百アクセス/日になってきたのに自分で駄目にしそうです。

2. まずはFTPクライアントなどで、wordpressのサイトに入り.maintenanceファイルを削除する

wordpress 現在メンテナンス中のため、しばらくの間ご利用いただけません

WordPressは更新などしている時は一時的に.maintenanceファイルを作るようです。
これを削除することで「メンテナンスモードではなく通常モードですよ」となる模様。

FTPクライアントなどで接続し、.付きの隠しファイルも表示するようにして、.maintenanceファイルを削除しましょう。

但し、通常モードにしたところで、メンテナンスモードになっているということは、何かしら処理しているわけで。

その何かが終わっていないのに、通常モードにすると、今度はまた大変なエラーが出てきます。

3. 「サイトに重大なエラーがありました」が出たら

wordpress サイトに重大なエラーがありました

これが出てきたらかなりきついです。自分の場合はプラグイン更新途中でそのプロセスを、再度更新ボタンを押すことでkillして途中で強制終了させたためになりました。

3.1 wp-config.phpのWP_DEBUG, falseからtrueに変更

まずDEBUGモードをtrueにします。wp-config.php 75行目あたり。

define(‘WP_DEBUG’, false); のfalseをtrueに変更

これで、エラーやワーニングメッセージが表示されるようになり、どこでどうしてつまづいているかがわかります。

3.2 サイト/wp-adminやサイトにアクセスしたらメッセージが出る

PHPのエラーメッセージが出ているはずです。
今回は途中で切ったので、プラグインのファイルが存在しない為require(…php)がないよ!と。
下記のようなメッセージ。

 require(): Failed opening required '/var/xxx/wp-content/plugins/xxx/vendor/composer/../symfony/polyfill-mbstring/bootstrap.php' (include_path='/var/xxx/wp-content/plugins/xxx/vendor/pear...

3.3 プラグインが原因っぽいなら、plugin/ディレクトリのフォルダ名を変えてなかったことにする

wordpressはデータベースにプラグインの情報が入っていますが、実際のフォルダが存在しないと無視するようになっています。

例えばcontact-form-7 フォルダの名前を変更してみてください。
conttttとかにして、サイト見るとデータベースにはプラグイン情報がありますが、実フォルダ・ファイルがないのでスルーされます。

なので、プラグインで重大なエラーになっているなら、まずwp-content/plugins/プラグインフォルダ名 を変更しましょう。

3.3.1 管理画面->プラグイン->新規追加で原因となったプラグインを再度インストール

再度インストールすると、正しく動くプラグインがインストールされます。
プラグインページには同じプラグインが2つあるようになりますが、問題ないです。

ちなみにデータベースにプラグイン設定情報を残している場合には、まず同じプラグインを入れて、元々入っていたプラグイン(プラグインでwordpressが壊れたならメンテナンスの為に無効化になっているはず)を削除すれば、設定をうまく引き継がれると思います。

4. WordPress 5.2からはメールでお知らせしてくれる

WordPress5.2以上になると、致命的なエラーが起きた時に、原因も書いたメールを送ってくれます。以下、メールの内容

こんにちは。 WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。 今回の場合、WordPress がプラグイン XXXX でエラーを捉えました。 まずはじめに、ご自分のサイト (https://xxx.xx/ ) を開き、目に見える問題がないか確認してください。次に、エラーが発生したページ (https://xxx.xx/wp-admin/ ) を開き、同様に問題がないか確認してください。 この問題をさらに調査するにはサーバーホストに連絡してみてください。 もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別な「リカバリーモード」があります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。
https://xxx.xx/wp-login.php?action=enter_recovery_mode&rm_token=xxxxxx&rm_key=xxxxx
サイトを安全に保つため、このリンクは 1日 で有効期限が切れます。ですが、心配なく。有効期限後にこのエラーが再度発生すれば新しいリンクをお送りします。 この問題を解決しようとする際、以下の情報を聞かれるかもしれません。 WordPress バーション5.3.2 現在のテーマ: xxx (バージョン x.x) 現在のプラグイン: xxx (バージョン x.x) PHP バージョン7.3 エラー詳細 =============== エラータイプ E_COMPILE_ERROR が /var/xxx/wp-content/plugins/xxx/vendor/composer/autoload_real.php ファイルの 70 行目で発生しました。 エラーメッセージ: require(): Failed opening required ‘/var/xxx/wp-content/plugins/xxx/vendor/composer/../symfony/polyfill-mbstring/bootstrap.php’ (include_path=’/var/xxx/wp-content/plugins/xxx/vendor/pear/archive_tar:/var/xxx/wp-content/plugins/xxx/vendor/pear/console_getopt:/var/xxx/wp-content/plugins/xxx/vendor/pear/pear-core-minimal/src:/var/xxx/wp-content/plugins/xxx/vendor/pear/pear_exception:.:/usr/local/php7′) [/text]

5. 結論 更新作業は慎重に

せっかちな性格が駄目でした。
プラグインの更新は単体でもそれなりに時間がかかった記憶があるので、×更新プラグイン数以上はゆっくり待とうと思います。

コメント

タイトルとURLをコピーしました