[PHP-users 4160] Re: cron でphpを動かす

Youichi Iwakiri php-users@php.gr.jp
Wed, 05 Dec 2001 21:26:27 +0900


tsuyoshi takahashi wrote in <20011205201412.578D.MLTUN@ml.vip.co.jp>:
 >私もcronでDBの更新等を行っていますが
 >CGI版にもタイムアウトがあることを今回はじめて知りました。
 >しかし過去にcronで実行させたものに527秒かかっているものがありました
 >set_time_limit を設定しないとこの先まずいでしょうか?
 >また処理の内容がちょっと動的なので時間の予測ができない時は
 >どのように設定するべきなんでしょうか?

いや、ですから先のメールに書いてあるように
コマンドライン版のphpのオプションとして
 -d max_execution_time=-1
を与えることで、php.ini内で宣言されている
max_execution_time=30
を置きかえることが出来ます。

時間が見積もれない処理を行う場合はset_time_limit()で
途中で打ちきられると困るので上記のようにしています。

また、毎回オプションを与えるのが嫌なら
php.iniを直接書きかえることになりますが
Apache DSO版と同じ物を参照していると拙いので

[PHP-users 4150] Re: cron でphpを動かす
のメールで黒木さんが書かれている様に
php.iniを標準的なインストール先である
 /usr/local/lib/php.ini
とは別に
 /usr/local/lib/php/cmd_line/php.ini
といったところにコマンドライン版用のphp.iniを
用意しておいて
 % php -c /usr/local/lib/php/cmd_line/php.ini hoge.php
と実行すればよいと思います。

結局はどっちもオプションの指定をしないといけないので
面倒かもしれません。
で、私の場合は、Apache DSO版もコマンドライン版も基本的に
同一環境で利用したいphp.iniのメンテナンスが2箇所に及ぶ等の
煩雑性を嫌って-d max_execution_time=-1というオプションを
与える方法をとっています。