Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP内存限制_Php_Apache - Fatal编程技术网

PHP内存限制

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脚本中测试内存分配。我在php.ini中将限制设置为128M。在脚本中,ini_get'memory_limit'报告128M为限制。问题是,当我开始分配空间时,我不能超过23米。我可以将内存分配限制在23M以下的任何级别,但不能分配更多。只是在寻找这个限制是在哪里施加的线索

这是我的测试脚本

<?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'那样添加更多内存;