2009 年 8 月
« 7 月   9 月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

最近のコメント

    PHP-よくあるエラーメッセージと対策-(その1)

    今までPHPでプログラミングを行ってきて、頻繁に出会ったエラーメッセージとその対策を説明したいと思います。

     

    Warning: main(読込ファイルのフルパス) [function.main]: failed to open stream: No such file or directory in エラーが発生しているPHPファイルのフルパス on line エラーが発生している行

     

    ファイルのOPEN処理やinclude関数、require関数、unlink関数などファイルを操作する処理で、

    指定されたファイル、ディレクトリが存在しない時に発生するエラーメッセージ。

    <対策>読込ファイルのフルパスを確認して、正しくファイルが存在しているかチェックする。

     

    Fatal error: main() [function.require]: Failed opening required ‘読込ファイルのフルパス‘ (include_path=’.;c:\php\includes;c:\php\pear;’) in エラーが発生しているPHPファイルのフルパス on line エラーが発生している行

    Warning: main() [function.include]: Failed opening ‘読込ファイルのフルパス‘  for inclusion (include_path=’.;c:\php\includes;c:\php\pear;’) in エラーが発生しているPHPファイルのフルパス on line エラーが発生している行

     

    include関数、require関数で指定されたファイルが存在しない時に発生するエラーメッセージ。

    前者がrequire関数のエラー、後者がinclude関数のエラーとなります。require関数はエラーが発生した場合、処理を中断します。

    よって、require関数とinclude関数の違いは、発生するエラーのレベルが違います。

    <対策>読込ファイルのフルパスを確認して、正しくファイルが存在しているかチェックする。

         php.iniのinclude_pathの設定を見直す。require関数とinclude関数は読込ファイルに相対パスが指定された場合、

         include_pathで指定されたところをベースに相対的にファイルを参照します。

         (エラーメッセージにinclude_pathが出力されるのは、ここを探したという意味です。)

         実行中のPHPファイルをベースに参照させる場合は、include_pathに「.」を指定します。

     

    既に稼動実績のあるプログラムを新しいサーバに移行したり、開発環境から本番環境へ移行する際によく起きるエラーとなります。

    エラーメッセージに表示されている読込ファイルのフルパスにファイルが無いという事ですので、

    落ち着いてファイルを捜索すれば、問題は解決できると思います。

    Comments are closed.