ecshop 缓存文件丢失 temp/static_caches/shop_config.php 的解决方法
原因是 ecshop 的 includes/lib_common.php load_config 函数对应读取文件没做合适的检验,导致如果文件为空,那么会使 ecshop 完全瘫痪!
游子在最近的一个应用中遇到类似问题,经过一番研究发现,原来是temp/static_caches/shop_config.php文件被清空了,文件被清空的原因可能是多人同时操作后台的修改商店设置和清除缓存所导致的。
发现在include/lib_common.php的load_config函数中,读取静态缓存的地方判断并不完全,于是修改为下方代码:
解决方法如下:
打开 includes/lib_common.php 文件
修改成:
function load_config() { $arr = array(); $data = read_static_cache('shop_config'); if ($data === false || empty($data['lang'])) // 原来为 if ($data === false)
增加了 || empty($data[‘lang’]) 的判断这样当ecshop获取配置文件,如果配置文件为空的话就会重新查询数据库来获取配置文件信息,从而避免了当配置文件为空,导致站挂掉的问题。
文章不错,非常喜欢