Moodle从3.10.8升级至4.2.1时出现'cache类未找到'错误求助
修复Moodle升级至4.2.1时出现的“Class 'cache' not found”错误
以下是针对该问题的排查和修复步骤:
验证文件完整性与权限
- 重新下载Moodle 4.2.1官方安装包,对比本地
lib/cache/目录下的文件,确保所有核心缓存类文件完整无误,替换缺失或损坏的文件。 - 确认Web服务器用户(如www-data、apache)对Moodle根目录及
moodledata/cache/目录拥有读写权限,建议将目录权限设置为755,文件权限设置为644。
- 重新下载Moodle 4.2.1官方安装包,对比本地
手动清理全量缓存
- 直接删除
moodledata/cache/下的所有文件和子目录(保留目录本身),这比面板操作更彻底。 - 若服务器启用了PHP OPcache,重启Web服务器或执行
opcache_reset()函数刷新缓存,避免旧版本的缓存文件干扰。
- 直接删除
检查PHP环境兼容性
- 确认服务器PHP版本为7.4、8.0或8.1(Moodle 4.2.1的要求版本),通过
php -v命令查看。 - 检查是否安装了所有必需的PHP扩展,包括mbstring、xml、curl、gd、intl等,可通过
php -m命令列出已安装扩展,缺失的话及时安装并重启服务。
- 确认服务器PHP版本为7.4、8.0或8.1(Moodle 4.2.1的要求版本),通过
重新触发升级流程
- 直接访问
your-moodle-domain/admin/index.php,强制进入升级页面,完成剩余的配置更新。 - 若网页无法访问,使用命令行执行升级脚本:
php admin/cli/upgrade.php,该命令会输出详细的升级日志,帮助定位潜在问题。
- 直接访问
检查config.php缓存配置
- 打开Moodle根目录下的
config.php文件,若之前自定义过缓存相关配置(如$CFG->cachestore),暂时注释掉这些行,让系统自动生成适配4.2.1的默认缓存配置,升级完成后再按需调整。
- 打开Moodle根目录下的
内容的提问来源于stack exchange,提问作者Giovanni Chiaravalle
相关产品推荐
相关产品推荐

