« AjaXplorer | メイン | PHP アップロードファイル文字化け »

2009年07月09日

Allowed memory size of ほにゃらら

PHPのプログラムや何かサービスを作っていて
下記のようなエラーメッセージが出るときがある。

Fatal error: Allowed memory size of 6777216 bytes exhausted (tried to allocate 8965128 bytes) in /usr/share/php/HTTP/Request.php on line 878

単純にPHPのメモリーリミットが足りないよって事らしい。
使用するメモリーが上限以内であれば php.inimemory_limitの数値を増やせばいいんだけど
増やしてもエラーが直らない時がる。
そんなんときは

memory_limit の値を -1 にすべし!

下記PHPマニュアルより

リソース制限

名前:memory_limt
デフォルト:128M
変更の可否:PHP_INI_ALL
変更履歴:PHP 5.2.0 より前は "8M"、PHP 5.2.0 では "16M"

以下に設定ディレクティブに関する簡単な説明を示します。

memory_limit integer
スクリプトが確保できる最大メモリをバイト数で指定します。
この命令は、 正しく書かれていないスクリプトがサーバーのメモリを食いつぶすことを防止するのに役立ちます。
もし、使用可能メモリに制限を設けたくない場合は、 ここに -1 を指定してください。

PHP 5.2.1 より前のバージョンでは、このディレクティブを使うためには
コンパイル時に configure で --enable-memory-limit を指定しなければなりません。
これは、関数 memory_get_usage() および memory_get_peak_usage() を使用する際にも必要となります。
integerを使用する際、その値はバイト単位で測られます。
この FAQ に記載された短縮表記を使用することも可能です。


Copyright ©2009 wghost All Rights Reserved.