ハマログ

株式会社イーツー・インフォの社員ブログ

laravelのバッチを実行する

こんばんはいけしまです。いそがしいいそがしいと言ってブログの更新を思いっきり先送りにしてしまってました。すみません。
今日はlaravelで作成したバッチをcronで実行しなくてはいけませんでした。
今回はwebサーバはnginxです。ソースの所有者はnginxになっています。
なのでバッチを実行するユーザーはnginxとしたかったのですが、nginxはログイン不可のユーザーです。じゃsudoしよーと思い

*/10 * * * * cd /usr/share/nginx/project; sudo -u nginx php artisan batchcommand

と設定してみました。
.....
いくらまっても実行されません。

*/10 * * * * cd /usr/share/nginx/project; sudo -u nginx php artisan batchcommand 2>> error.log

としてエラーを見てみたら
sudo: sorry, you must have a tty to run sudo
だそうです。sudoはコンソールからでないとダメだそうです。
ネットで調べたら、visudoで「!requiretty」を指定することでsudoを実行するユーザーをttyなしで設定することが可能になるようです。
なので

visudoして
Defaults requiretty
Defaults:root !requiretty →ここを追加

上記のrootの設定を追加、保存してviを終了。
これでnginx権限でバッチ実行することが無事できましたー。

batchcronLaravelPHP

池島 篤則   池島 篤則   2016年5月19日


関連記事

JAX-RSでREST形式のサービスを作成するの巻

こんにちは、かねこです。 はじめに REST(Representational …

Python3でBasic認証の必要なURLにアクセスする

Pythonでコードを書く機会がありまして、(途中で挫折しましたが)お手軽でなか…

【新人エンジニア向け】システム開発で覚えておきたい3つの環境について解説!

エンジニアになって4ヶ月が経ちました。 エンジニアになるとよく耳にする言葉が「環…


← 前の投稿

次の投稿 →