我们通过命令行(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)
答案 0 :(得分:2)
在cron和apache下运行时,工作目录不同。相对路径是相对于当前工作目录的,因此这就是您的代码未按预期工作的原因。
您可以尝试require_once(dirname(__FILE__) . "../opt/local/config/setting.php")
。这应该从文件的位置开始生成绝对路径。
在此处查看所有魔术常量:http://php.net/manual/en/language.constants.predefined.php