Moodle 3.9连接Redis缓存服务器失败问题排查求助
问题排查与解决方案
端口配置说明
默认Redis使用6379端口,若Red Hat端未修改端口,Moodle配置中可省略端口填写(PHP Redis模块会自动调用默认值),但建议手动明确填写6379进行测试,排除端口识别异常的可能。如果Redis修改过端口或存在网络端口映射,则必须指定对应端口。
Linux网络配置遗漏排查
- 防火墙规则放行:Red Hat默认使用firewalld,需确保6379端口对外开放,执行以下命令:
验证端口状态:firewall-cmd --add-port=6379/tcp --permanent firewall-cmd --reloadfirewall-cmd --list-ports,确认6379/tcp在输出列表中。 - Redis绑定地址调整:检查Redis配置文件(通常为
/etc/redis.conf或/etc/redis/redis.conf)中的bind参数。若设置为127.0.0.1,Redis仅监听本地连接,需修改为0.0.0.0(允许所有IP访问)或Windows Server的内网/公网IP,修改后重启Redis服务:systemctl restart redis - SELinux限制解除:Red Hat的SELinux可能拦截跨主机Redis连接,可临时关闭测试:
setenforce 0,若能正常连接,再添加永久规则放行:setsebool -P redis_bind_all_unreserved_ports 1 semanage port -a -t redis_port_t -p tcp 6379
其他可能的问题点
- Redis密码验证:若Redis配置了
requirepass密码,Moodle的Redis存储实例配置中必须填写对应密码,否则会连接失败。检查Redis配置文件中的requirepass项,确认后在Moodle配置中补充密码参数。 - 跨主机网络连通性:在Windows Server上执行PowerShell命令
Test-NetConnection myredisserver.mydomain.com -Port 6379,或用telnet myredisserver.mydomain.com 6379测试端口是否可达。若不通,说明存在路由、网关或运营商层面的网络限制。 - PHP Redis模块兼容性:Moodle 3.9对PHP Redis模块有版本要求(建议至少2.2.8以上),版本过低可能引发兼容性问题,可通过PHPInfo页面确认模块版本是否符合要求。
- Redis保护模式限制:若Redis开启
protected-mode yes(默认开启),且未绑定外部IP或设置密码,会拒绝外部连接。需关闭保护模式(protected-mode no),或同时设置密码并绑定外部IP。 - Moodle缓存生效问题:修改Redis缓存配置后,需清除Moodle本地缓存——删除
moodledata/cache目录下的文件,或在Moodle后台「站点管理」->「清除缓存」中操作,确保新配置生效。
内容的提问来源于stack exchange,提问作者luisdev
相关产品推荐
相关产品推荐

