繁体   English   中英

PHP文件可以手动正常运行,但在Cron Job上表现异常

[英]PHP File Runs Fine Manually But behaves unexpected on Cron Job

我有一个dreamhost Web面板,并且正在设置cronjob来运行我的php脚本,但是它显示了奇怪的错误,似乎它没有执行该文件,但是正在读取该文件。 该错误如下所示,它作为电子邮件发送给我

?php:没有这样的文件或目录[somesessionvariable] = 1573:找不到命令第3行:意外令牌"include/mydb.php"' line 3:附近的语法错误"include/mydb.php"' line 3: require_once(“ include / mydb.php”);

这是邮件的主题:

Cron / usr / local / bin / setlock -n /tmp/cronlock.3782446772.128284 sh -c $'/ path /to/file/cases_cron.php'

文件的权限为755,我已经从其他运行良好的cronjobs复制了路径,因此文件路径没有问题,因为它正在获取文件内容。 我没有找到问题所在

我应该尝试使用包含文件的绝对路径。

我确定问题出在文件调用和cron调用中,包含路径设置不相同。

您可以执行以下操作:

require_once dirname(__FILE__)."/include/mydb.php";

__FILE__是执行此行的文件的路径, dirname()返回文件所在的绝对路径。

当然,您可以根据require使用requirerequire_onceincludeinclude_one

您的路径可能已关闭。 尝试避免相对路径(用include / file.php代替/var/www/project/include/file.php)或使用chdir()更改工作目录。

您也可以在您的cronjob中输入“ cd”命令,即:

cd /path/to/phpfile && php -f file.php

好的,伙计们,感谢您的全力支持,我终于可以解决问题了。

我在文件顶部缺少以下行

#!/usr/local/bin/php

在php文件的顶部添加这一行,对我的问题进行了排序。 但是我不知道这行对脚本意味着什么。 但是我从其他工作专家那里复制了它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM