59

我在增加 PHP 作为 Apache 模块的内存限制时遇到问题。

如果我将以下指令放入 Apache 配置中,则可以正常工作:

php_value memory_limit 1.99G

但是超过 2GB 不起作用,它会将这个值恢复到 128MB。

这里有什么问题?我需要更多内存来处理一些与 PDF 相关的任务。

服务器是 Debian 2.6.32-5-amd64 #1 SMP,PHP 5.3.3-7+squeeze13,具有 12GB 物理 RAM。

4

8 回答 8

59

您是否尝试过使用 MB 中的值?

php_value memory_limit 2048M

也尝试在not Apache中编辑此值php.ini

于 2012-08-09T14:04:59.737 回答
49

我建议您从错误的角度看待问题。问题应该是“我在做什么,需要通过 apache 模块使用 Php 在 apache 进程中使用 2G 内存,这个工具集是否最适合这项工作?”

是的,您可以将火箭绑在福特 pinto 上,但这可能不是正确的解决方案。

无论如何,如果你真的需要它,我会提供火箭......你可以添加到脚本的顶部。

ini_set('memory_limit','2048M');

这将为脚本设置它。您仍然需要告诉 apache 允许这么多的 php 脚本(我认为)。

于 2012-08-09T14:11:02.550 回答
25

-1对于在memory_limit变量中设置的无限内存限制:

ini_set('memory_limit', '-1');
于 2014-05-07T09:52:20.433 回答
3

您应该在支持 64 位操作系统、64 位 Apache 版本和 PHP 相同的硬件上安装 64 位操作系统。但这并不能保证与 PDF 一起使用的函数可以使用如此大的内存。您最好不要将整个文件加载到内存中,将其拆分为块或使用文件函数在不加载到 RAM 的情况下对其进行搜索。

于 2012-08-09T14:10:26.667 回答
2

对于遇到同样问题的其他人,这里是 php + 补丁中的错误描述 https://bugs.php.net/bug.php?id=44522

于 2013-03-05T09:15:53.990 回答
1

在您的 Apache 配置中输入以下内容:

php_value memory_limit 2048M
于 2012-08-09T14:04:40.180 回答
1

你也可以试试这个:

ini_set("max_execution_time", "-1");
ini_set("memory_limit", "-1");
ignore_user_abort(true);
set_time_limit(0);
于 2018-09-24T15:30:38.067 回答
0

即使ini_set("memory_limit", "-1");设置了命令行 php,我也遇到了同样的问题,所以限制在 php 中,而不是来自 apache。

您应该检查您是否使用的是 64 位版本的 php。

查看有关检查代码是否在 64 位 PHP 上运行的问题,以了解您正在使用什么 php。

我认为你的 php 是用 32 位编译的。

于 2020-02-04T21:59:33.243 回答