代码之家  ›  专栏  ›  技术社区  ›  Paul

致命错误:允许的内存大小,但不应该是

  •  1
  • Paul  · 技术社区  · 15 年前

    我正在移植Joomla的一个安装程序,我得到了这个错误:

    致命错误:允许的内存大小134217728字节已用完(尝试分配116字节)。

    在第117行的\wwwroot\libraries\joomla\error\exception.php中

    我试过提高限制,但这没有帮助(好吧,它不会,它只是试着分配116个字节)

    有什么想法吗?

    8 回复  |  直到 11 年前
        1
  •  2
  •   jstats    11 年前

    如果启用了memcache但未安装memcache客户机,则也可能出现此问题。

    如果是这样的话,只需pecl安装memcache(确保在php.ini中相应地启用了扩展),然后重新启动apache,就可以了。

        2
  •  1
  •   Nev Stokes    15 年前

    在使用gd进行图像操作时,我通常会遇到这样的错误。正如约格什建议的那样,在记忆极限上加一条线就解决了这个问题。例如:

    ini_set('memory_limit', '128M');
    
        3
  •  1
  •   John Conde    14 年前

    Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 40 bytes) in /home/site/public_html/libraries/joomla/error/exception.php on line 117

    我所做的(由于一些零碎的建议,将117的行改为以下行

    $this->backtrace = debug_print_backtrace();
    
        4
  •  0
  •   Nik    15 年前

    检查php.ini中的内存限制参数。

    它超过了那个限度。

    把它改成你的要求,然后再试。

    希望这有帮助。

        5
  •  0
  •   Paul    15 年前

    看起来Joomla核心文件有一些问题——比如获取一个新副本并用一个新副本覆盖index.php,现在一切都很好。奇怪的!

        6
  •  0
  •   tylerl    15 年前

    我遇到的另一个可能是您的一个MySQL表可能崩溃。尽管听起来很奇怪,但有时这种情况会以这种方式表现出来。

    简单运行 mysqlcheck -rA 检查并修复所有mysql表。

        7
  •  0
  •   Alexis Pigeon Shawn Skelton    13 年前

    为了解决这个问题,我到后台检查了站点的调试。

    我保存了配置,站点现在可以工作了。

        8
  •  0
  •   OscarGarcia Frank    11 年前

    这是一个非常古老的问题,但我现在有同样的问题,我想分享解决方案(其他答案对我没有帮助)。

    如果要移植joomla安装,则需要检查源主机和目标主机中与php相关的所有包。

    如果您使用的是基于Debian的Linux,则需要同时键入这两个命令:

    dpkg -l | grep "^ii  php5\?-"
    

    并测试是否安装了相同的包。如果没有,可以在源主机上键入:

    echo $(dpkg -l | grep "^ii  php5\?\-" | cut -d " " -f 3)
    

    复制结果并将其粘贴到目标主机上(例如,如果您使用的是ssh客户机):

    apt-get install php-mail-mime ... (lot of packages) ... php5-curl
    

    或者你可以试试这个:

    apt-get install $(ssh source_host dpkg -l | grep "^ii  php5\?\-" | cut -d " " -f 3)
    

    检查源机器是否正确(如果需要,请使用root@source\u host或另一个\u user@source\u host)。

    重新启动Apache2服务器(这不是必需的,但为了安全起见):

    service apache2 restart
    

    再次检查。

    如果在迁移后和迁移前使用Windows,请检查启用了Windows的扩展名(上载“info.php”文件以测试它们),并根据更改php.ini。稍后使用services.msc或命令行以管理员身份重新启动apache2服务:

    net apache2 stop
    net apache2 start
    

    我注意到了从一开始重新安装时的错误,并且没有通过需求检查。

    希望这对有同样问题的人有用。