当前位置: 首页 > 站长资讯 > 正文页面

Moodle安装部署过程中重定向循环问题的解决方案

此网页包含重定向循环,shiro cas 重定向循环,重定向循环,网页包含重定向循环,网页存在循环重定向,shiro 重定向循环,cas 重定向循环,nginx 循环重定向,nginx 302 循环重定向UV6网站目录_网站网址收录与提交入口

刘兴UV6网站目录_网站网址收录与提交入口

摘 要UV6网站目录_网站网址收录与提交入口

Moodle最新版本的安装包,在安装后会出现空白页及重定向循环的问题。国内外的网站上都有对该问题进行提问。本论文分析了Moodle官方网站及各大技术网站对该问题的解决方法,发现这些方法都无法解决上述问题。通过详细的研究,本文提出了一种新的解决该问题的方案。UV6网站目录_网站网址收录与提交入口

【关键词】Moodle安装部署 重定向循环 解决方案UV6网站目录_网站网址收录与提交入口

1 引言UV6网站目录_网站网址收录与提交入口

自2010年起,学院开展了全新的E-learning教学模式。通过数年的努力,将多门课程制作成网络教学课程,取得了很好的效果。Moodle因为其开源的代码和无任何授权所需要的费用,简单的使用和编辑界面,高度的灵活性,以及能高效的进行二次开发的可能性。UV6网站目录_网站网址收录与提交入口

2 安装过程中遇到的问题UV6网站目录_网站网址收录与提交入口

2015年底,我们决定将Moodle的版本进行升级为Moodle2.7。UV6网站目录_网站网址收录与提交入口

但是当环境架设完毕并进行新版本的安装到最后一个步骤后,浏览器长时间出现空白页面。重新输入“http://localhost/”后可进入XAMPP界面。但是输入“http://localhost/moodle”链接后,浏览器无法进入Moodle的页面进行访问。UV6网站目录_网站网址收录与提交入口

Google Chrome浏览器提示:“此网页包含重定向循环”,如图1所示。UV6网站目录_网站网址收录与提交入口

Mozilla Firefox浏览器提示:“此页面不能正确地重定向”,如图2所示。UV6网站目录_网站网址收录与提交入口

重新安装Moodle后仍然提示该错误。尝试Moodle2.8的版本安装后,同样也提示该错误。UV6网站目录_网站网址收录与提交入口

笔者就该问题向Moode中文站发送了邮件,Moodle中文站没有回复邮件。中国最大的开源技术型网站“开源中国社区”也有对上述问题的提问,无任何解决方法提供。UV6网站目录_网站网址收录与提交入口

Moodle官方网站上相同问题就更多了。Rich Werner的提问“New installation results in blank pages”为最新的提问,但是都没有解决方法。UV6网站目录_网站网址收录与提交入口

3 Moodle官网和其他渠道的解决方案和验证结果UV6网站目录_网站网址收录与提交入口

3.1 新浪播客的解决方案UV6网站目录_网站网址收录与提交入口

问题:进入密码设置的界面,文件名是/user/editadvanced.php,设置完后点确定,出现了空白页。再转到首页,就完全无法访问。UV6网站目录_网站网址收录与提交入口

解决:config.php文件中:$CFG->dataroot = D:\wamp\www\moodle24\moodledata24。UV6网站目录_网站网址收录与提交入口

3.2 王大根老师发表的论文也提出了解决方案UV6网站目录_网站网址收录与提交入口

$CFG—>wwwroot =http://localhost/UV6网站目录_网站网址收录与提交入口

$CFG—>dirroot =D:\xampp\htdocs\moodle;//本地文件路径UV6网站目录_网站网址收录与提交入口

$CFG—>dataroot =D:\xampp\moodledata;//学生上传作业文件夹地址UV6网站目录_网站网址收录与提交入口

3.3 Moodle官方网站提出的解决方案UV6网站目录_网站网址收录与提交入口

Check the dirroot variable in config.php. You must use complete, absolute pathnamesUV6网站目录_网站网址收录与提交入口

(e.g.)$CFG->dirroot = "/var/www/moodle".UV6网站目录_网站网址收录与提交入口

