2017-02-17 6 views
0

Symfony2コマンドをcronジョブで実行しようとしていますが、環境が見つからないというエラーが表示されます。ここに私のcronの仕事はあります:Symfony2 cronjob環境が見つかりません

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

私はちょうどapp/consoleの作業をしようとしています。予想される出力はすべてのコマンドのリストです。私が手にエラーがある:

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

あなたは何が間違っている任意のアイデアを持っていますし、cronジョブによってSymfony2のコマンドを実行するための正しい方法は何ですか?

答えて

0

自分のsymfonyコンソールでcronjobを実行しているのですが、私は通常、cronにシェルスクリプトを実行させ、最初にapprppriateディレクトリに変更してからconsoleコマンドを実行します。ここで

は1年か2年のために実行されている例を示します

ファイル:/etc/cron.d/systemChecks(ユーザとしてシェルスクリプトを実行します: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 

私は、自分自身のファイルに/etc/cron.dというファイルを入れましたが、それ以外のcrontabファイルにも同じことが当てはまります。シェルスクリプトは、ディレクトリをプロジェクトのベースディレクトリに変更し、bin/consoleを実行します。そのようなcronジョブコマンドで--envパラメータ、設定し

+0

は、返信いただきありがとうございます。 '/ bin/sh:1:www-data:見つからない ' – snaksa

+1

異なる形式のCron/crontabファイルは、わずかに異なるフォーマットを持っています。 '/ etc/cron。* /'のファイルには、例えばファイルを実行するためのユーザー名が含まれています。すでにcrontabにあるユーザ単位の行(つまり 'crontab -l'や' -e')には、その必要はありません。 –

+0

まだコマンドを実行していません。私はこの.shファイルを作成し、それがcronジョブによって実行されている場合はechoとチェックしました。すべては正常ですが、私のsymfonyコマンドはまだ実行されていません。コマンドはどちらも出力されません。私の.shファイルへのリンクは次のとおりです:http://pastebin.com/wLuEQ710 PHPへのパスを追加する必要がありました – snaksa

-1

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

気をつけて、downvoter - OPのエラー報告を見ることができません。代わりにより良い答えを作る! – ihsan

関連する問題