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型号:
DataFeedController.php控制器:
SendFeeds.php命令:
启动/ artisan.php:
FeedInterface.php接口:
正如您所看到的,有一个GetRates命令,它可以工作.
好吧,看起来我必须在运行命令之前首先进入脚本目录,现在在完成它之后它才有意义.当你知道怎么样时很容易!
* * * * * cd /home/purple/public_html/ && /usr/local/bin/php artisan feeds:send
Run Code Online (Sandbox Code Playgroud)