Moodle升级时出现cannotfindcomponent语言包组件缺失错误求助
Moodle升级时pt_br_old组件找不到(cannotfindcomponent)问题解决思路
问题描述
将Moodle从3.10版本升级至3.11及后续4.x版本,安装完所有缺失插件后,升级过程中触发语言包导入错误,错误提示:无法找到pt_br_old组件,错误代码cannotfindcomponent。已尝试以下操作但问题未解决:
- 下载并安装PT-BR 3.11语言包至lang文件夹
- 清理moodledata(路径
/var/AnotherName)内的缓存文件夹(未删除lang文件夹) - 更新Ubuntu系统
- 重新设置文件夹权限
- 保留旧版config.php
升级过程中仅收到input_vars低于5000、数据库格式不符合Moodle标准的警告,不影响流程但核心错误未解决。
解决步骤
1. 彻底清理语言缓存与无效文件
- 若能进入Moodle后台,前往
站点管理 -> 开发 -> 清除缓存,勾选所有缓存类型执行清除;若无法进入后台,直接删除moodledata下的cache/lang文件夹,同时删除Moodle核心目录下lang/pt_br_old(如果存在)。 - 重新下载对应目标版本(3.11或4.x)的官方PT-BR语言包,解压至
lang/pt_br目录,覆盖原有文件。
2. 移除数据库中旧语言包的无效引用
- 登录数据库,查找前缀为
mdl_config_plugins的表(表前缀以你的config.php配置为准),搜索包含pt_br_old的记录,直接删除这些无效条目。
3. 修复数据库格式问题
警告可能干扰升级流程,执行以下命令修复:
php admin/cli/check_database.php php admin/cli/fix_database.php
4. 调整PHP的max_input_vars参数
编辑对应PHP版本的配置文件(如/etc/php/7.4/apache2/php.ini或PHP-FPM配置文件),设置:
max_input_vars = 10000
重启Apache或PHP-FPM服务后,重新执行升级。
5. 命令行重新执行升级
通过命令行执行升级,避免网页端的缓存或权限问题:
php admin/cli/upgrade.php
内容的提问来源于stack exchange,提问作者Michel H.
相关产品推荐
相关产品推荐

