PHP(ピー・エイチ・ピー)

PHPのメモリー不足(Allowed memory size)

メモリエラー:Allowed memory size of ~

とある社内システムの開発時の話なんですが、作成したバッチ処理(そこそこ重め)を実行させると、

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 16 bytes) in ・・・

などというエラーが!!

 

単なるメモリー不足のエラーなんですがね!!

PHPを使っている開発案件では、よく直面する有名なエラーです。

 

この場合には、

まずは、php.iniの設定を確認して、

割り当てられているメモリの上限を確認します。

で、確認すると、

memory_limit = 128M

となっていました。
memory_limitの値は、phpinfo()で確認するか、php.iniを開いて直接確認して下さい。

128Mであればデフォルトの設定のままなんですが、これでは足りなかったようですね。。。

因みに、memory_limitに設定しているメモリ量が、
PHPのスクリプトを1回実行する度に割り当てられるメモリ上限値になります。

※1リクエスト辺りの上限です。

 

メモリの割り当てを変更

メモリ不足であれば仕方ないので、

memory_limitの上限値を上げて対応する必要があります。

が、同一サーバ上で複数のサイトを運営しているので、大元のphp.iniの設定変更は他システムへの影響が心配です。

なので、今回はini_set()関数で対応することに。

 

該当のスクリプトファイルの頭の方に

ini_set("memory_limit", "200M");

を追記してやることで、

メモリ制限を200Mにしてやることが可能です。
※メモリの上限は、必要に応じて変更して下さい。

 

因みに、

.htaccess

php_value memory_limit 200M

と記述して対応する方法もあります。

 

メモリの上限を解除

あまりおすすめはしませんが、一応、メモリの上限を無くすこともできます。

ini_set("memory_limit", "-1");

とすれば、OKです。

もし、ph.iniを直接変更する場合には、
memory_limit = -1;」と変更して下さい。

また、.htaccessで設定する場合には、
php_value memory_limit -1」と設定して下さい。

0
この記事を書いている人
株式会社ディープ

名前ダッチ

メールアドレスadachi@deep-deep.jp

Twitterはこちら >>

  • コメント: 0

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. WP:WordPress(ワードプレス)
  2. WP:WordPress(ワードプレス)
  3. WP:WordPress(ワードプレス)
  4. 文系と理系のメリットとデメリット
  5. 東京駅
  6. 残業
  7. プログラマーになるのに年齢は関係ある?
  8. 年収(収入)
  9. income(収入)
  10. プログラマーになろう

Twitter

ダッチ@職業ブロガー兼プログラマー
@gatsu0000

アーカイブ

PAGE TOP