今天下午,我面临的缓存错误通常是通过删除app/etc/use_cache.ser解决(在这种情况下)(在这种情况下)解决(在这种情况下)。这个文件到底是什么?内容绝不是描述性的。另外,Magento在什么时候自行再生该文件?

有帮助吗?

解决方案

那是个 序列化的PHP阵列 这是启用应用程序中缓存功能的标志。这包括块,布局,翻译,配置,EAV等。这是停产的 1.2左右后的一段时间 在1.4 alpha 3中 - 因此,我认为您有一个 过度日期Magento安装.

在磁盘上找到要写/读取的文件的方法在类中 Mage_Core_Model_App 并被标记为弃用:

/**
 * Get file name with cache configuration settings
 *
 * @deprecated after 1.4.0.0-alpha3, functionality implemented in Mage_Core_Model_Cache
 * @return string
 */
public function getUseCacheFilename()
{
    return $this->_config->getOptions()->getEtcDir().DS.'use_cache.ser';
}

通常看起来像这样:

a:7:{s:6:"config";i:0;s:6:"layout";i:0;s:10:"block_html";i:0;s:9:"translate";i:0;s:11:"collections";i:0;s:3:"eav";i:0;s:10:"config_api";i:0;}

当不陈述的情况下可以看到这样的PHP阵列时:

Array
(
    [config] => 0
    [layout] => 0
    [block_html] => 0
    [translate] => 0
    [collections] => 0
    [eav] => 0
    [config_api] => 0
)

此类型文件的问题是,它必须由服务器写作,并且将其生存在app/ etc/中可能会使您的local.xml文件暴露于潜在问题,从而使您的数据库配置和加密键,如果您的权限错误,则可以读取。 。

在某个时候用管理缓存管理屏幕替换了这一点,该屏幕使您能够启用或禁用某些缓存区域。

有关use_cache.ser的故障排除问题的更多信息:

http://www.magentocommerce.com/wiki/groups/227/cache_is_not_wrable

在PHP中序列化:http://php.net/manual/en/function.serialize.php

其他提示

对于版本1.4+,此文件不应该存在。它在版本1.4.0.0-alpha3版本中被弃用。
对于1.4之前的版本,该文件用于存储缓存类型的状态(启用/禁用)。它存储了您在菜单下看到的东西 System->Cache Management.

许可以下: CC-BY-SA归因
scroll top