Cronのエラー「/bin/sh: php: command not found」の対応

PHPで書いたスクリプトをコマンドラインで実行、それをCronで定期的に実行するようにしたはずが、なぜか動かない。
試しに手動で実行してみるとうまくいく。なぜかCronだとうまくいかない。
ログをメールで受信してチェックしてみるjと、こんなエラーになっていた。

/bin/sh: php: command not found

広告

「phpなんていうコマンドはこのシェルに見つからない」
あ、パスが通っていないのか。
コマンドラインから実行するときは、「php」でパスが通っているから実行できるのだけど、Cronから実行するときはフルパスで指定しなければいけないということ。

さっそく[ crontab -e ]でCron編集画面に行き、

0 1 * * * php /home/dacelo/bot.php

となっていたのを

0 1 2 * * * /usr/local/bin/php /home/dacelo/bot.php

に修正して保存。これでOKになった。

About: 櫻木

在野のコラムニスト。1975年生まれ。大東亜戦争の戦地の取材をライフワークとしており、台湾やインドネシアとの親交が深い。


Leave a Reply

Your email address will not be published. Required fields are marked *