我有一个噩梦得到一个crontab / cronjob来运行Artisan命令。
我有另一个通过cronjob运行的Artisan命令没问题,但第二个命令不会运行。
首先,当我做crontab -e'并编辑该文件以包含:
0 0 * * * /usr/local/bin/php /home/purple/public_html/artisan feeds:send
cronjob根本没有运行。
如果我去cPanel并在那里添加cronjob,它会运行但我收到以下错误:
open(public/downloads/feeds/events.csv): failed to open stream: No such file or directory
问题是文件存在且目录具有正确的权限。如果我以root身份通过SSH登录或者用户紫色(php artisan feeds:send)运行命令,命令运行完美,完成任务没问题。
如果在cPanel中,我编辑cronjob使用:
0 0 * * * php /home/purple/public_html/artisan feeds:send
我收到以下错误:
There are no commands defined in the "feeds" namespace.
有趣的是,我的其他命令已在crontab文件中注册并且在cPanel中没有引用。
非常感谢任何帮助。为简洁起见,我已经包含了命令使用的命令和模型。
Feed.php模型:
DataFeedController.php控制器:
SendFeeds.php命令:
开始/ artisan.php:
FeedInterface.php界面:
正如您所看到的,有一个GetRates命令可以使用。
答案 0 :(得分:7)
好吧,看起来我必须首先进入脚本目录才能运行命令,现在解决之后它才有意义。当你知道怎么样时很容易!
* * * * * cd /home/purple/public_html/ && /usr/local/bin/php artisan feeds:send