【问题标题】:Cannot add items to Magento cart无法将商品添加到 Magento 购物车
【发布时间】:2010-08-04 05:56:04
【问题描述】:

我将尽可能简单地说明这一点,同时仍会讲述所有相关的细节。我将在下面列出网站详细信息:

http:///www.bubblegenius.com(首页当前锁定) 您可以访问里面的网站,并通过转到 http://www.bubblegenius.com/soap.html 来查看正在发生的确切情况。

我的一个客户在共享主机上运行了一个由 Magento 运营的电子商务商店。在那里成功经营了几个月的商店后,她开始遇到似乎是记忆问题的问题。在将商品添加到购物车时,该网站偶尔会停止工作或产生“致命错误”。

单击“添加到购物车”时,屏幕会变白——空白——没有任何警告错误。当我在 index.php 文件中打开错误检查并尝试将产品添加到购物车时,我收到以下信息:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 62914560 bytes) in /home/bubblege/public_html/app/code/core/Mage/Core/Model/Session/Abstract.php on line 234

我尝试在 php.ini、.htaccess 中将 php 内存增加到 128M、512M,甚至 2048M,甚至在 index.php 中使用

ini_set('memory_limi', '2048M');

将内存限制提高到 512 或更高不会产生上述致命错误,但不允许将任何物品添加到购物车。它产生以下消息:

"The item cannot be added to the cart."

现在最重要的是:我们将我的客户端转移到运行 768MB 保证(w\ 1.5GB 突发 RAM)的 VPS,并且我与服务器技术人员广泛合作以优化服务器。

但是,自从迁移到 VPS 后,错误一直存在。在您尝试将商品添加到购物车之前,该网站运行良好。

我搜索了每个 magento 留言板,寻找解决此错误的方法。我已经禁用了所有扩展,甚至尝试从新版本的 Magento 和以前的版本进行安装。

我已经完成了数据库修复、优化,并与运行干净版本的 Magento 的干净数据库进行了比较和修复。

截至目前,我已获授权提供高达 200 美元的资金来寻找可以一劳永逸地解决此问题的人。如果您对此有任何见解和答案,并认为您可以解决此问题,请在此处或直接与我联系。我可以提供服务器访问详细信息,并且可以与您一起解决任何问题和可能的解决方案。

另外,我的背景并不是真正以服务器管理员为中心,但我知道自己的方法,而且我已经使用 Magento 工作了几年。我的其他几个客户正在运行网站而没有问题。

【问题讨论】:

  • 我不想指出这一点,因为您可能已经检查过了,但是您是否也在 php5.ini 文件中设置了内存限制?你在 VPS 上运行 WHM 吗?这也可以覆盖它。
  • 我正在运行 WHM,但如前所述,我已经专门更新了 php、apache 和 mysql 的所有设置以在峰值运行。是的,php5.ini 也设置好了。

标签: magento e-commerce memory-management fatal-error


【解决方案1】:

您是否尝试过在您的本地计算机上运行相同的代码和数据库?这是一个好的开始。如果问题没有持续存在,则说明环境问题在起作用。如果问题仍然存在,请尝试针对 Magento 的新副本运行相同的数据库(基本上直接来自 repo 的代码)。如果问题消退,您可能遇到了代码问题。如果没有,数据库很可能是罪魁祸首。

接下来,添加新产品类型和新产品。尝试将它们添加到购物车。使用新客户等。

之后的调试取决于您发现的问题,但在 Magento 逻辑的某个地方,您会遇到问题。我猜它是数据库,因为 Magento 正确地依赖于数据库中存在的几件事。使用调试器单步执行代码可能会向您显示它从进程中退出的位置。

让我们知道情况如何。 :)

【讨论】:

  • 感谢您的意见。我做了很多不同的测试,包括你提到的那些。我已经对新数据库、旧数据库、新产品、新客户进行了 A/B 测试。问题似乎确实在数据库中。我还没有尝试过代码步进——你对如何去做有什么建议吗?我有 Firebug,它并没有透露任何不愉快的事情。有什么健壮的东西可以穿过 Magento 吗?
  • xdebug 将是最好的选择,但如果失败,则开始将调试语句添加到代码中。隔离哪行代码正在设置“无法添加到购物车消息”并使用 debug_print_backtrace() 来了解更多关于轰炸的信息。这可能会将您带到正确的地方。
  • 我正在安装 xdebug。我会试一试,看看它发现了什么。谢谢你的想法。
  • 好吧,安装了 xdebug,确保它正常工作(确实如此),然后复制步骤以获取错误。没有什么。没有错误,只是一个空白的白屏。我尝试调整内存,它做了同样的事情。
  • 你真的单步执行了代码吗?通过 Magento 的调用堆栈可能会很乏味,但是通过手动单步执行(带有一些智能断点),您可以看到导致大内存问题的原因。
【解决方案2】:

我也遇到了这个问题。解决方案是关闭 PHP 安全模式。这立即为我解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-03
    • 2021-12-20
    • 1970-01-01
    • 2016-12-19
    • 2020-01-14
    相关资源
    最近更新 更多