作成日:2018-06-26, 更新日:2018-11-29
経緯
まずコンソールでPHPを実行。
php /〇〇〇/〇〇〇.php
これは実行できた。
次にcronに設定して実行。
1 * * * * php /〇〇〇/〇〇〇.php
動作せず。
一応、cornのログが「/var/log/cron」とかそんなのがあるとか・・・見ると実行されているような感じ。自信は無い。
自信が無いので・・・corn実行時にメールを飛ばしてもらう。
1 * * * * php /〇〇〇/〇〇〇.php | Mail xxx@example.com
メールは飛んできた。でも動作はしていないっぽい。
結論
phpのPATHの指定が必要
理由は知らないし、調べてもいない。とりあえず「cron実行時はPHPのPATHが通っていなかった」ってのが原因っぽい。
方法はいくつかあるみたい。
でも面倒なのでphpのpathを探して・・・下記のようにした。
1 * * * * /〇〇〇/php /〇〇〇/〇〇〇.php
PHPのPATHを探す
コンソールから「php 〇〇〇.php」で実行できるってコトは「php」のPATHが通っているってコト。
・・・ってコトは環境変数にPATHが指定されているはず。
コンソールから環境変数を確認
# env
PHPのPATHを探す。「PATH=〇〇〇:〇〇〇:〇〇〇」ってトコ。
「:」で一つのPATHだから、その中からPHPがありそうなヤツを探す。
あとは「cd 〇〇〇」して「php」がいるか確認すればOK。