1

コマンド ライン (CRON) /usr/bin/php /path/to/site/root/index.php --uri=cli/fifteen/clear_apc を介して実行するプロセスがいくつかあります。

インデックス ファイルへの最近の変更: require_once(../opt/local/config/setting.php)

PHP が返す: No such file or directory

ただし、ブラウザーから直接実行すると (同じファイル、パス)、そのファイルを含めて正しく実行されます: www.site.com/cli/fifteen/clear_apc

ルート (/path/to/site/opt/local/config/setting.php) からのパス全体を含める必要なしに、そのパスの問題の回避策があるかどうか疑問に思っています。

4

1 に答える 1

2

cron と apache で実行する場合、作業ディレクトリは異なります。相対パスは現在の作業ディレクトリに相対的であるため、コードが期待どおりに機能しないのはそのためです。

試すことができrequire_once(dirname(__FILE__) . "../opt/local/config/setting.php")ます。これにより、ファイルの場所から始まる絶対パスが生成されます。

ここですべての魔法の定数をチェックしてください: http://php.net/manual/en/language.constants.predefined.php

于 2013-02-01T14:38:12.847 に答える