4

我似乎无法为这个问题找到一个明确的答案。

从 PHP调用 shell 命令时exec(),shell 命令使用的内存是否计入 PHP 脚本的内存限制?

我意识到,如果该命令生成大量输出,并且该输出在 的$ouput(第二个)参数中捕获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 回答