1

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

最近对索引文件进行了更改:require_once(../opt/local/config/setting.php)

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

但是,直接从浏览器运行它(相同的文件,路径),它运行正确,包括该文件: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 回答