2014-04-01 135 views
2

我有一點噩夢獲得crontab/cronjob來運行Artisan命令。問題通過Cronjob運行Artisan命令

我有另一個Artisan命令通過cronjob運行沒有問題,但第二個命令不會運行。

首先,當我做 '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 

的事情是文件存在的目錄具有正確的權限。如果我通過SSH以root身份或用戶紫色(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命令,它的工作原理。

回答

7

好吧,看起來我必須先運行命令,然後在運行命令之前先將其存入腳本目錄。很容易,當你知道如何呃!

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

你是救星!謝謝! – Pezhvak