相关疑难解决方法(0)

PHP/Apache的内存上限

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

Fatal error: Out of memory (allocated 1827405824) (tried to allocate 88800 bytes)
Run Code Online (Sandbox Code Playgroud)

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

ini_set("memory_limit","3000M");
Run Code Online (Sandbox Code Playgroud)

这句话似乎确实正确地控制了内存使用量,但我似乎无法将其高于1.8GB.好像上限内存被限制在其他地方.我也加入了php.ini ...

memory_limit = 3000M
Run Code Online (Sandbox Code Playgroud)

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

我正在使用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
?>
Run Code Online (Sandbox Code Playgroud)

浏览器输出......

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 …
Run Code Online (Sandbox Code Playgroud)

php apache memory-limit

19
推荐指数
3
解决办法
6万
查看次数

PHP在创建大型.zip文件时中止

我的php脚本使用ZipArchive()运行在CentOS 5.6和PHP 5.2.12上,并成功创建了超过1.6Gb的.zip文件,但没有更大的2GB或更大的存档 - PHP中止没有明显的错误.PHP错误日志或stderr中没有任何内容.该脚本正在cmd行执行,而不是以交互方式执行.

该脚本运行大约8分钟,临时存档增长,在检查文件大小时,最后一个列表显示tmp文件大小为2120011776,然后tmp文件消失,PHP脚本通过逻辑运行并在存档创建后执行代码.

出于某种原因,顶部显示CPU仍然处于95%并且正在创建一个新的tmp存档文件 - 它执行此操作再说5分钟以上并静默停止并保留未完成的tmp存档文件.在这个测试中 - 有不到4000个预期的文件.

所述脚本可以很好地创建较小的存档文件.

测试了几组不同的大型源数据 - 大文件的结果相同.

这个问题听起来类似于这个问题: PHP的zipArchive类的大小限制?

我想也许ls -l命令返回2K块的计数,因此2120011776将接近4GB但是该大小以字节为单位 - xxxx.zip.tmpxx文件的大小.

谢谢!

php zip ziparchive

9
推荐指数
1
解决办法
3186
查看次数

标签 统计

php ×2

apache ×1

memory-limit ×1

zip ×1

ziparchive ×1