致命错误: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字节)

Laravel 的 CheckForMaintenanceMode 中间件中允许的内存大小耗尽

Pimcore 内存限制错误

致命错误:允许的内存大小为 [重复]

我无法运行 PHPUnit