Word­Press の起動不能と PHP エラーとそのログと

「Word­Press が起動しないんです!」

そんな声がサポートチャットから時折聞こえていきます。
いつもは起動できていた Word­Press が今日に限って起動できない。記事の更新が控えているのに。ブラウザのキャッシュの削除をしても, Shifter ダッシュボードの再ログインを試しても,どうしても Word­Press が起動しない。
これは焦ります。

仮に自分に起っても「ウッソ,マジかよ」と独り言ちること請け合いです。
そんなときの対応方法を Shifter Advent Cal­en­dar 2020 3日目の本日ご紹介します。

1. お茶を飲む

一服しましょう。水分は大事です。この時期は空気が乾燥していますから特に。古事記にもそう書いてあります。

2. PHP のエラーログを確認し,対処をする

先日、Shifter ダッシュボードに PHP のエラーレポート機能がリリースされ,直近で発生した PHP のエラーログのレポートを見られるようになりました。

これによって何がエラーとなっているのか,そしてエラーの種類や深刻度 (deprec­ated, pserse, notice, warn­ing, error) が Shifter ダッシュボード上で確認できるようになりました。
以前はサポートに問い合わせてエラーログを提供してもらう対応になっていたのですけれど,エラーをダッシュボード上で確認できるようになったことで,夜中に発生してもサポートの返事を待つ必要 やサポートが眠い目をこすって対応する事がなくなりました。やったね。

エラーの確認方法

確認したいサイトの Over­view 内で直近のエラーを確認できます。

サイト名からして怪しいですね。
Warn­ing が25個出ています。[View Error Logs] をクリックすると詳細が表示されます。

PHP Error Report­ing エラーの詳細です。
wp-content/plugins/code-snippets というプラグインがエラーを引き起こしていると分かります。
詳細は直近3日間、50個まで表示されます。

対処方法

エラーを確認できたら対処をしましょう。
初手に行う作業は概ね次の3つに分かれます:

  • A. Word­Press のダッシュボード内で設定を変更する
  • B. Word­Press のダッシュボード内で無効化する
  • C. Safe mode を使って無効化した状態で Word­Press を起動する
    Using Shifter Safe Mode | Shifter Documentation

最初の2つは Word­Press の起動とログインができる時に用いる方法です。WordPress が起動できる程度のエラーであればこれで対応できるでしょう。3つ目は Word­Press が起動できない場合や,他のプラグインやテーマのコンフリクトが起ってしまっているようなときに1つずつ確かめていく場合に用います。
エラーが出ていれば Shifter ダッシュボードで PHP Error Report­ing のエラーが更新されるので Word­Press を起動している間は時折見ておくといいでしょう。

今回は warn­ing なので一度 Word­Press を起動してプラグインの設定を見てみましょう

Word­Press のダッシュボード内で設定を変更する

Word­Press を起動してダッシュボードへログインし

Code Snip­pets プラグインの設定: Snip­pets をクリックする

有効化済みの Snip­pet が1つしかないのでこの設定を見ていきます。
名前からして怪しい。

trigger_error が仕込まれていました。
PHP: trigger_error – Manual

該当行を削除するか設定自体を無効化すれば解消しそうです。

おめでとう。無効化後からエラーが無くなりました。
他にエラーが無ければ gen­er­ate をして対応完了です。

Word­Press のダッシュボード内で無効化する

Word­Press のトラブルシュートの定石の1つです。
エラーの出ているプラグインがあって,«このプラグインは使わなくていいかな» と思ったら一旦無効化をして様子を見てください。無くても問題なさそうなら削除をしましょう。
必要な場合はアップデートを実施して解消するかを確認してみてください。アップデートしても解消しない場合は自身で修正するなり代替を探す旅路に出るなりという決断が必要です。

Safe mode を使ってプラグイン・テーマを無効化した状態で Word­Press を起動する

Fatal エラー などの場合,そもそも Word­Press が起動しないケースが多いため,他のプラグインも含めて一旦全て無効化して起動するかを確認してみてください。
Using Shifter Safe Mode | Shifter Doc­u­ment­a­tion
エラーの出ているファイルやその箇所は判明しているので,ローカル環境でのデバッグと修正を行い,Shifter 内の Word­Press へ反映させてください。
[修正したプラグインやテーマを zip に圧縮して Word­Press の管理画面でアップロードすれば更新できます

Fatal エラーは特に Shifter へサイトのマイグレーションをしている際に発生する傾向がみられます。移行元サーバの PHP のバージョンが 5系だったり,プラグインが古く PHP 7 に未対応だったりなど,All-in-One WP Migra­tion がプラグインを有効化していく処理で発生しているようです。
マイグレーションの場合は移行元のサイトからデータをダウンロードする時点で Troubleshoot­ing while migrat­ing with All-in-One WP Migra­tion plu­gin | Shifter Doc­u­ment­a­tion でも解説されているとおり,次のように分けた方がいいです。

特に WordPress.org プラグインディレクトリに掲載されているプラグインはデータベースのマイグレーション後に­Word­Press の管理画面から最新版をインストールした方がいいでしょう。

  • データベースと­Word­Press のコアファイルのみ
  • テーマファイルのみ
  • プラグインのみ

3. サポートに相談してみる

プラグインやテーマがエラーを起こしている場合は 2 の PHP のエラーログを確認し,対処をする を行っていただければ自力で解決できると思います。不安な場合は Site ID, Arti­fact ID, エラーログなどを添えて右下から相談してみてください。

PHP のエラーはないけど Word­Press が起動しないなーという場合は別の対応が必要かもしれないので,Site ID, Arti­fact ID や Word­Press の起動状況 (final­iz­ing で止まっている,initialzing のままだ,など) を添えて右下から相談してみてください。

それではよい Shifter 生活をお送りください。

Search by

aka Written by: