我有一个问题增加PHP的内存限制为Apache模块。如何增加超过2GB的PHP内存限制?
如果我把下面的指令在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物理内存。
我有一个问题增加PHP的内存限制为Apache模块。如何增加超过2GB的PHP内存限制?
如果我把下面的指令在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物理内存。
输入以下到Apache的配置:
php_value memory_limit 2048M
您应该在支持64位操作系统,64位Apache版本和PHP相同的硬件上安装64位操作系统。但是这并不能保证使用PDF的函数可以使用如此大的内存。你最好不要将整个文件加载到内存中,将它拆分成块或使用文件函数来查找它,而不加载到RAM中。
我建议你在错误的光线下看问题。这个任务应该是'我在做什么需要2G内存在apache进程中通过apache模块使用Php,并且这个工具是否适合这项工作?
是的,你可以将一枚火箭绑在福特平托上,但它可能不是正确的解决方案。不管怎样,如果你真的需要它,我会提供火箭......你可以添加到脚本的顶部。
ini_set('memory_limit','2048M');
这将只为脚本设置它。你仍然需要告诉apache允许这么多的php脚本(我认为)。
我知道,脚本不是我的,它是一些html2pdf转换器,并输入到它非常大的HTML页面。 – mikikg 2012-08-09 14:16:53
@mikikg看到上面的答案 – Ray 2012-08-09 14:31:08
正确的解决方案和正确的解释!我碰到了只有一个脚本的内存限制,我的站点地图索引了太多的页面(存储在数据库中)。完美的解决方案,网站地图有很高的内存限制,其他一切都保持不变。 – HoldOffHunger 2017-07-08 01:13:00
对于其他人谁是同样的问题经历,这里是错误的PHP +补丁 https://bugs.php.net/bug.php?id=44522
对于无限的内存限制的描述memory_limit
变量设置-1
:
ini_set('memory_limit', '-1');
很高兴知道无限的内存是可能的,但是,我不认为我很快就会在代码中使用它。 =) – HoldOffHunger 2017-07-08 01:15:14
2G Apache进程!哇。 – Ray 2012-08-09 14:05:01
也许你应该把apache配置作为默认配置,并且'ini_set('memory_limit',-1);'只在你需要的文件上。看看是否有效。 – JRomero 2012-08-09 14:07:52
使用MB代替GB不会改变任何内容。我有一些其他的限制,也许在Apache配置的某处。另外,据我所知memory_limit不能在运行时更改,默认值是128MB。也许我可以在主php.ini中设置,但我不希望其他VHOST有这么大的设置,所以我使用它每个VHOST。 – mikikg 2012-08-09 14:12:43