通过命令行与durect URL运行时的文件路径问题

时间:2013-02-01 14:32:21

标签: php filesystems

我们通过命令行(CRON)运行一些进程 / usr / bin / php /path/to/site/root/index.php --uri = cli / fifteen / clear_apc

最近对索引文件进行了更改: require_once(../选择/本地/配置/ setting.php)

PHP返回: 没有这样的文件或目录

但是,直接从浏览器(相同的文件,路径)运行它,它运行正确,包括该文件: www.site.com/cli/fifteen/clear_apc

我想知道是否有解决该路径问题的方法,而不必从root用户包含整个路径(/path/to/site/opt/local/config/setting.php)

1 个答案:

答案 0 :(得分:2)

在cron和apache下运行时,工作目录不同。相对路径是相对于当前工作目录的,因此这就是您的代码未按预期工作的原因。

您可以尝试require_once(dirname(__FILE__) . "../opt/local/config/setting.php")。这应该从文件的位置开始生成绝对路径。

在此处查看所有魔术常量http://php.net/manual/en/language.constants.predefined.php