PHP内存限制
我试图在php脚本中测试内存分配。我在php.ini中将限制设置为128M。在脚本中,ini_get'memory_limit'报告128M为限制。问题是,当我开始分配空间时,我不能超过23米。我可以将内存分配限制在23M以下的任何级别,但不能分配更多。只是在寻找这个限制是在哪里施加的线索 这是我的测试脚本PHP内存限制,php,apache,Php,Apache,我试图在php脚本中测试内存分配。我在php.ini中将限制设置为128M。在脚本中,ini_get'memory_limit'报告128M为限制。问题是,当我开始分配空间时,我不能超过23米。我可以将内存分配限制在23M以下的任何级别,但不能分配更多。只是在寻找这个限制是在哪里施加的线索 这是我的测试脚本 <?php echo "System imposed memory_limit is set to: " . ini_get('memory_limit') . "<br>
<?php
echo "System imposed memory_limit is set to: " . ini_get('memory_limit') . "<br>\n";
for ($i=1; $i<1000; $i++) {
$a = loadmem($i);
echo "You have allocated ". $i . "M (". memory_get_usage() . ") memory in this php script" . "<br />\n";
unset($a);
}
function loadmem($howmuchmeg) {
$a = str_repeat("0", $howmuchmeg * 1024 * 1024); // alocating 10 chars times million chars
return $a;
}
?>
使用PHP7.0.x和apache2.2时,错误表明您实际上没有那么多可用内存。如果你只是超出了限制,你会得到一个稍微不同的信息:
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried...
您的问题可能是由于实际可用内存或外壳强制的ulimit造成的。错误表明您实际上没有那么多可用内存。如果你只是超出了限制,你会得到一个稍微不同的信息:
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried...
您的问题可能是由于实际可用内存或shell强加的ulimit造成的。添加此yo yout php脚本
<?php
ini_set('memory_limit', '2048M');
?>
添加这个YoYoutPHP脚本
<?php
ini_set('memory_limit', '2048M');
?>
你能提供更多关于你的环境的信息吗?我刚刚在docker运行laravel的tinker docker run-it-rm eboraas/laravel php/var/www/laravel/artisan tinker中尝试了您的示例代码,并成功地迭代到110M。谢谢。问题是apache用户的内存限制。您能否提供有关您的环境的更多信息?我刚刚在docker运行laravel的tinker docker run-it-rm eboraas/laravel php/var/www/laravel/artisan tinker中尝试了您的示例代码,并成功地迭代到110M。谢谢。问题是apache用户的内存限制。这让人困惑。Free-m显示203M Free,但是当我尝试分配25M时,我得到了致命的php错误。Free-m没有考虑ulimit。谢谢!任何关于php内存分配限制的想法。我看到最大内存大小,但显示为3391328 KB。输出中没有其他与内存限制相关的内容。IIRC ulimit-v是您要查找的内容。您需要以web服务器运行时的用户身份运行它。这很混乱。Free-m显示203M Free,但是当我尝试分配25M时,我得到了致命的php错误。Free-m没有考虑ulimit。谢谢!任何关于php内存分配限制的想法。我看到最大内存大小,但显示为3391328 KB。输出中没有任何其他内容与内存限制相关。IIRC ulimit-v是您要查找的内容。您需要以web服务器运行时的用户身份运行它。请尝试一下。同样的结果。像ini_设置'memory_limit'、'10000000000000m'那样添加更多内存;我试了一下。同样的结果。像ini_设置'memory_limit'、'10000000000000m'那样添加更多内存;