4

私はこれに対する決定的な答えを見つけることができないようです。

PHPからを使用してシェルコマンドを呼び出す場合、シェルコマンドが使用exec()するメモリは、PHPスクリプトに指定されているメモリ制限にカウントされますか?

コマンドが大量の出力を生成し、その出力がの$ouput(2番目の)パラメーターでキャプチャされるexec()場合、返されたデータがPHPのメモリ制限を超える可能性があることに気付きました。ただし、すべての出力がファイルに送信されると仮定すると、exec()コマンドの実行に128Mのメモリが必要な場合、64Mのメモリの制限があるPHPスクリプトで実行できる必要がありますか?

<?php
exec('command_using_128M_memory >/dev/null 2>&1');

PHP5.3+を想定しています

4

1 に答える 1

7

exec()プロセスは PHP プロセス内ではなく個別に実行されるため、コマンドは PHP に対して直接カウントされません。コマンドで出力変数を使用すると、それらは制限にカウントされます。

そのため、多くの詳細ログを生成するファイルがあり、そのログをキャプチャすると、メモリ制限にカウントされます。

于 2012-07-02T10:17:23.567 に答える