Moodle本地插件版本变更后无法触发更新流程求助
Moodle本地插件更新流程未触发排查思路
问题描述
我的问题和Moodle事件观察者未触发的问题类似,但不是结构问题。安装插件后无法正常使用,一开始忘了修改版本号,后来更新了版本号,但回到主页后更新流程完全没触发。能在插件概览里看到这个插件,但没有任何设置项。试过打印信息调试,发现相关函数根本没执行,求排查思路。
插件概览截图:
插件详情截图:
排查思路
- 核对版本号更新:确认
version.php里的$plugin->version确实高于之前安装的版本号,且格式符合Moodle要求(需为整数,如2024052000),同时同步更新$plugin->release字段,避免Moodle判定版本未变更。 - 强制触发更新流程:
- 用命令行执行升级脚本:访问Moodle服务器,运行
php admin/cli/upgrade.php,这比网页端操作更稳定,能直接触发插件更新。 - 手动刷新通知页:在浏览器打开
你的Moodle站点地址/admin/index.php,多次刷新页面,查看是否出现插件更新提示。 - 彻底清除缓存:进入
/admin/purgecaches.php页面清除所有缓存,包括插件元数据缓存,确保Moodle识别到版本号变化。
- 用命令行执行升级脚本:访问Moodle服务器,运行
- 检查数据库插件记录:查看Moodle数据库的
mdl_plugins表,找到对应的本地插件(type为local,pluginname匹配你的插件名),确认version字段是否仍为旧版本,若未自动更新,可手动修改为新版本号后再执行升级。 - 验证核心文件完整性:
- 检查
version.php是否有语法错误(如括号不匹配、变量名错误),语法问题会导致Moodle无法读取版本信息。 - 若插件有
db/upgrade.php文件,确认升级函数命名正确(格式为xmldb_local_你的插件名_upgrade),函数内部无语法或逻辑错误,避免升级流程中断。
- 检查
- 查看错误日志:
- 开启Moodle调试模式,查看
debug.log中的插件相关报错; - 检查服务器PHP错误日志,查找是否有插件文件加载、函数执行失败的记录。
- 开启Moodle调试模式,查看
- 确认设置项配置:如果插件应包含设置项,检查
settings.php文件是否存在且结构正确,确认local_你的插件名_admin_settings()函数是否正确实现,无语法错误导致设置页无法加载。
内容的提问来源于stack exchange,提问作者D.Doe
相关产品推荐
相关产品推荐