上诉的方法都一致认为是在Config.php配置文件中,需要对“$CFG—>dirroot”字段进行属性的设置。UV6网站目录_网站网址收录与提交入口

设置“$CFG->dataroot”字段的属性值UV6网站目录_网站网址收录与提交入口

$CFG->dataroot = D:\xampp\moodledata;UV6网站目录_网站网址收录与提交入口

添加“$CFG->dirroot”字段,并设置属性值UV6网站目录_网站网址收录与提交入口

$CFG->dirroot = D:\xampp\htdocs\moodle;UV6网站目录_网站网址收录与提交入口

输入http://localhost/moodle/。结果仍旧是空白页面,并提示此页面不能正确地重定向。UV6网站目录_网站网址收录与提交入口

因此,上述方法所提出的添加完整的文件路径,并不能解决重定向循环的问题。UV6网站目录_网站网址收录与提交入口

4 解决方法探讨UV6网站目录_网站网址收录与提交入口

4.1 上述方法的问题UV6网站目录_网站网址收录与提交入口

笔者发现当输入“http://localhost/moodle”时,会自动跳转到“http://localhost/moodle/admin/index.php”页面。这说明moodle平台的首页面本应该是”moodle/index.php”页面,但是却跳转到了在moodle/admin/index.php页面。UV6网站目录_网站网址收录与提交入口

经过分析代码,发现moodle根目录下的index.php文件中有如下代码段。UV6网站目录_网站网址收录与提交入口

“redirect($CFG->wwwroot ./. $CFG->admin ./index.php);”UV6网站目录_网站网址收录与提交入口

“$CFG->wwwroot”字段的属性为“http://localhost/moodle”UV6网站目录_网站网址收录与提交入口

“$CFG->admin”字段的属性为“admin”UV6网站目录_网站网址收录与提交入口

所以该代码段为链接到http://localhost/moodle/admin/index.phpUV6网站目录_网站网址收录与提交入口

这说明,即使在配置文件Config.php中不加入“$CFG->dirroot”字段,Moodle也会按内外网的地址加子目录路径的方式来确定完整的文件路径。所以在Config.php文件中,添加完整的$CFG->dataroot路径,并不是这类问题的最终解决方案。如图3所示。UV6网站目录_网站网址收录与提交入口

4.2 产生问题的真正的原因UV6网站目录_网站网址收录与提交入口

输入各类子栏目的链接如login,user,course时发现并不是所有的页面都不能显示。但是当要进入注册、登录等关键性链接页面时,都会跳转到admim目录的index.php页面。所以,这个页面是出现问题的主要页面。 UV6网站目录_网站网址收录与提交入口

通过分析发现,在Moddle目录下的index.php文件中有如下条件判断语句:if ($hassiteconfig && moodle_needs_upgrading())。意思是当hassiteconfig字段有效并且检测到Moodle有更新时就自动跳转到admin目录的index.php文件进行执行。如图4所示。UV6网站目录_网站网址收录与提交入口

新跳转的index.php文件里要判断跳转过程中的cache缓存的值和sesskey表单值是否有效。如果全部的验证都确定为真时,设置cache的属性值为0,并且opcache缓存重启。否则设置cache的属性值为1。UV6网站目录_网站网址收录与提交入口

后续的条件判断语句检测到cache的属性值为1时,就会执行redirect(new moodle_url(/admin/index.php, array(cache => 1)))语句。但是,页面并没有检查出cache的属性值,因此会重复的执行上诉语句,在两个index.php页面中进行死循环式的跳转。如图5所示。UV6网站目录_网站网址收录与提交入口

4.3 解决方法UV6网站目录_网站网址收录与提交入口

当尝试对index.php页面的条件跳转指令进行修改,能够解决上述问题。但是Moodle的条件跳转指令里包含着许多检测方式,修改后可能会对平台产生影响。所以,推荐一种较为实用的方式,admin目录下index.php文件里有如下代码段:UV6网站目录_网站网址收录与提交入口

if ( (isset($_GET[cache]) and $_GET[cache] === 0)UV6网站目录_网站网址收录与提交入口

......UV6网站目录_网站网址收录与提交入口

} else {$cache = 1;}UV6网站目录_网站网址收录与提交入口

这段代码为检测Moodle是否有缓存信息和关键数据保护检测。会根据不同的情况给cache字段赋值。UV6网站目录_网站网址收录与提交入口

(1)将这段代码注释或删除掉,使得moodle平台在第一次安装后进入该页面不去考虑cache值的设置,而直接进入平台的主页面。UV6网站目录_网站网址收录与提交入口

(2)在目录栏内输入“http://localhost/moodle/index.php?cache=1”。然后对平台进行操作时,数据库和缓存中会有新生成数据的写入。UV6网站目录_网站网址收录与提交入口

(3)此时再在index.php文件中恢复上述注释或删除的代码段。再次打开Moodle平台时,检测机制会顺利的通过,而不会出现因检测语句冗余而产生的页面重定向循环问题。如图6所示。UV6网站目录_网站网址收录与提交入口

5 结论UV6网站目录_网站网址收录与提交入口

Moodle的缓存检测和关键数据检测的方法是完善和优秀的。但是在首次安装后进入首页时,这些检测的判断语句过于复杂和冗余。可能会导致某些终端在安装时出现页面重定向循环问题。对于一般的用户,我们只能在不影响整个系统正常运行的前提下,适当的屏蔽掉一些判断代码,以使得安装能继续运行通过。该方法希望能为Moodle平台的使用者提供参考和借鉴。UV6网站目录_网站网址收录与提交入口

参考文献UV6网站目录_网站网址收录与提交入口

[1]Moodle official website,About Moolde[EB/OL].https://docs.moodle.org/28/en/About_Moodle.UV6网站目录_网站网址收录与提交入口

[2]开源中国社区,Moodle Q&A [EB/OL]. http://www.oschina.net/question/tag/moodle?show=time.UV6网站目录_网站网址收录与提交入口

[3]Moodle official website,Moodle Installation help[EB/OL].https://moodle.org/mod/forum/discuss.php?d=307819#p1238655.UV6网站目录_网站网址收录与提交入口

[4]新浪博客[EB/OL].http://blog.sina.com.cn/s/blog_4d6ab1180101kzcd.html.UV6网站目录_网站网址收录与提交入口

[5]王大根.基于Moodle的中职计算机网络教学平台的规划与探究[J].中国建设教育,2010(01)51-54.UV6网站目录_网站网址收录与提交入口

[6]Moodle official website,Moodle Installation FAQ[EB/OL].https://docs.moodle.org/28/en/Installation_FAQ# Why_are_all_my_pagesblank.3F.UV6网站目录_网站网址收录与提交入口

作者单位UV6网站目录_网站网址收录与提交入口

湖北工业大学 湖北省武汉市 430068 UV6网站目录_网站网址收录与提交入口

最新版本的安装包,在安装后会出现空白页及重定向循环的问题。国内外的网站上都有对该问题进行提问。本论文分析了官方网站及各大技术网站对该问题的解决, 安装部署过程中重定向循环问题的解决方案摘要最新版本的安装包,在安装后会出现空白页及重定向循环的问题。国内外的网站上都有对该问题,安装部署过程中重定向循环问题的解决方案安装部署重定向循环解决方案摘要:最新版本的安装包,在安装后会出现空白页及重定向循环的问题。国内外的,登陆显示重定向只看楼主收藏回复核心会员刚安装了我的也是这个问题,不知道怎么解决了芮中小妖精知名人士把, 架设完毕后无法再次登陆【求助】[问题点数架设完毕(编辑完个人信息后,且一切安装流程没有出现加载后提示错误:无法加载,此网页包含重,最佳答案:首先确认你关闭了你本机的服务(,,之类)吗?如果服务已经关闭,请检查你的本机解析文件,系统就是\\\更多关于安装部署过程中重定向循环问题的解决方案的问题;;UV6网站目录_网站网址收录与提交入口

   >>在贵阳市股票配资公司炒股过程中如何避开风险

  

此文由 网站目录_网站网址收录与提交入口 编辑,未经允许不得转载!: