12

热解决这个问题,为什么会发生?

Zend 服务器日志:

PHP 致命错误:第 3 行 C:\Program Files (x86)\Zend\Apache2\htdocs\test\modules\main.php 中允许的内存大小为 134217728 字节已用尽(试图分配 538798977 字节)

如果文件main.php直接从浏览器执行,则不会产生任何错误。但是,如果我从另一个 PHO 文件中使用它的函数,那么 Zend Log 会打印出上述错误。

4

4 回答 4

14

我也遇到过这个问题。

增加以下变量,使您的页面执行不会停止:

  • max_input_time
  • memory_limit
  • max_execution_time
于 2012-09-04T13:16:01.100 回答
10

要么增加内存限制php.ini,要么尝试优化应用程序中的任何大型数据结构(如数组)。

在任何情况下,如果您的 PHP 应用程序使用 128MB 的 RAM,则可能出现问题。

此外,正如 Fluffeh 在评论中所指出的,您到底在做什么来利用 500MB 的 RAM?

于 2012-09-04T13:16:21.337 回答
7

尝试这个:

ini_set('memory_limit', '-1');

php.net/memory_limit

它将占用服务器的无限内存使用。

于 2012-09-04T13:15:59.657 回答
2

除了 user1427811 还可以监控time_limit下载memory_limit文件前后:

function custom_put_contents($source_url='',$local_path=''){

    $time_limit = ini_get('max_execution_time');
    $memory_limit = ini_get('memory_limit');

    set_time_limit(0);
    ini_set('memory_limit', '-1');      

    $remote_contents=file_get_contents($source_url);
    $response=file_put_contents($local_path, $remote_contents);

    set_time_limit($time_limit);
    ini_set('memory_limit', $memory_limit); 

    return $response;
}
于 2015-03-24T15:28:17.390 回答