致命错误:Joomla 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)
Posted
技术标签:
【中文标题】致命错误:Joomla 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)【英文标题】:Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 32 bytes) in Joomla 【发布时间】:2013-04-07 20:08:43 【问题描述】:我今天早上在共享主机上创建了一个 joomla 网站。一切都很顺利,我正在上传内容。突然,当我去创建我的第三个类别时,我得到了以下错误:
致命错误:第 208 行 /home/mysite/public_html/libraries/phputf8/utils/unicode.php 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)
我在自定义 php.ini 中尝试了max_execution
,但它仍然没有帮助我。
我无法联系我的托管公司,因为他们没有支持论坛或任何东西。
有没有办法修复这个问题?
【问题讨论】:
【参考方案1】:@Dasun 是对的,32 mb 是非常多的内存:
打开调试功能(管理员 -> 全局配置 -> 系统 -> 调试系统),你会看到谁在消耗这么多内存。如果无法摆脱模块/组件,请尝试启用长时间超时的缓存。
一定要尽快更换托管服务提供商!
【讨论】:
我试图访问 joomla 全局配置,但它给了我同样的错误。它总是指向 library/phputf8/utils/unicode.php,它是 ofc,我相信是 joomla 的某个人编写的文件。如果有一个永无止境的循环,我认为他们不会分发包裹。 绝对不是那样的,但是这个库被许多第三方组件调用并且它可能是其中之一,调试会给你一个基本的跟踪开始【参考方案2】:是的,换个新主机——在没有联系方式的情况下它们如何运作是我无法理解的。
错误是说您只有 32Mb 的空间供 PHP 运行,而当 PHP 尝试分配超过该空间时它失败了。
您可以尝试在基于站点的php.ini
文件中增加PHP 的设置。例如
memory_limit=64M;
或者,如果本地 php.ini
不起作用,您可以尝试将其添加到 .htaccess
的顶部(假设您在 LAMP 服务器上)
php_value memory_limit 64M
如果您的主机允许,这将覆盖该站点的 memory_limit
设置。
【讨论】:
试过了,但我无法让公司重新启动 Apache。我相信我已经对他们进行了太多的窃听,他们不再回复我的电子邮件了。【参考方案3】:我刚有一位客户遇到了非常相似的问题。他们有一个 cPanel 站点,其中默认内存分配设置为 32M。我找到了另一个论坛,他们建议将下面的行添加到 Joomla 主页空间中的 index.php 以及管理员文件夹中的 index.php 文件中。像魅力一样工作。我直接在开始的 php 标签下面添加了它。
ini_set('memory_limit','64M');
这个答案是在http://www.robertwent.com/blog/joomla/19-joomla-increase-php-local-memory-limit-without-changing-server-settings找到的
希望对你有用
(这是我在这个网站上的第一个“答案”......如果我没有以网站的官方方式回答,请道歉)
【讨论】:
以上是关于致命错误:Joomla 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)的主要内容,如果未能解决你的问题,请参考以下文章
php中允许的内存大小为33554432字节耗尽(尝试分配43148176字节)