PHPからexec()でスクリプトを実行したときに途中で落ちる場合
バックエンドでPHPからスクリプトを実行した場合に
途中で処理が止まってしまう場合がある。
ローカル環境だとエラーログとかにエラーが出てくれる
場合があるけどCPIとかのレンサバに載せたときに何も
エラーを吐いてくれなくてはまったのでメモ。
初心者みたいだ・・・。
とりあえず以下の値を確認する。
phpinfoで「max_execution_time」
スクリプトがパーサにより強制終了されるまでに許容される最大の 時間を秒単位で指定します。この命令は、いい加減に書かれた スクリプトがサーバーの負荷を上げることを防止するのに役立ちます。 デフォルトでは、30 に設定されています。 PHP を コマンドライン から実行する場合のデフォルト設定は 0 です。
最大実行時間は、システムコール、ストリーム操作等の 影響を受けません。より詳細な情報については、 set_time_limit() 関数の説明を参照ください。
セーフモードで実行している場合にはこの設定を ini_set() で変更することはできません。次善策としては セーフモード をオフにするか あるいは php.ini 上で制限時間を変えるしかありません。
Web サーバー側でもタイムアウトの設定項目を持ち、 その設定で PHP の実行が中断されることもあります。 Apache には Timeout ディレクティブ、IIS には CGI タイムアウト関数があり、どちらもデフォルトで 300 秒に設定されています。 これらの意味については、Web サーバーのドキュメントを参照ください。
30秒で足りない場合はset_time_limit()関数とかで設定変える。
そのほかにローカルで動いていて、レンサバで動かない場合は「memory_limit」の
可能性もあるのでそっちも調べる。