フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【PHPエラー】Warning: require(XXX): Failed to open stream…の原因と解決方法

PHPエラー
Warning: require(XXX): Failed to open stream...
バグ解決
プログラムエラー
解決方法

PHPはWebサイトを構築する際に使用されるプログラミング言語です。
PHPでは何かしら不具合があると処理を止めて英語でエラー文章を表示します。
プログラマはブラウザに表示されているエラー文章を手掛かりに原因となるプログラムエラーを修正します。
この記事ではそんなPHPのプログラムエラーの中でも時々見かけるWarning: require(XXX): Failed to open stream...の原因と解決方法をご紹介したいと思います。

Warning: require(XXX): Failed to open stream…が発生する原因

まず始めに、このエラー文章はrequire()関数、require_once()関数を使ってファイルを読み込もうとした際に発生します。
また、include()関数やinclude_once()関数を使ってファイルを読み込もうとした際は、似たエラー文章でWarning: include(XXX): Failed to open stream...と表示されますが、これも原因と解決方法は同じです。

それでは実際にWarning: require(XXX): Failed to open stream...がどんなふうにエラー文章が表示されるか見てみましょう。

Warning: require(●●●): Failed to open stream: No such file or directory in ■■■ on line ▲▲▲

もしくは

Warning: require(●●●): Failed to open stream: Permission denied in ■■■ on line ▲▲▲

このようにエラー文章が表示されます。

Warning: require(XXX): Failed to open stream...は大きく分けると2通りのエラー文章のうち、どちらかが表示されます。

エラー文章の途中にあるNo such file or directory...Permission denied...の部分が異なりますが、どちらもサーバーパス経由で●●●のファイルが正しく読み込めなかった際に表示されるエラーとなります。

  • ●●●:読み込めないファイル名
  • ■■■:プログラムエラーの原因のファイル名のサーバーパス
  • ▲▲▲:その処理が書かれている行数

つまり、このエラー文章は「■■■の▲▲▲行目で読み込もうとしている●●●のファイルが正しく読みこむことが出来ない」ため発生します。

Warning: require(XXX): Failed to open stream…の解決方法

ここからはWarning: require(XXX): Failed to open stream...の解決方法をご紹介します。

上でご紹介した通り、このエラーはNo such file or directory...Permission denied...の2通りのエラー文章があり、それぞれ解決方法が変わってきます。

No such file or directory in…の場合

Warning: require(●●●): Failed to open stream...のうち、No such file or directory in...が表示されている場合は、指定した場所にそのファイルが存在していないのが原因です。
●●●で指定している場所に本当にそのファイルが存在しているか再確認してみましょう。

Permission denied in…の場合

Warning: require(●●●): Failed to open stream...のうち、Permission denied...が表示されている場合は、指定した場所にそのファイルは存在しているけど、読み込む権限が無いため読み込めないのが原因です。
つまりパーミッションエラーということです。

読み込もうとしているファイルの権限(パーミッション)がどうなっているか再確認して、必要に応じて権限(パーミッション)を変更してみましょう。

まとめ

いかがでしたか?
Warning: require(XXX): Failed to open stream...が発生してしまった場合は読み込もうとしているファイルがちゃんとサーバー上に存在しているか、存在している場合は権限(パーミッション)を確認するようにしましょう。

また、このWarning: require(XXX): Failed to open stream...が発生している場合は合わせてFatal error: Uncaught Error: Failed opening required...が発生していると思います。
正しくファイルを読み込むことでこのエラー文章も解消するはずです。