PHP脚本执行超过内存限制,即使限制更高

PHP脚本执行超过内存限制,即使限制更高,php,Php,我在Linux服务器上有一个PHP脚本,它是通过命令行执行的,比如:PHP script.PHP(注意,它不是作为web请求的一部分执行的) 服务器“php.ini”文件中的内存限制设置为“512M”,我已验证如下: # echo "<?php phpinfo(); ?>" | php | grep memory_limit memory_limit => 512M => 512M #echo”“| php | grep内存限制 内存限制=>512M=>512M 现在

我在Linux服务器上有一个PHP脚本,它是通过命令行执行的,比如:
PHP script.PHP
(注意,它不是作为web请求的一部分执行的)

服务器“php.ini”文件中的
内存限制设置为“512M”,我已验证如下:

# echo "<?php phpinfo(); ?>" | php | grep memory_limit
memory_limit => 512M => 512M
#echo”“| php | grep内存限制
内存限制=>512M=>512M
现在的问题是,当我通过
php script.php
执行有问题的脚本时,最终会出现以下错误:

致命错误:允许的内存大小为268435456字节,在

268435456字节~=268mb,绝对低于512mb


这里会发生什么?是否有可能我缺少另一个系统级设置?或者php进程本质上被限制在268mb以内?

最有可能的是php.ini设置没有生效。再次重新启动服务器,并使用phpinfo()运行脚本,以确保所做的更改到位。

您可以使用php-i和grep输出来检查是否已更新正确的php.ini


php-i | grep php.ini

是否重新启动了apache?您是否检查过其他地方是否存在覆盖.ini副本的内存限制?在命令行进行检查是没有意义的,因为它通常使用与sapi(也称为基于web的)不同的.ini文件集。您需要在您遇到问题的脚本中检查
php\u info()
。在脚本崩溃之前,将a转储到行中。此外,Suhosin扩展可以对内存限制设置自己的上限。你们检查过了吗?你们试过直接把内存限制传给命令吗
php-d memory\u limit=512M script.php
@MarcB就像我在问题中提到的,我是通过命令行执行脚本的,而不是apache(或任何其他web服务器)。好的,如果控制台说memory\u limit=>512M=>512M,那么php.ini的所有操作都可以