トップへ(mam-mam.net/)

PHPを実行中するとメモリ不足

検索:

「PHPを実行中するとメモリ不足」

phpスクリプトを稼働していますが、エラーで止まります。
PHPのエラーログ、又はApccheのerror_logを確認すると以下のPHPのメモリ不足のエラーがあります。

Allowed memory size of 16777216 bytes exhausted (tried to allocate 2 bytes)

回答

echo文やprint分は出力バッファに書き込み、phpの実行が完了した時点で出力され、バッファが削除されます。
よって大量のecho文やPrint文で出力を行うと、メモリがバッファ領域として使用され、メモリ不足が発生する事があります。
php.iniファイルの設定を変更して最大利用メモリ量を増やしてください。

memory_limit = 8M
が標準で設定されているので

memory_limit = 32M
のように最大メモリを増やしてください。

その後、Apache等のWEBサーバーの再起動を行ってください。


最大メモリを増やせないなどの場合は、echo文やprint文を実行する度に、又は何回か毎に
flush();
文を入れて、バッファからフラッシュ(出力と、バッファの削除)すれば、メモリ不足にならない場合があります。

ソース