web-dev-qa-db-ja.com

許容メモリサイズ134217728バイトを使い果たしました

この問題を解決するためにホットで、なぜそれが起こるのですか?

Zend Server Log:

PHPの致命的エラー:C:\ Program Files(x86)\ Zend\Apache2\htdocs\test\modules\main.phpの3行目で、許可されたメモリサイズ134217728バイトを使い果たしました(538798977バイトを割り当てようとしました)。

ファイル main.phpをブラウザから直接実行しても、エラーは発生しません。ただし、別のPHOファイルからその機能を使用すると、Zend Logが上記のエラーを出力します。

12
You Kuper

私もこの問題に遭遇しました。

次の変数を増やして、ページの実行が停止しないようにします。

  • max_input_time
  • memory_limit
  • max_execution_time
13
shail

php.iniのメモリ制限を増やすか、アプリケーションから配列などの大きなデータ構造を最適化してください。

いずれにせよ、PHPアプリケーションが128MBのRAMを使用している場合は、おそらく問題が発生しています。

また、コメントでFluffehが述べたように、500MBのRAMを利用するために一体何をしているのですか?

10
slugonamission

これを試して:

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

php.net/memory_limit

サーバーのメモリ使用量は無制限になります。

6
user1427811

User1427811に加えて、time_limitおよびmemory_limitファイルのダウンロード前後:

function custom_put_contents($source_url='',$local_path=''){

    $time_limit = ini_get('max_execution_time');
    $memory_limit = ini_get('memory_limit');

    set_time_limit(0);
    ini_set('memory_limit', '-1');      

    $remote_contents=file_get_contents($source_url);
    $response=file_put_contents($local_path, $remote_contents);

    set_time_limit($time_limit);
    ini_set('memory_limit', $memory_limit); 

    return $response;
}
1
RafaSashi