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

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

WordPress短期学習プログラム

関連記事

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

    PHP

    Smartyで日時を扱う方法

    {$smarty.now}で日時を取得Smartyで日時を…

  2. Security(セキュリティ)

    PHP

    PHP脆弱性対応:XSS(クロスサイトスクリプティング)

    今週の主な作業は、お問い合せフォームの脆弱性対策でした。&…

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

    PHP

    【PHP】ini_setで設定できる内容のまとめ

    ini_setで設定できる内容PHPのini_se…

  4. サーバー設定

    PHP

    PHPの最新リポジトリを追加でエラー!!

    Ubuntu(バージョンは16.xx)で構築したサーバに、PHP7…

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

    PHP

    PHPExcel テンプレートを使用してエクセルを出力

    今回は、テンプレートを使用したエクセル出力の方法を紹介します。…

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

    PHP

    新着情報の不具合

    お客さんから、ホームページに表示させている新着情報が表示されなくな…

コメント

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

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

最近の記事

  1. WordPressのセキュリティ対策(脆弱性対策)
  2. ドメイン失効
  3. SEO関連タグ
  4. SEO関連タグ
  5. レンタルサーバー(共用サーバー)
  6. システム開発用のアイキャッチ
  7. システム開発用のアイキャッチ
  8. ドメイン 利用制限
  9. WP:WordPress(ワードプレス)
  10. システム開発用のアイキャッチ
PAGE TOP