【问题标题】:Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 32 bytes) in Joomla致命错误:Joomla 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)
【发布时间】:2023-03-16 06:09:01
【问题描述】:

我今天早上在共享主机上创建了一个 joomla 网站。一切都很顺利,我正在上传内容。突然,当我去创建我的第三个类别时,我得到了以下错误:

致命错误:第 208 行 /home/mysite/public_html/libraries/phputf8/utils/unicode.php 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)

我在自定义 php.ini 中尝试了max_execution,但它仍然没有帮助我。

我无法联系我的托管公司,因为他们没有支持论坛或任何东西。

有没有办法修复这个问题?

【问题讨论】:

    标签: joomla max execution fatal-error


    【解决方案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找到的

    希望对你有用

    (这是我在这个网站上的第一个“答案”......如果我没有以网站的官方方式回答,请道歉)

    【讨论】:

      猜你喜欢
      • 2014-08-31
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 2012-06-15
      • 2011-04-09
      相关资源
      最近更新 更多