包括路径和cron

时间:2009-07-01 08:59:57

标签: php

我正在运行一个调用php脚本的cronjob。当cron调用该文件时,我得到“无法打开流”。当我cd到目录并从该位置运行文件时,一切都很好。基本上,我想要包含的include_once()文件是php脚本所在的两个目录。

有人可以告诉我如何通过cronjob工作吗?

3 个答案:

答案 0 :(得分:6)

有多种方法可以执行此操作:您可以cd进入cron脚本中的目录:

cd /path/to/your/dir && php file.php

或者指向相对于PHP中current script的正确包含文件:

include dirname(__FILE__) . '/../../' . 'includedfile.php';

答案 1 :(得分:5)

cron以最小的环境开始是臭名昭着的。之一:

  • 让您的脚本设置自己的环境;
  • 有一个特殊的cron脚本,它设置环境然后调用你的脚本;或
  • 在crontab中设置环境。

最后一个例子(如果没有太多需要设置的东西,我倾向于使用它):

0 5 * * * (export PATH = /mydir:$PATH ; myexecutable )

答案 2 :(得分:1)

你需要看看cron的路径是什么。

 echo pathinfo($_SERVER["PATH_TRANSLATED"]);

根据这个做包含

include $path_parts['dirname']."/myfile.php";