我有一个 PHP 脚本,我正尝试通过 cron 运行它。在 cron 中我有
php /home/dir/dir/foo.php
当命令运行时,cron日志显示:
状态:500 内部服务器错误
X-技术支持:PHP/7.1.16
内容类型:text/html;字符集=UTF-8
但是,如果我只是从命令行运行 php /home/dir/dir/foo.php,它就可以正常运行,不会出现任何错误。
我在同一个目录中有另一个 PHP 脚本,它可以通过 cron 正确运行。
其他信息:不起作用的脚本位于文档根目录之外,创建数据库连接并连接到 API。
我对 cron 没有太多经验,所以我可能设置错了一些东西,但我很困惑为什么相同的命令可以通过 CLI 运行,但在 cron 中却不行。
答案1
我刚刚找到了答案。我将 crontab 条目中的“php”更改为指向 PHP 7.1 路径,现在它可以正常工作了。
0,15,30,45 * * * * /opt/alt/php71/usr/bin/php /home/dir/dir/get_emails.php >/dev/null 2>&1
我原本以为 CLI 中的 php 应该与 cron 中的 php 是同一版本,但显然不是。