2017-02-17 45 views
0

我試圖運行一個cron作業的Symfony2命令,但我得到一個錯誤,發現沒有找到環境。這裏是我的cron作業:Symfony2 cronjob環境沒有找到

* * * * * /usr/local/bin/php /usr/lib/myApp/app/console >> /usr/lib/myApp/forumLog.txt 2>&1 

現在我只是試圖讓應用程序/控制檯的工作和預期輸出與所有命令的列表。我得到的錯誤是:

[Symfony\Component\Debug\Exception\ContextErrorException] 
User Error: The environment was not found 

你有什麼想法,什麼是錯的,什麼是運行的Symfony2通過的cronjob命令正確的方法是什麼?

回答

0

在我自己的運行cronjobs的Symfony控制檯中,我通常會運行一個shell腳本,它首先變成apprppriate目錄,然後運行console命令。

這裏有一個已經運行了一年或兩年的例子:

文件:/etc/cron.d/systemChecks(運行shell腳本爲用戶:WWW用戶)

10 7,19 * * * www-data /var/www/dir.../bin/liipMonitor.sh 

文件:/var/www/dir.../bin/liipMonitor.sh

#!/bin/sh 
# Running at 7:10 and 19:10 
cd /var/www/dir.../ 
bin/console --env=prod monitor:health --group=cli -q 

我把cron安裝到/etc/cron.d他們自己的文件中,但是其他crontab文件也適用。 shell腳本將目錄更改爲項目的基礎目錄,然後運行bin/console

+0

謝謝你的回覆。現在,我收到錯誤消息:www-data未找到: '/ bin/sh:1:www-data:not found' – snaksa

+1

Cron/crontab文件的不同形式有稍微不同的格式。例如'/ etc/cron。* /'中的文件包含一個用戶名來運行文件。 crontabs中已經基於每個用戶的行(即'crontab -l'或'-e')不需要這些行。 –

+0

它仍然沒有執行該命令。我創建了這個.sh文件,並使用echo檢查它是否由cron作業執行。一切都很好,但我的symfony命令仍然沒有執行。沒有輸出既沒有命令也沒有工作。這裏是我的.sh文件的鏈接:http://pastebin.com/wLuEQ710我不得不添加到php的路徑 – snaksa

-1

設置--env參數中的cronjob命令,這樣的:

* * * * * /usr/local/bin/php /usr/lib/myApp/app/console --env=prod >> /usr/lib/myApp/forumLog.txt 2>&1 
+0

該死的,downvoter - 你不能看到OP中的錯誤報告。反而做出更好的答案! – ihsan