RaspberryPIとApache2でPHPプログラムを動かすときに、途中で止まる現象への対処法

PR
■スポンサードリンク

RaspberyPIとApache2でPHPプログラムを動かすときに、
途中でプログラムが止まってしまう時があります。

特に負荷が大きいプログラムを動かすときに、
止まってしまいます。

その原因の一つに「実行時間の制限」があります。
PHPは「php.ini」というファイルによって設定されています。
この「php.ini」を変更することで、様々な設定を変更できます。

では、「実行時間の制限」についてですが、
RaspberyPIの場合、「php.ini」は
/etc/php5/apache2/php.ini
にあります。

これを開くために、
sudo nano /etc/php5/apache2/php.ini
を実行してください。
※僕は、windowsのPCからTeraTermで接続して、作業しています。
※sudoはルート権限で実行するコマンド
※nanoはLinuxに標準で入っているテキスト編集アプリ。viでもOKです。

さて、開けましたか?
このファイルの中に、
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
;max_execution_time = 60

上記のようなところがあるはずです。
※「;」はコメントアウトするという意味です。
ここで、
max_execution_time = 180
とすれば、180秒までは、実行時間を許しますよっていうことになります。

つまり、ここの180の数字をプログラムに合わせて
大きくすることで、プログラムが途中で止まってしまうことを、
防ぐことができるというわけです。

ちなみに、
max_execution_time = 0
とすれば、処理が終わるまで待ちます。
無限ループには十分気を付けてくださいね。

上は、「php.ini」を編集し、実行時間の制限を変更する方法でしたが、
実は、PHPのプログラムに埋め込むこともできます。

<?php
set_time_limit(180);
?>

このように、PHPプログラムに埋め込んでおくことで、
プログラムごとに設定することも可能です。

しかし、サーバー管理者に制限をかけられている場合もあるので、
設定できない可能性もあります。

プログラムが止まってしまう原因はさまざまですが、
原因の一つに「実行時間の制限」が挙げられますので、
まずは、これを疑ってみてはいかがでしょうか?

PR
■スポンサードリンク

シェアする