为什么 php(cli)没有默认内存限制?

为什么 php(cli)没有默认内存限制?

在遇到命令行 php 脚本出现内存不足问题的服务器后,我发现默认情况下(vanilla 12.04 LTS 服务器安装)cliphp.ini没有设置内存限制。

myname@servername:~$ php -i | grep memory_limit
memory_limit => -1 => -1
myname@servername:~$

这是一个全新的 12.04 安装,在安装过程中选择“LAMP”,专门为测试此默认值而设置。

这让我很惊讶,我想知道为什么会这样,甚至这是故意的吗?

答案1

你可以使用以下命令限制命令行脚本最大執行時間

“这将设置脚本在被解析器终止之前允许运行的最大时间(以秒为单位)。这有助于防止编写不当的脚本占用服务器。默认设置为 30。运行 PHP 时从命令行默认设置为 0。 ...

不能变在安全模式下运行时,请使用 ini_set() 来设置此设置。唯一的解决方法是关闭安全模式或更改 php.ini 中的时间限制。”

相关内容