Fatal error: Allowed memory size of 8388608 bytes exhausted解决方法

多试试:多试试-计算机技术与软件


http://www.njustjx.cn/thread-3727-1-1.html


dz备份时出现的问题,当内存请求超出8M限制的时候,php会抛出这个错误,这是一个很容易解决的问题。


解决办法(三种):

(1)改变php内存限制,只需要在你的程序头部加入: ini_set("memory_limit","12M");
The 12M sets the limit to 12 megabytes (12582912 bytes). If this doesn't work, keep increasing the memory limit until your script fits or your server squeals for mercy. 
You can also make this change permanently for all PHP scripts running on the server by adding a line like this to the server's php.ini file: 

(2)你同样可以修改你的php.ini文件: 
memory_limit = 12M
Keep in mind that a huge memory limit is a poor substitute for good coding. A poorly written script may inefficiently squander memory which can cause severe problems for frequently executed scripts. However, some applications are run infrequently and require lots of memory like importing and processing a big data file.

(3)在根目录建立.htaccess文件,添加如下内容
php_value memory_limit 12M

如果还不能解决,就把它改得再大一些。
最后注意的是重启服务器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误是由于 PHP 的内存限制导致的。在默认情况下,PHP 分配给脚本运行的内存大小是2 MB。当脚本执行时,如果超出这个内存限制,就会出现这个错误。 要解决这个问题,有几个方法可以尝试: 1. 增加 PHP 的内存限制:在脚本的开头添加下面这行代码可以将内存限制增加到64 MB: ini_set('memory_limit', '64M'); 2. 检查脚本中是否存在内存泄漏或过多的资源占用:有时候,脚本可能会有内存泄漏或者使用了过多的资源,导致超出内存限制。可以通过检查代码并优化它来减少内存的使用。 3. 如果脚本处理了大量的数据,可以尝试分批处理数据:将大的数据分成小块进行处理,这样可以减少脚本的内存使用。 4. 调整服务器的 PHP 配置:如果对服务器有权限,可以尝试修改 php.ini 文件来增加内存限制。找到 memory_limit 项并将其修改为一个更大的值。 需要注意的是,虽然增加内存限制可能会解决当前的问题,但过多地依赖内存也可能导致其他性能问题。因此,最好的解决方法是优化脚本,减少对内存的依赖。 ### 回答2: think php fatal error: allowed memory size of 2097152 bytes exhausted指的是thinkphp框架中出现了“致命错误:允许的内存大小为2097152字节用尽”的错误信息。 这个错误通常是由于PHP脚本尝试使用超过允许内存大小的内存量而导致的。2097152字节在内存中只占用2MB的空间,而该脚本需要更多的内存才能正常运行。 要解决这个问题,可以采取以下几个步骤: 1. 增加PHP内存限制:可以通过修改PHP配置文件中的memory_limit参数来增加内存限制。可以将memory_limit设置为更大的值,例如512MB或1GB,以满足脚本的内存需求。 2. 优化代码:检查代码中是否存在内存泄漏或不必要的大内存消耗操作。可以通过减少内存消耗的操作或者使用更有效的算法来优化代码。 3. 重启服务器:有时候修改了PHP配置文件后需要重启服务器才能生效。 4. 使用缓存机制:使用缓存机制可以减少对内存的依赖,例如使用缓存系统将重复的计算结果缓存起来,避免重复计算。 5. 使用分页加载:如果脚本需要处理大量数据,可以考虑使用分页加载的方式,每次加载一部分数据,减少内存消耗。 总之,解决think php fatal error: allowed memory size of 2097152 bytes exhausted错误需要增加内存限制、优化代码、使用缓存机制等多方面的综合措施,以确保脚本能够正常运行并避免内存消耗过大的问题。 ### 回答3: "think php fatal error: allowed memory size of 2097152 bytes exh" 是一个致命错误,表示在使用Think PHP框架时,PHP内存限制超出了预设大小。 这个错误通常发生在PHP脚本尝试分配超过2MB的内存时。默认情况下,PHP的内存限制是2MB,但这个值可以通过更改php.ini文件或在代码中使用ini_set函数来进行调整。然而,某些情况下,当代码尝试使用超过内存限制的内存时,会出现这个错误。 解决这个问题的方法有以下几种: 1. 增加内存限制:可以通过修改php.ini文件,找到memory_limit参数并将其设置为更大的值(例如256M或512M)。请注意,这需要对服务器有足够的权限。如果没有权限修改php.ini文件,也可以在代码中使用ini_set("memory_limit", "256M")来增加内存限制。 2. 优化代码:检查代码中是否有内存泄漏或者无限循环等问题。确保代码有效地使用内存资源并及时释放不再需要的变量。尽量避免使用大型数组或对象,或者使用分段处理的方式来减少对内存的需求。 3. 提高代码执行效率:通过对代码进行优化和改进,降低执行过程中的内存占用。可以使用缓存技术、数据库索引、循环处理数据量等方式来提高代码效率。 总之,处理这个错误的关键是增加内存限制并优化代码,以确保代码能够在可用内存的范围内正常执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值