CronでPHPを動かしたときになぜか何回やっても上手く動かなくて、
レポートを見たら500 Internal Server Errorが出てた。
ブラウザ経由ではちゃんと動くんで、どういうことなのか全然理解できなかったんだけど、
よくよく考えたらなんのことはない、パスが通ってなかった、と言うお話。
さくらインターネットの場合、パスはローカルエリアのphp.iniに保存されるんだけど、
Cronからコマンドラインで呼んだ場合に明示してやらないとそれを読み込まないっぽい。

php.iniの指定は、オプション『-c』を付けてやればいいので、
cronに書くコマンドはこんな感じになる。

/usr/local/bin/php -f 実行するファイル -c /home/ユーザ名/www/php.ini


PHPのコマンドラインについてはあんまりよく知らなかったので、
(ていうか使わないから失念してた、かな)
調べてみたら、マニュアルのこの辺にまとめられてるっぽい。

PHP: PHP をコマンドラインから使用する - Manual


というわけで、今さらながら振り返り&メモ。
  • About

    I'm a web designer/programmer in Kyoto, Japan. Also work as a blogger, DJ.

    NOBODY:PLACE is my personal blog since 1998. Everything I'm interested in is here.

    See Also
    Other Works
    Feed
  • Recent Hatena Bookmark
  • Monthly Archives
    Categories