WordPressのトラブルシューティングとして、カスタマイズの際に起こる画面が真っ白になる[Fatal error]が起きた時の対処法の解説をしていきたいと思います。
この記事は、現在この瞬間エラーでバグが出ている人ももちろんそうですが、まだエラーが出ていないがあまりウェブに自信のない初心者の方にも是非覚えておいてもらいたい記事となります。
そんな前置きはともかく、現在進行形で、今まさにエラー・バグが出ているという人もいると思います。その方にまずお伝えしたい最重要な事があります。
それは、「まずは落ち着きましょう」という事です。これはとてもありふれた話かもしれませんが、本当に重要です。
今サイトに[Fatal error]が起きているのであれば、あなたが焦っても焦らなくても、急いでも急がなくても、サイトのエラーが解消する事は絶対にありません。一度サイトのエラーが出てしまったのであれば、日にち薬というものはなく、問答無用でなんらかの処置を行わなければ直る事はありません。
ですので、一度本当に落ち着きましょう。クライアント様がいる場合は、落ち着いて連絡しましょう。「今、原因不明のシステムトラブルがおきました。原因追求中ですので、お待ちください」と伝えましょう。
クライアント様にバレる前に何とかしようとすると、焦って冷静な判断ができなくなる可能性があります。うまくいけばもちろんいいですが、舵の取り方次第では本当に悲惨な事になります。ですので、最悪の自体になる前に潔く現状を報告する方が良いと思います。
第一にやってはいけない事ですが、もしFTPツールを経由しテキストエディタ(ここではあえて、サブライムテキストと言っておきましょう)などを使ってコードの書き換え・修正を行っていた際にエラーが起きたのであれば、絶対にcommand+[ w ]などを押して、サブライムテキスト(FTPツールも含む)などを閉じてはいけません。
詳しくは以降でお伝えしますが、現在進行系でエラーの人は、まずは一旦落ち着いてこのブログの記事を読む事に集中してください。
そして、その次にやってはいけない事は、試行錯誤してあーだこーだとコードを触ってみだす事です。これも絶対やってはいけません。
また、今回の記事は、具体例を用いて解説している動画版もありますので、落ち着いてそちらをみてもらう事をおすすめ致します。
「まだ、エラー・バグが出ていない人」で、かつ、ウェブ初心者の方や勉強として知っておきたいとこの記事を読んでいる方は、上記の「今現在エラー・バグが出ている人」の対応をきちんと頭に入れておくようにしましょう。そして、そういった人に余裕のある時にこそ、見ておいていただきたい記事内容になります。
[Fatal error]の症状とは?
それでは、この画面が真っ白になる[Fatal error]の現象とは、そもそもどういった事でしょうか?
[Fatal error]とは、致命的なエラーという意味になり、WordPressのブログ機能が正常に動かない最悪のエラーになります。
シンタックスエラーという、文法が間違えているという指摘のエラーもありますが、こちらも同様にまずいエラーに繋がる事がほとんどですので、同様に警戒・対応しましょう。
[Fatal error]になると、完全に画面が真っ白になったり、以下のような注意文章が挿入されたり、一面に出されることがあります。
Fatal error: Uncaught Error: Call to undefined function function_exits() in /home/servername/dsbridge.work/public_html/wp-content/themes/twentytwentyone/functions.php:17 Stack trace: #0 /home/servername/dsbridge.work/public_html/wp-settings.php(528):以下省略
このように、正常にブログ機能を果たさない場合の事を[Fatal error]といいます。
このエラーが起きた際は、それを検知してこの自動的にメールでお知らせする機能がWordPressにはありますので、登録しているメールアドレスに以下のようなメールがきたりもします。ですので、クライアント様に黙っていてもすぐにバレてしまう可能性はありますね。
あなたのサイトで技術的な問題が発生しています
WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。
今回の場合、WordPress がテーマ Twenty Twenty-One でエラーを捉えました。以下、省略
[Fatal error]が起こる理由
ただ、上記のような[Fatal error]は、普通に記事投稿だけで触っているだけなのであれば99%なる事はないと思います。
では、どのような場合に[Fatal error]になるかというと、カスタマイズをしている時に遭遇する事になります。
[Fatal error]の代表的な原因は以下の通りです。
- phpファイルの誤字脱字
- キャッシュ系プラグインの導入
- 「htaccces」「functions.php」の書き換え
phpファイルの誤字脱字
phpファイルというのは、「single.php」などのような、「何とかドットphp」となっているファイルの事を指し、「誤字脱字」に関しては、そのファイル内で起こる文字通りの意味になります。
htmlやcssのコーディングに関しては、ある程度の誤字脱字は大きなエラーにならず寛大に対応してくれる事があります。
しかし、プログラミング系のコード(phpファイルなど)の誤字脱字はかなりシビアにジャッジされます。誤字はもちろん、半角全角スペースの違いや改行など、とにかくたった1つの文字・工程でも間違えてしまうと、エラーになり、真っ白が登場する事があります。
キャッシュ系プラグインの導入
プラグインの導入でもエラーが出る事があります。
どんなプラグインでもエラー引き起こす可能性はありますが、特にエラーを引き起こしやすいのは、キャッシュ系プラグインです。
キャッシュ系プラグインという表現にピンとこない方は、「WordPress キャッシュ系プラグイン」で調べてみてください。
キャッシュ系プラグインとは、主にSEO対策の為に導入するプラグインになるのですが、なんせこのプラグインには一癖あります。それも厄介な事に、一概に「この何々というプラグインはダメだよ!」というのではなく、あなたの使用しているテーマや環境(サーバーなど)では、このプラグインを導入する事でエラーが出ますよ、とケースバイケースになるのです。
「htaccces」「functions.php」の書き換え
「htaccces」「functions.php」の書き換えなどは、特に[Fatal error]に巻き込まれる事が多く、編集時には緊張が走ります。
これらのページには、ワードプレスの表面ではなく、システムのコードが書かれている部分ですので、失敗すると一瞬でエラーに繋がります。もちろん、他のphp系ファイルの変更でも余裕で巻き込まれますので油断は禁物です。
「htaccces」「functions.php」のオリジナルでの書き換えに関しては、かなり上級者の知識が必要になりますので、初心者はもちろん、中級者レベルの方でも、基本的にはネットからのコピペでカスタマイズ対応することがほとんどだと思います。ですので、何をしているかも理解せずやる事になりますので、慎重に操作していきましょう。
対策方法
では、[Fatal error]が起きてしまった時の主な対策方法を紹介していきます。
- ラインを見る
- 文字をコピペする
- command+[ z ]で戻る
- 復元する
ただ、起きてしまう前に、まずは必ずバックアップをとるという習慣をつけておきましょう。
バックアップをとる
データのバックアップを取るというのは、ウェブメンテナンス作業などでは基本中の基本の動作になります。
しかし、おそらく初心者の方で、「バックアップバックアップって聞くけど、どこのボタンを押したらそんなんできるんだ!」って、思われる方もいるかもしれません。そうです。基本的には、バックアップボタンなんてものはありません。ですので、「自分自身で元に戻す環境を用意する」という事が、バックアップをとるという意味になります。
以下で、代表的なバックアップ方法を2つ紹介します。
バックアップの方法1(プラグイン)
1つは、プラグインを使う方法です。WordPressにはバックアッププラグインというのが何個かありますので、そちらを利用します。
しかし、過去の経験上、バックアッププラグインではファイル状況が可視化がされず、きちんとファイルが存在しているのかがわかりづらいので、非常に不安な面もあります。ですので、バックアップにプラグインを利用するのは個人的にはあまりおすすめしません。
いざ、バックアップが必要になった時に、必要なデータが取れてなかったら目も当てれませんからね。
バックアップの方法2(FTP経由)
2つ目の方法、FTPツールを使ったバックアップ方法で、個人的にはこちらをおすすめしたいと思います。
FTPツールの利用というのは、初心者の方にはとっつきにくいところはあるかもしれませんが、ウェブ制作を本格的にやっていくのであれば、勉強になる事も多いのでおすすめします。
無料のおすすめFTPクライアントソフトCyberduck(サイバーダック)のインストール方法から初期設定・使い方[MAC]
続きを見る
FTPツールを利用するやり方としては、主に「指定の場所にファイルをダウンロードする」という方法になります。
具体的な操作に関しては、全体的にややこしいところもあると思いますので、特に初心者の方は、解説動画の方で確認してもらうのがいいと思います。
ラインを見る(参考程度)
[Fatal error]が出ると、どの箇所でエラーが発生しているかというのが、実は表示されています。また、WordPressに登録しているメールにもエラー報告がきて、具体的な場所が書かれています。
/home/yourdomain/dsbridge.work/public_html/wp-content/themes/twentytwentyone/functions.php on line 17
このサイトで重大なエラーが発生しました。
エラータイプ E_ERROR が /home/yourdomain/dsbridge.work/public_html/wp-content/themes/twentytwentyone/functions.php ファイルの 17 行目で発生しました。
上記を見ると、とても具体的な指摘にはなるのですが、実際に扱うのはあくまでプログラミングコードですので、指定されたエラー箇所と直すべき箇所がずれるということがあります。
ですので、ある程度どのあたりのところで起こっているという検討の目安にはなりますが、100%の原因特定になる訳ではないので、参考程度で利用しましょう。もちろん、こちらからのヒントを得て解決できる事はあります。
文字を読む(参考程度)
上記で説明したように、全然触っていなかった、心当たりのないエラー箇所が指摘される時もあります。
そんな時は、エラー報告の文章を頑張って読みましょう。時には、適当な箇所をピックアップしてウェブ検索してみましょう。
Fatal error: Uncaught Error: Call to undefined function function_exits() in
上記のエラー報告では、「何やらfunction function_exits()というあたりが怪しい」と読み取る事ができます。ですので、そのあたりを狙って原因を追求するのは非常に有効だと思います。
時には、「function function_exits()」というのを検索ボックスに入れるのも有効だと思います。もちろん、その文字だけでも検索できますが、日本語が入っていないと海外情報がメインで出てきますので、検索ワードに適当な日本語を付け加えるようにしてみてもいいと思います。
command+[ z ]で戻る
そして、今回の記事で最も伝えたいのこの部分になります。
command+[ z ]で落ち着いて戻る、これがすごく重要です。
プログラミングのエラー。特に誤字脱字に関しては、必ず何かをやってしまったからエラーが起きているのです。ですので、逆にいうと、元の状態に戻すと必ず直ります。それはもう、絶対に直ります。
ですので、落ち着いて、command+[ z ]で元の状態に戻って、上書き保存できさえすれば確実に直ります。逆に言うと、エラーが出てしまった時に慌ててコードを消してしまったり、あーだこーだと試行錯誤を実践してしまうことです。こうなると、command+[ z ]で元に戻す事ができなくなってしまいます。
エラーが出た時に絶対にやるべき事は、慌てず、編集画面を閉じずに、command+[ z ]で戻る事です。
単純な事ですが、これが一瞬の真っ白画面で、冷静な判断が持っていかれてしまうのです。絶対に忘れないでおきましょう。PCの前に貼っておいてもいいくらいです。なにせ焦らない事ですね。
ここに関しても文章だけですとわかりづらいので、解説動画がわかりやすいと思います。
データを復元する
上記をやってみても直らなかった。そんな事もあるでしょう(とは言っても、基本的には元に戻せば直りますが…)。そんな時は、バックアップからデータを完全に復元させるという方法があります。
前述していたように、バックアップというのは自分で復元できる環境を用意するものです。
ですので、バックアップさえあれば、FTPでファイル操作し、エラーの起こっているファイルとバックアップデータを入れ替えればOKです。
部分的な復元でいいのか、全体を通してまとめてごっそり入れ替える必要があるのか(ここのニュアンスは動画で確認してください>< 動画時間32:28頃)は、場合にもよります。
しかし、まとめて復元する際は、どうしようもない方向に向かう危険性も伴いますので、それはあくまで最終手段として考え、できるだけ部分的な復元で対応できるようにする事をおすすめします。
ざっくりとお話ししますが、WordPressは主に、データファイルとデータベース(ファイル)から成り立っています。しかし、FTPソフトでは、データファイルのバックアップしか取れませんので、データファイルだけのバックアップだけでは完全なデータという訳ではないのです。ですので、データベースのバックアップも取っておき、上手い事絡み合わなければ、例えデータファイルだけがあったとしてもうまく復元はできません。
WordPressの警告メールを利用
WordPressでエラーが起こると、以下のようなメールがきます。その中で、救済措置としてリカバリーモードのリンクが貼られているので、そちらをチェックしてみるのも良いでしょう。
こんにちは。
WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。(中略)
もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別な「リカバリーモード」があります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。
http://dsbridge.work/wp-login.php?action=enter_recovery_mode&rm_token=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
サイトを安全に保つため、このリンクは 1日 で有効期限が切れます。ですが、心配なく。有効期限後にこのエラーが再度発生すれば新しいリンクをお送りします。
リカバリーモードに関して詳しく調べたかったのですが、検証中、エラーのメールが何故か届かなくなりましたので、今回はスルーとさせていただきます。
ネット記事から察するに、ダッシュボードなどにログインすらできなくなった時などは、強制的にログインできるようになり、問題箇所のテーマを変更したり、プラグインを削除したりして対処する事ができるようになる感じでした。
困っている際は、こちらを頼るのも全然ありですが、エラー通知メールがそもそも来なければリカバリーへのアクセスもできませんので、その点だけ要注意です。
復元ファイルがない
あれだけ言っていたにも関わらず、中には「バックアップを取り忘れた!」なんて人も結構いると思います。責めるつもりはありません。私もそんな一人です。何度もやらかしております。
「たった数行変更するだけだ」と、勢いでやってみれば、[Fatal error]発生!でも、こうなってからでは遅いんです。本当に。
ですので、バックアップをとるというのは基本動作として、本当に心しておきましょう。
しかし、そんな私のような人の為に、レンタルサーバーには自動バックアップ機能というものが搭載されているものもあります。
私は、エックスサーバーを利用していますが、エックスサーバーにもこの自動バックアップ機能というのがあります。
自動バックアップ機能というのは、サーバー上のデータ(ウェブデータ+データベース通称MySQL)を1日1回自動でバックアップしてくれる事です。
もし、前日以降の元データが欲しい場合は、この復元データを利用する事ができます。このフォローシステムは非常に大きいですので、サーバー選びの際はこの機能を必ず重要視した方が良いでしょう。
エックスサーバーでのデータの復元方法
エックスサーバーの自動バックアップファイルを利用してデータを復元するやり方は、ざっくりと、以下のような感じです。
エックスサーバーのサーバーパネルの「アカウント」→「バックアップ」から「自動バックアップデータ取得・復元」というタブがあり、そこから日付と復元したいドメインを取得請求をすれば、指示されたリンクアドレス内にバックアップファイルが生成されます。
詳しくは、解説動画で確認してもらうとわかりやすいと思います。
しかし、前述していた通り、ブログシステムにデータベースは必須であり、これだけでは完全復元データとしては不十分です。
ですので、データベースごと完全復活させたい場合は、「データベース」の「MySQLバックアップ」を行ってから、「MySQL復元」作業をする事になります。
もちろん、データベースを復元せずとも、上記のバックアップデータのみで復元できる事も大いにありますので、じっくり落ち着いて作業していきましょう。データベースを触らずにいけるに越した事はありませんからね。
ただ、これらの作業はかなり慎重に行うべきものですので、エックスサーバーであれば有人オペレーターの電話対応(ある程度は教えてくれると思います)もありますので、落ち着いてデータの復元方法を教えてもらう方がいいと思います。とは言っても、その際にもある程度の知識は必要で、手取り足取り操作してくれる訳ではありませんので、そのつもりで電話しましょう。
もしくは、ゆっくりとウェブ検索し、エックスサーバーでのバックアップ復元方法を調べて、理解した上で実践していくといいでしょう。
この自動バックアップシステムは非常に重宝しますので、私がエックスサーバーを推す理由の一つでもあります。もし、サーバー選びに悩んでいるのであればエックスサーバーをおすすめ致します。
レンタルサーバーとは?XSERVERをおすすめする理由と導入方法[画像解説]
続きを見る
最後に
いかがでしょうか?
WordPressのカスタマイズの際に、画面が真っ白になる[Fatal error]に遭遇すると、それはもう本当に一瞬で髪の毛がどさっと抜ける落ちるような、胃がひっくりかえるような強烈なストレスを感じます。
そんな時に、落ち着いて対応できるよう、根本的な「何故、そのような事が起こったか」「どの箇所で起こったか」など、それらを冷静に分析・対応できる前知識というのは、必須だと思いましたので、自分の経験からも感じた注意点と対処方法を紹介してきました。
特に、エラーが起きたときの初動対応は非常に重要ですので、わかり易く動画でも解説しておりますので、併せて確認し、事前準備をしておく事をおすすめ致します。