通过Cronjob发行Running Artisan Command

时间:2014-04-01 12:01:06

标签: laravel-4 cron crontab

我有一个噩梦得到一个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模型:

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命令可以使用。

1 个答案:

答案 0 :(得分:7)

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

* * * * * cd /home/purple/public_html/ && /usr/local/bin/php artisan feeds:send