WordPressで「Fatal error: require(): Failed opening required」と表示されるとき

WordPressで「Fatal error: require(): Failed opening required」のようなメッセージが表示されることがあります。真面目に解釈すると難しそうなエラーメッセージですが、ほとんどの原因は単純な入力ミスです。以下、よくある原因と対処法を紹介します。

「Fatal error: require(): Failed opening required」が発生!
「Fatal error: require(): Failed opening required」が発生!

「Fatal error: require(): Failed opening required」の意味

「Fatal error: require(): Failed opening required … 」は直訳すると「requireという命令で重大なエラーが発生しました。原因は…のファイルを開くのに失敗したことです」となります。

目的のファイルを開けなかったということです。エラーレベルが重大(Fatal error)なので処理を続行できず、結果として、画面が真っ白(HTTP 500 エラー)になります。

エラーメッセージを真剣に解釈しない方が良い

ざっと解釈するとこんな感じですが、WordPressを使い始めたばかりでPHPに慣れていない方はエラーメッセージの意味を深追いして真剣に解釈しようと思わないことです。

「なぜファイルが開けない?」「ファイルがあるかどうか調べるにはFTPが必要?」「そんなファイル、ないけど」などなど次から次へと疑問がわいてきて時間ばかりが過ぎていきます。

むしろ、トラブル対応のノウハウとして「ほとんどのエラーは単純な入力ミス」だと割り切ってエラーの原因になっているファイルをもう一度見直してみましょう。

エラーの原因になっているファイル名はFatal errorの最後に書いてあります。この例ではWordPressインストール先にあるindex.phpが原因だとわかります。

エラーの原因はindex.php
エラーの原因はindex.php

最後に「line 17」のように行番号が書いてありますが、行番号は参考程度にとどめてください。必ずしもその行に問題があるとは限らないので、この行番号ばかりに注目していると問題が特定できなくなります。

とにかく、エラーの原因のほとんどは入力ミスなので、自分で思い当たる入力した箇所をもう一度見直してみましょう。

index.phpは「Failed opening required」が起きやすい

この例で紹介したindex.phpはWordPress初心者の方も編集することがあったりするので、入力ミスが起きやすく、「Fatal error: require(): Failed opening required」が起きやすい要注意ファイルです

実際、WordPress個別サポートで相談を受けてトラブル対応してみたところindex.phpの入力ミスが原因だったことも少なくありません。典型的な入力ミスの例を紹介します。

ドットを付けてエラーに

たとえば、現在のindex.phpの最後の行は次のようになっているとします。

require( dirname( __FILE__ ) . '/wp-blog-header.php' );

ここに「wp1」というフォルダ名を追加する場合、正しい書き方は次のようになります。

「wp1」フォルダを追加するときの正しい書き方

require( dirname( __FILE__ ) . '/wp1/wp-blog-header.php' );

難しい作業ではありませんが、ネット検索した手順によっては説明が間違っていたり古いバージョンの手順だったりして、次のように「/wp1」の前に「.」を付けてしまうことがあります。

「.」を付けただけでエラーになる

require( dirname( __FILE__ ) . './wp1/wp-blog-header.php' );

このように「.」を付けただけで「Fatal error: require(): Failed opening required …」になります。本来参照すべきファイルのURL(パス)が間違ってしまうからです。

全角の「’」でエラーに

index.phpのパスに「/wp1」を付けるだけの作業ですが、いろいろ編集しているうちに「'」(シングルクォーテーション)を触ってしまうことがあります。慣れていれば半角の「'」と入力すべきだとわかりますが、次のように全角の「’」を入力してしまうかもしれません。

require( dirname( __FILE__ ) . ’/wp1/wp-blog-header.php’ );

紛らわしいので間違いに気づかないかもしれませんが、これでアップすると、「Fatal error: require(): Failed opening required …」になります。正しくは全角の「’」ではなく半角の「'」です。本当に紛らわしく相談が多いのでご注意ください。

まとめ

「Fatal error: require(): Failed opening required …」はindex.phpなどの編集時によくあるエラーです。エラーメッセージの意味を解釈しようとすると難解に思えますが、ファイル名(パス)の入力ミスで起きることがほとんどです。このエラーメッセージを見たら深く考えず、原因になっているファイルをもう一度見直してみましょう。

WordPressトラブル