无法通过本地主机中的 cron [运行 artisan 命令 [Laravel 8] [已解决]

Unable to run artisan command via cron in localhost [Laravel 8] [Solved]

我是 laravel 和 crontab 的新手。我有一个 laravel 8 项目,想使用 cron 来 运行 计划任务。但我不断出错。我放在 cron 选项卡中的任务是这样的,

* * * * * /usr/local/bin/php /home/mydirectory/path/to/project/artisan schedule:run >> /tmp/laravel.log

但是,当它执行时,日志给出了以下错误。

Could not open input file: /home/mydirectory/path/to/project/artisan

我在 terminal/command 行中尝试了 运行ning 任务,它执行得很好。奇怪的是,我能够为我之前的 laravel 项目执行 运行 cron 作业任务(虽然 cron 作业任务已被删除),但不能用于此项目。我也用过 chmod 755。

我真的很困惑这个有什么问题:(顺便说一下,我正在使用 macos 和 laravel 8.83。感谢您的帮助!

根据 Laravel 文档,您需要先将当前目录更改为项目根目录,然后使用您想要 运行 与 artisan 的命令。

https://laravel.com/docs/9.x/scheduling#running-the-scheduler

* * * * * cd /home/mydirectory/path/to/project && php artisan schedule:run >> /dev/null 2>&1

原来我还没有为 cron 提供完整的磁盘访问权限:)

对于 mac 用户,您可以尝试为 cron 提供完整的磁盘访问权限,以便它能够访问用户文件夹。为此,请转到“系统偏好设置”中的“安全和隐私”> 在“隐私”选项卡中找到“完全磁盘访问”> 将“cron”文件从目录中的“/usr/sbin/cron”拖到“完全磁盘访问

参考:https://osxdaily.com/2020/04/27/fix-cron-permissions-macos-full-disk-access/