如何在Testbed测试服务器上运行现有Moodle环境并解决登录跳转问题
问题排查解决步骤
- 优先检查
config.php中的站点根地址配置:确认$CFG->wwwroot参数的值已修改为Testbed服务器的实际访问地址,示例:$CFG->wwwroot = 'https://192.168.50.20/moodle';,Moodle所有站内跳转逻辑默认读取该参数,是导致跳转生产的最常见原因。 - 清空Moodle缓存:修改配置后未清空缓存会导致旧配置持续生效,可直接进入
config.php中$CFG->dataroot参数对应的目录,删除cache、localcache、temp三个文件夹内的所有内容即可。 - 检查web服务器跳转规则:查看Apache虚拟主机配置、站点根目录下的
.htaccess文件,确认是否存在硬编码的301/302跳转规则指向生产地址,如有则修改为Testbed对应地址。 - 反向代理适配(如果Testbed有前置代理/CDN):可在
config.php中增加一行配置$CFG->reverseproxy = true;,强制Moodle优先读取$CFG->wwwroot配置,不读取代理传递的HOST头避免跳转异常。 - 校验自定义修改的
login.php代码:确认你修改的login.php文件中没有硬编码生产地址的跳转逻辑(如header("Location: 生产地址")类代码)。
附你提供的登录页代码存在小问题:表单提交地址为
https://192.168.50.20/moodle/login/index.php,但忘记密码链接为https://192.168.50.20/login/forgot_password.php,缺少了/moodle子目录前缀,后续可同步修正避免访问404。
内容的提问来源于stack exchange,提问作者janani
相关产品推荐
相关产品推荐

