Prestashop 1.6.1.11(500)内部服务器错误(关联)字节已用尽

时间:2017-03-27 10:00:53

标签: php caching prestashop

我有一段时间在Prestashop论坛上发布了一个关于我不确定如何解决的问题的问题。我会将下面的链接发布到原始问题,我将非常感谢您对此问题的任何帮助。

Initial Prestashop Forum Question.

Prestashop 1.6.1.11:每次我访问某些产品并尝试编辑他们的关联时,我都会收到错误通知;

  

(500内部服务器错误)

     

加载选项卡时发生服务器错误:某些选项卡无法执行   加载。请刷新页面再试一次。如果你还是   遇到此问题,请检查您的服务器日志或联系   您的托管服务提供商。

我完成了几个步骤,尝试识别错误,如下面的代码片段所示,结果我能够返回一些有关错误的详细信息。

<php

// I enabled dev mode via config/defines.inc.php
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true);
}

?>
  

重新跟踪我尝试重现错误的步骤。

     

这是我的结果......

     

致命错误:第69行的/classes/cache/CacheFs.php中允许的内存大小为134217728个字节(试图分配8192个字节)

我向前迈了几步,希望能够纠正这个问题,但一切都无济于事。我将列出我在下面尝试的步骤;

  • 调整了我的php.ini以允许完整的内存限制,我将在下面发布完整的副本。 (memory_limit = 128M)
  • 联系我的托管服务提供商,在我的服务器上安装'xCache'缓存模块,希望能绕过默认的缓存解决方案并找到可能的修复方法。但是目前这是不可能的。
  • 检查最近安装的模块问题。 (没有找到)

我已经在网上进行了一些进一步的挖掘,但大多数解决方案看起来很普遍,例如重建代码以减少内存密集。可悲的是,我对我用现有知识可靠地解决这个问题的能力没有足够的信心,我正在寻求关于如何解决这个错误的一些建议。

此致 -B

修改

进一步挖掘后和禁用缓存后,我的错误位置已更改为; Adapter/Adapter_EntityMapper.php on line 98

2 个答案:

答案 0 :(得分:3)

你已经筋疲力尽了128M并且还耗尽了1024M,这是荒谬的(实际上,128M本身就是非常荒谬的)。

这不太可能是标准泄漏;看起来更像是循环分配。这几乎就像实体映射器找到了一个到另一个实体的链接,该实体通过再循环的公共带回到第一个实体。在尝试解析Entity-Relationship-Attribute图时,每个循环在嵌套结构中分配更多内存,直到所有可用内存都耗尽。

仅作为示例,甚至在PHP中都没有:

ProductA: {
    Name: "Phone charger",
    Details: {
         Accessories: {
             ProductB: {
                 Name: "Phone charger cable",
                 Details: {
                     Accessories: {
                         ProductA: {
                             Name: "Phone charger",
                             Details: {
                                 ...

您是否可以验证其中一个有效产品与无效产品之间的产品属性结构是否相同?

答案 1 :(得分:0)

您可以尝试禁用所有覆盖以查看问题是否存在:

  1. 启用调试模式/错误报告,在config / defines.inc.php中将配置值_PS_MODE_DEV_设置为true
  2. define('_PS_MODE_DEV_', true);

    1. 登录PrestaShop 1.6管理信息中心。
    2. 单击左侧栏上的“高级参数”菜单选项,然后单击“性能”。
    3. 切换调试模式部分中的“禁用所有覆盖”按钮