【发布时间】:2019-08-28 01:42:15
【问题描述】:
我正在使用 GoDaddy 共享主机。在我的 cron 作业 PHP 脚本中,我使用 require() 来包含一些其他文件。当我手动使用 cron 作业 PHP 脚本时(通过将其 url 输入地址栏),它可以正常工作,但是在执行 cron 作业时,cron 脚本可以正常工作,只是找不到所需的文件。
我有以下 cron 命令:
/usr/local/bin/php -q /home/username/public_html/domainname/cron/script.php >/dev/null 2>&1
我读到here,其中一种选择是在 require() 中使用完整路径。另一种选择是修改cron命令,这是我想学的。我的问题是如何修改上述 cron 命令,以便我在 cron 脚本中的 require() 能够正常工作(不使用完整路径)。
谢谢。
【问题讨论】:
-
without using full paths考虑为您的路径创建一些常量并仅包括该文件。define('ROOT_PATH', '....')等...如果您不使用它,您也可以简单地使用__DIR__。所以看看你如何使用require可能会有所帮助(提示。不需要括号)。我唯一一次遇到__DIR__这样的问题是在符号链接或绑定安装文件夹中(不记得了)。但这不是 PHP 的错(它就像你的高清中的虫洞......哈哈) -
@ArtisticPhoenix 感谢您的意见。使用 DIR 是一个不错的选择,但我仍然想学习如何编写正确的 cron 命令。
-
对于 C-Panel,这是正确的方法,对于非 Cpanel,您只需将此位关闭
/usr/local/bin/- 也就是说我一直使用__DIR__,所以我从来没有遇到过这些问题。 -
@ArtisticPhoenix 但是,正如我的问题中提到的,当我使用上述命令时,它找不到所需的文件 - 包含在 cron 脚本中的文件 require()-.