php - PHP/Apache 的内存上限

标签 php apache memory-limit

我在运行我的 PHP 脚本时遇到错误....

Fatal error: Out of memory (allocated 1827405824) (tried to allocate 88800 bytes)

我已将这一行添加到我的 PHP 脚本中..

ini_set("memory_limit","3000M");

此语句似乎确实可以正确控制内存使用量,但我似乎无法将其控制在 1.8GB 以上。 好像内存上限在其他地方受到限制。 我还添加到 php.ini 中......

memory_limit = 3000M

有谁知道内存是否在其他地方受到限制?

我正在使用 Xampp 运行本地服务器。 我有 Windows 7,64 位和 4GB 内存。 我的脚本使用 PHP 的 GD 图像库,在尝试使用 ImageCreateTrueColor() 分配图像引用时出现错误。

(我知道这是一个巨大的内存量 - 但这只是一个脚本,而且这样做更容易。)

谢谢。

更新....

@elusive @Orbling 我希望每个人都对这个问题感到厌倦,但这里是说明问题的简化代码。

<?php
    ini_set("memory_limit","4000000000");
    echo "ini_get = " . ini_get('memory_limit') . "<br>\n";
    echo "memory_get_usage = " . memory_get_usage(true) . "<br>\n";
    $bigImageHandle = imagecreatetruecolor(22200, 24800);  //this is line 5
?>

浏览器输出...

ini_get = 4000000000
memory_get_usage = 524288

Fatal error: Out of memory (allocated 1843396608) (tried to allocate 88800 bytes) in
E:\User\My_Webs\experiments\houseshunting\temp\osMaps\t1.php on line 5

我用一组较小的图 block 和 imagecreatetruecolor() 使用的内存对此进行了测试,我估计我需要 2.7GB

最佳答案

使用 Acquia Dev Desktop,我遇到了很多内存限制崩溃问题。

在将内存限制增加到 PHP.ini 之后。

php_value memory_limit                  1024M
php_value max_execution_time            3000

这个问题不那么频繁但仍然会发生(尤其是使用 Feature Recreate 时)

在我的 httpd.conf 中,我将 StackThread 增加到 16M

ThreadStackSize 16*1024*1024

它解决了内存崩溃问题。 希望对你有帮助

关于php - PHP/Apache 的内存上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4399138/

相关文章:

php - 允许的内存大小为 134217728 字节耗尽(尝试分配 18063885380364533825 字节)

javascript - 如何在jquery中进行纯客户端购物车计算?

php - SQLSRV for PHP for MSSQL 的配置问题

python - Django 应用程序无法写入日志处理程序;没有权限

android - 在android studio中使用org.apache.http.client

php - ini_set ('memory_limit' ) 导致 php 崩溃

php - 使用 cookie 维护 PHP session_start()

PHP 网络应用程序

php - PHP/Codeigniter/jQuery/MySQL 的最佳数据访问方法