web-dev-qa-db-ja.com

PHP 2GB以上のメモリ制限を増やすには?

ApacheモジュールとしてPHPのメモリ制限を増やす問題があります。

Apacheの設定に次のディレクティブを配置すると、問題なく動作します。

php_value memory_limit 1.99G

ただし、2GB以上は機能しません。この値は128MBに戻ります。

ここで問題は何ですか?いくつかのPDF関連タスクにもっとメモリが必要です。

サーバーはDebian 2.6.32-5-AMD64#1 SMP、PHP 5.3.3-7 + squeeze13、12GBの物理RAM。

46
mikikg

MBの値を使用してみましたか?

php_value memory_limit 2048M

また、Apacheではなくphp.iniでこの値を編集してみてください

46
Claudiu Claw

問題を間違った観点から見ていることをお勧めします。質問は、「Apacheモジュール経由でApacheを使用するApacheプロセス内で2Gメモリを必要とすることは何ですか?このツールセットは仕事に最適ですか?」

はい、フォードピントにロケットを固定することはできますが、おそらく正しい解決策ではありません。

とにかく、本当に必要な場合はロケットを提供します...スクリプトの先頭に追加できます。

ini_set('memory_limit','2048M');

これにより、スクリプトだけに設定されます。あなたはまだ、Apacheにphpスクリプトにそれを許可するように指示する必要があります(私は思う)。

35
Ray

無制限のメモリ制限の場合は-1 in memory_limit変数:

ini_set('memory_limit', '-1');
18
Indrajeet Singh

64ビットOS、64ビットApacheバージョン、およびPHPの同じバージョンをサポートするハードウェア上に64ビットOSが必要です。ただし、これはPDFで動作する関数がこのような大きなサイズのメモリを使用できることを保証しません。ファイル全体をメモリにロードしたり、チャンクに分割したり、 RAMにロードせずに検索します。

3
Timur

同じ問題を経験している他の人のために、php + patchのバグの説明 https://bugs.php.net/bug.php?id=44522

2
Wiggler Jtag

Apache構成に次を入力します。

php_value memory_limit 2048M
1
Florent

これを試すこともできます:

ini_set("max_execution_time", "-1");
ini_set("memory_limit", "-1");
ignore_user_abort(true);
set_time_limit(0);
0
kishan Radadiya