通过Cronjob发行Running Artisan Command

Gar*_*ine 2 cron crontab laravel-4

我有一个噩梦得到一个crontab/cronjob来运行Artisan命令.

我有通过cronjob运行的另一个Artisan命令没有问题但是第二个命令不会运行.

首先,当我执行'crontab -e'并编辑要包含的文件时:

0 0 * * * /usr/local/bin/php  /home/purple/public_html/artisan feeds:send
Run Code Online (Sandbox Code Playgroud)

cronjob根本不运行.

如果我去cPanel并在那里添加cronjob,它运行但我收到以下错误:

open(public/downloads/feeds/events.csv): failed to open stream: No such file or directory
Run Code Online (Sandbox Code Playgroud)

问题是文件存在且目录具有正确的权限.如果我以root身份通过SSH登录或者用户紫色(php artisan feeds:send)运行命令,该命令运行完美并完成其任务没有问题.

如果在cPanel中,我编辑cronjob使用:

0 0 * * * php  /home/purple/public_html/artisan feeds:send
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

 There are no commands defined in the "feeds" namespace.
Run Code Online (Sandbox Code Playgroud)

有趣的是,我的其他命令在crontab文件中注册并且工作,并且在cPanel中根本没有引用.

任何帮助将非常感激.为简洁起见,我已经包含了命令使​​用的命令和模型.

Feed.php型号:

http://laravel.io/bin/1e2n

DataFeedController.php控制器:

http://laravel.io/bin/6x0E

SendFeeds.php命令:

http://laravel.io/bin/BW3d

启动/ artisan.php:

http://laravel.io/bin/2xV3

FeedInterface.php接口:

http://laravel.io/bin/LxnO

正如您所看到的,有一个GetRates命令,它可以工作.

Gar*_*ine 8

好吧,看起来我必须在运行命令之前首先进入脚本目录,现在在完成它之后它才有意义.当你知道怎么样时很容易!

* * * * * cd /home/purple/public_html/ && /usr/local/bin/php artisan feeds:send
Run Code Online (Sandbox Code Playgroud)