「WordPress が起動しないんです!」
そんな声がサポートチャットから時折聞こえていきます。
いつもは起動できていた WordPress が今日に限って起動できない。記事の更新が控えているのに。ブラウザのキャッシュの削除をしても, Shifter ダッシュボードの再ログインを試しても,どうしても WordPress が起動しない。
これは焦ります。
仮に自分に起っても「ウッソ,マジかよ」と独り言ちること請け合いです。
そんなときの対応方法を Shifter Advent Calendar 2020 3日目の本日ご紹介します。
1. お茶を飲む
一服しましょう。水分は大事です。この時期は空気が乾燥していますから特に。古事記にもそう書いてあります。
2. PHP のエラーログを確認し,対処をする
先日、Shifter ダッシュボードに PHP のエラーレポート機能がリリースされ,直近で発生した PHP のエラーログのレポートを見られるようになりました。
これによって何がエラーとなっているのか,そしてエラーの種類や深刻度 (deprecated, pserse, notice, warning, error) が Shifter ダッシュボード上で確認できるようになりました。
以前はサポートに問い合わせてエラーログを提供してもらう対応になっていたのですけれど,エラーをダッシュボード上で確認できるようになったことで,夜中に発生してもサポートの返事を待つ必要 やサポートが眠い目をこすって対応する事がなくなりました。やったね。
エラーの確認方法
確認したいサイトの Overview 内で直近のエラーを確認できます。
サイト名からして怪しいですね。
Warning が25個出ています。[View Error Logs] をクリックすると詳細が表示されます。
PHP Error Reporting エラーの詳細です。wp-content/plugins/code-snippets
というプラグインがエラーを引き起こしていると分かります。
詳細は直近3日間、50個まで表示されます。
対処方法
エラーを確認できたら対処をしましょう。
初手に行う作業は概ね次の3つに分かれます:
- A. WordPress のダッシュボード内で設定を変更する
- B. WordPress のダッシュボード内で無効化する
- C. Safe mode を使って無効化した状態で WordPress を起動する
Using Shifter Safe Mode | Shifter Documentation
最初の2つは WordPress の起動とログインができる時に用いる方法です。WordPress が起動できる程度のエラーであればこれで対応できるでしょう。3つ目は WordPress が起動できない場合や,他のプラグインやテーマのコンフリクトが起ってしまっているようなときに1つずつ確かめていく場合に用います。
エラーが出ていれば Shifter ダッシュボードで PHP Error Reporting のエラーが更新されるので WordPress を起動している間は時折見ておくといいでしょう。
今回は warning なので一度 WordPress を起動してプラグインの設定を見てみましょう
WordPress のダッシュボード内で設定を変更する
WordPress を起動してダッシュボードへログインし
Code Snippets プラグインの設定: Snippets をクリックする
有効化済みの Snippet が1つしかないのでこの設定を見ていきます。
名前からして怪しい。
trigger_error
が仕込まれていました。
PHP: trigger_error – Manual
該当行を削除するか設定自体を無効化すれば解消しそうです。
おめでとう。無効化後からエラーが無くなりました。
他にエラーが無ければ generate をして対応完了です。
WordPress のダッシュボード内で無効化する
WordPress のトラブルシュートの定石の1つです。
エラーの出ているプラグインがあって,«このプラグインは使わなくていいかな» と思ったら一旦無効化をして様子を見てください。無くても問題なさそうなら削除をしましょう。
必要な場合はアップデートを実施して解消するかを確認してみてください。アップデートしても解消しない場合は自身で修正するなり代替を探す旅路に出るなりという決断が必要です。
Safe mode を使ってプラグイン・テーマを無効化した状態で WordPress を起動する
Fatal エラー などの場合,そもそも WordPress が起動しないケースが多いため,他のプラグインも含めて一旦全て無効化して起動するかを確認してみてください。
Using Shifter Safe Mode | Shifter Documentation
エラーの出ているファイルやその箇所は判明しているので,ローカル環境でのデバッグと修正を行い,Shifter 内の WordPress へ反映させてください。
[修正したプラグインやテーマを zip に圧縮して WordPress の管理画面でアップロードすれば更新できます。
- Shifter-LocalでWordPressテーマ開発環境を作る – わーどぷれすっ!!
- Shifter Github Plugin/Theme Installer を使って自作テーマ・プラグインをアップデートしよう #JP_Getshifter | Gatespace’s Blog
Fatal エラーは特に Shifter へサイトのマイグレーションをしている際に発生する傾向がみられます。移行元サーバの PHP のバージョンが 5系だったり,プラグインが古く PHP 7 に未対応だったりなど,All-in-One WP Migration がプラグインを有効化していく処理で発生しているようです。
マイグレーションの場合は移行元のサイトからデータをダウンロードする時点で Troubleshooting while migrating with All-in-One WP Migration plugin | Shifter Documentation でも解説されているとおり,次のように分けた方がいいです。
特に WordPress.org プラグインディレクトリに掲載されているプラグインはデータベースのマイグレーション後にWordPress の管理画面から最新版をインストールした方がいいでしょう。
- データベースとWordPress のコアファイルのみ
- テーマファイルのみ
- プラグインのみ
3. サポートに相談してみる
プラグインやテーマがエラーを起こしている場合は 2 の PHP のエラーログを確認し,対処をする を行っていただければ自力で解決できると思います。不安な場合は Site ID, Artifact ID, エラーログなどを添えて右下から相談してみてください。
PHP のエラーはないけど WordPress が起動しないなーという場合は別の対応が必要かもしれないので,Site ID, Artifact ID や WordPress の起動状況 (finalizing で止まっている,initialzing のままだ,など) を添えて右下から相談してみてください。
それではよい Shifter 生活をお送りください。