cron で PHP 実行時に require_once のファイルが参照できない

2008-7-31 15:39
このエントリーをはてなブックマークに追加

PHP は apache と組み合わせて動作させるだけではなく、php -f ファイル名 として、バッチファイルのように動作させることも可能です。

ところが、このときに require_once や include_once の参照先が見つからないことがあります。cron で php で作成したスクリプトを実行しようとしたときに次のようなエラーで悩まされました。

PHP Warning:  require_once(../hoge/foo.php): failed to open stream: No such file or directory 

require_once などで、require_once("../hoge/foo.php") のように相対指定をしているとダメなようです。これを回避するには require_once("/var/bar/hoge/foo.php") のようにルートからの絶対パスで書くか、cron 実行時にディレクトリを移動するように cron に記述をする必要がありました。

  cd /var/bar/batchdir && php -f/var/bar/batchdir/example.php
  • ブックマーク : アクセス: 31,715回
  • カテゴリー : Linux
  • キーワード : , ,

1件のコメント

  1. CRONでうまくいかず、探していたらこの記事を見つけました。
    おかげでうまくいきました。ありがとうございます!

    コメント by ロイ2009-08-20 16:05

Sorry, the comment form is closed at this time.

34 queries. HTML convert time: 0.072 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン