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」と設定して下さい。

この記事を書いている人
株式会社ディープ
名前足立拓也

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

関連記事

最近の記事

  1. ドメインについて
  2. WP:WordPress(ワードプレス)
  3. URL設計(URLデザイン)
  4. URL「ディレクトリ名」と文字アンダースコア(_)とハイフン(-)
  5. SEO対策(外部ファイルの読み込み)
  6. URL リダイレクト
  7. インデックスされない
  8. 内部対策は必要?
  9. CMS(シーエムエス)
  10. SEO業者は必要?

Twitter

アーカイブ

PAGE TOP