如何强制 Magento 使用 APC 缓存
Posted
技术标签:
【中文标题】如何强制 Magento 使用 APC 缓存【英文标题】:How to force Magento to use APC cache 【发布时间】:2011-08-09 02:22:02 【问题描述】:我刚刚在我的主机帐户上安装了 Magento Commerce,但性能相当缓慢。为了帮助加快站点速度,我安装了 APC 缓存,但无法使其正常工作。我用过这些install instructions.
我按照所有步骤操作,似乎安装了 APC。没问题。当我检查 APC.php 时,它只显示 1 次命中和 1 次未命中缓存,这是不对的……让我觉得 APC 没有激活或未被使用。
我试图通过将以下内容添加到 /var/www/app/etc/local.xml 来确保 Magento 使用 APC。
<cache>
<backend>apc</backend>
<prefix>alphanumeric</prefix>
</cache>
非常感谢任何帮助。
【问题讨论】:
只是一个愚蠢的问题:您确实重新启动了服务器,不是吗? PHP ini 指令在 PHP 模块加载时加载,即当服务器第一次需要该模块时。 我在 MediaTemple 的 Gridserver 上运行,所以不需要重启 Apache。据说更改会立即生效。 【参考方案1】:我建议您使用“字母数字”以外的唯一字符串。这样,如果您与其他用户或应用程序共享 APC,您的缓存就会有所不同。
您是否将 xml 节点放置在 local.xml 中的正确位置?上下文应该是这样的:
...
<session_save><![CDATA[db]]></session_save>
<cache>
<backend>apc</backend>
<prefix>ReplaceThisWithSomeUniqueString</prefix>
</cache>
</global>
另外,请确保您在更改 local.xml
后执行了 rm -rf /var/www/var/cache/*
。
【讨论】:
Jonathan,我确认了 XML 节点的位置并更改了字符串。我仍然没有多少运气。我检查了 PHPInfo 文件,APC 确实出现在那里。不过,APCInfo 仍然没有显示任何对缓存的命中。【参考方案2】:检查您的服务器日志并查找分段违规。当您只看到 1 次命中/未命中时,这肯定表明每次命中都会杀死服务器进程。这是 PHP 和 APC 版本的某些组合的问题。
如果您使用 mmap 后端,请尝试在不使用 mmap 的情况下再次编译 APC。 (我经常在使用 mmap 后端时遇到崩溃。)
一个问题,你用的是PHP 5.2还是5.3?
【讨论】:
【参考方案3】:我遇到了同样的问题。在我的情况下,我以错误的方式设置了最大文件大小的参数。我没有在值后面附加M
。
所以我写了 apc.max_file_size=10 而不是 apc.max_file_size=10M。
【讨论】:
这是为我做的。许多“安装”说明已经足够老了,早于 APC 现在需要的 M/G 后缀。以上是关于如何强制 Magento 使用 APC 缓存的主要内容,如果未能解决你的问题,请参考以下文章