Magento缓存未被清除

7
我在我的local.xml中遇到了一些配置问题,导致我无法加载我的Magento前端和管理面板。后来我修复了我在local.xml中的问题,并删除了/var/cache和/var/session文件夹中的所有内容,以便加载我的新配置。但令我惊讶的是,Magento仍然加载旧的local.xml设置。
我尝试重新启动apache并清除浏览器缓存,但什么都没有用。
您有什么想法吗?
2个回答

17
要更改核心配置并使其生效(例如local.xml,基本URL等),您需要清除Magento代码缓存,通常通过手动删除var/cache/中的mage--?子文件夹来完成。
缓存的配置可能会导致各种问题,包括基本URL仍然指向原始Magento安装(不同的文件夹,不同的服务器),尽管您可以使用phpMyAdmin并查看行已在数据库中更新。只有删除缓存的配置信息后,才会重新从数据库读取配置。
如果您正在使用APC op-code缓存,则另一个卡住的地方是其中。使用apc.php管理页面也可以清除它。停止和重启Apache将实现相同的结果。
最后,如果您没有正确设置var/cache/var/tmp/的权限,以便它们对您的Web服务器是可读和可写的,那么Magento可能会将缓存信息存储在系统/tmp目录中,这意味着无论清除Magento的缓存多少次,缓存配置都不会消失,直到有人重新启动服务器,系统/tmp目录被清除并且Magento似乎自动读取其配置。或者您被告知并且可以访问删除/tmp中的Magento缓存。这里有一些关于发生在根目录下的系统临时存储文件夹中的文档(参见图像)。
注意:如果您保存了local.xml文件的备份副本,请确保将其重命名为类似local.xml.sv1的名称,否则您会发现Magento仍然会读取它。

Magento Folder in system /tmp Magento Cache in system /tmp


我不知道为什么,在我的Magento安装中没有/tmp文件夹。正如我在问题中提到的,我已经从/var/cache中删除了所有magento--?文件。 - Thanu
3
不是Magento的var/tmp,而是系统的/tmp <-- 注意它以斜杠开头。 - Fiasco Labs
没有 /var/tmp,也没有 /system 或 /system/tmp。还有就是没有 /tmp :( - Thanu
最近在一个网站上遇到了一个令人费解的问题,其中存储范围设置了base_urls。一直像个傻瓜一样清除缓存,直到最后我才去了core_config_data表中的下一页... - user439441
1
手动删除 rm -rf cache(删除整个文件夹,而不仅仅是内容)并且不快速恢复它..将导致Magento将文件存储在[root]/tmp ;) - d.raev

10

成功解决问题,而这是最奇怪的事情。当我更改了local.xml来修复问题时,我放置了一个名为local_back.xml的旧文件备份。我只是删除了那个文件,现在一切正常。

注意:请查看下面的评论以获取更多细节,这与.xml文件扩展名有关。


5
哦糟糕,我没有想到这一点。Magento会读取它找到的所有**.xml文件并将它们包含在内。请始终将它们重命名,以便文件结尾不是.xml。例如,将备份保存为local.xml,并将其重命名为local.xml.sv1**。 - Fiasco Labs
这让我遇到了emacs本地.xml文件的自动保存问题。Magento正在读取~local.xml文件,数据库设置正在覆盖local.xml中的新设置。 - zlovelady

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接