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。
MBの値を使用してみましたか?
php_value memory_limit 2048M
また、Apacheではなくphp.ini
でこの値を編集してみてください。
問題を間違った観点から見ていることをお勧めします。質問は、「Apacheモジュール経由でApacheを使用するApacheプロセス内で2Gメモリを必要とすることは何ですか?このツールセットは仕事に最適ですか?」
はい、フォードピントにロケットを固定することはできますが、おそらく正しい解決策ではありません。
とにかく、本当に必要な場合はロケットを提供します...スクリプトの先頭に追加できます。
ini_set('memory_limit','2048M');
これにより、スクリプトだけに設定されます。あなたはまだ、Apacheにphpスクリプトにそれを許可するように指示する必要があります(私は思う)。
無制限のメモリ制限の場合は-1
in memory_limit
変数:
ini_set('memory_limit', '-1');
64ビットOS、64ビットApacheバージョン、およびPHPの同じバージョンをサポートするハードウェア上に64ビットOSが必要です。ただし、これはPDFで動作する関数がこのような大きなサイズのメモリを使用できることを保証しません。ファイル全体をメモリにロードしたり、チャンクに分割したり、 RAMにロードせずに検索します。
同じ問題を経験している他の人のために、php + patchのバグの説明 https://bugs.php.net/bug.php?id=44522
Apache構成に次を入力します。
php_value memory_limit 2048M
これを試すこともできます:
ini_set("max_execution_time", "-1");
ini_set("memory_limit", "-1");
ignore_user_abort(true);
set_time_limit(0);