126之家:提供網站快速收錄強大反鏈各大知名網站
您好,請 【登陸】【注冊】
今日熱門:
您現在的位置:126 > 資訊 > 教育 >

Moodle安裝部署過程中重定向循環問題的解決方案

作者:網友投稿 發布時間:2017-12-27 09:11 瀏覽:

此網頁包含重定向循環,shiro cas 重定向循環,重定向循環,網頁包含重定向循環,網頁存在循環重定向,shiro 重定向循環,cas 重定向循環,nginx 循環重定向,nginx 302 循環重定向

最新版本的安裝包,在安裝后會出現空白頁及重定向循環的問題。國內外的網站上都有對該問題進行提問。本論文分析了官方網站及各大技術網站對該問題的解決, 安裝部署過程中重定向循環問題的解決方案摘要最新版本的安裝包,在安裝后會出現空白頁及重定向循環的問題。國內外的網站上都有對該問題,安裝部署過程中重定向循環問題的解決方案安裝部署重定向循環解決方案摘要:最新版本的安裝包,在安裝后會出現空白頁及重定向循環的問題。國內外的,登陸顯示重定向只看樓主收藏回復核心會員剛安裝了我的也是這個問題,不知道怎么解決了芮中小妖精知名人士把, 架設完畢后無法再次登陸【求助】[問題點數架設完畢(編輯完個人信息后,且一切安裝流程沒有出現加載后提示錯誤:無法加載,此網頁包含重,最佳答案:首先確認你關閉了你本機的服務(,,之類)嗎?如果服務已經關閉,請檢查你的本機解析文件,系統就是\\\更多關于安裝部署過程中重定向循環問題的解決方案的問題;;

劉興

摘 要

Moodle最新版本的安裝包,在安裝后會出現空白頁及重定向循環的問題。國內外的網站上都有對該問題進行提問。本論文分析了Moodle官方網站及各大技術網站對該問題的解決方法,發現這些方法都無法解決上述問題。通過詳細的研究,本文提出了一種新的解決該問題的方案。

【關鍵詞】Moodle安裝部署 重定向循環 解決方案

1 引言

自2010年起,學院開展了全新的E-learning教學模式。通過數年的努力,將多門課程制作成網絡教學課程,取得了很好的效果。Moodle因為其開源的代碼和無任何授權所需要的費用,簡單的使用和編輯界面,高度的靈活性,以及能高效的進行二次開發的可能性。

2 安裝過程中遇到的問題

2015年底,我們決定將Moodle的版本進行升級為Moodle2.7。

但是當環境架設完畢并進行新版本的安裝到最后一個步驟后,瀏覽器長時間出現空白頁面。重新輸入“http://localhost/”后可進入XAMPP界面。但是輸入“http://localhost/moodle”鏈接后,瀏覽器無法進入Moodle的頁面進行訪問。

Google Chrome瀏覽器提示:“此網頁包含重定向循環”,如圖1所示。

Mozilla Firefox瀏覽器提示:“此頁面不能正確地重定向”,如圖2所示。

重新安裝Moodle后仍然提示該錯誤。嘗試Moodle2.8的版本安裝后,同樣也提示該錯誤。

筆者就該問題向Moode中文站發送了郵件,Moodle中文站沒有回復郵件。中國最大的開源技術型網站“開源中國社區”也有對上述問題的提問,無任何解決方法提供。

Moodle官方網站上相同問題就更多了。Rich Werner的提問“New installation results in blank pages”為最新的提問,但是都沒有解決方法。

3 Moodle官網和其他渠道的解決方案和驗證結果

3.1 新浪播客的解決方案

問題:進入密碼設置的界面,文件名是/user/editadvanced.php,設置完后點確定,出現了空白頁。再轉到首頁,就完全無法訪問。

解決:config.php文件中:$CFG->dataroot = D:\wamp\www\moodle24\moodledata24。

3.2 王大根老師發表的論文也提出了解決方案

$CFG—>wwwroot =http://localhost/

$CFG—>dirroot =D:\xampp\htdocs\moodle;//本地文件路徑

$CFG—>dataroot =D:\xampp\moodledata;//學生上傳作業文件夾地址

3.3 Moodle官方網站提出的解決方案

Check the dirroot variable in config.php. You must use complete, absolute pathnames

(e.g.)$CFG->dirroot = "/var/www/moodle".

上訴的方法都一致認為是在Config.php配置文件中,需要對“$CFG—>dirroot”字段進行屬性的設置。

設置“$CFG->dataroot”字段的屬性值

$CFG->dataroot = D:\xampp\moodledata;

添加“$CFG->dirroot”字段,并設置屬性值

$CFG->dirroot = D:\xampp\htdocs\moodle;

輸入http://localhost/moodle/。結果仍舊是空白頁面,并提示此頁面不能正確地重定向。

因此,上述方法所提出的添加完整的文件路徑,并不能解決重定向循環的問題。

4 解決方法探討

4.1 上述方法的問題

筆者發現當輸入“http://localhost/moodle”時,會自動跳轉到“http://localhost/moodle/admin/index.php”頁面。這說明moodle平臺的首頁面本應該是”moodle/index.php”頁面,但是卻跳轉到了在moodle/admin/index.php頁面。

經過分析代碼,發現moodle根目錄下的index.php文件中有如下代碼段。

“redirect($CFG->wwwroot ./. $CFG->admin ./index.php);”

“$CFG->wwwroot”字段的屬性為“http://localhost/moodle”

“$CFG->admin”字段的屬性為“admin”

所以該代碼段為鏈接到http://localhost/moodle/admin/index.php

這說明,即使在配置文件Config.php中不加入“$CFG->dirroot”字段,Moodle也會按內外網的地址加子目錄路徑的方式來確定完整的文件路徑。所以在Config.php文件中,添加完整的$CFG->dataroot路徑,并不是這類問題的最終解決方案。如圖3所示。

4.2 產生問題的真正的原因

輸入各類子欄目的鏈接如login,user,course時發現并不是所有的頁面都不能顯示。但是當要進入注冊、登錄等關鍵性鏈接頁面時,都會跳轉到admim目錄的index.php頁面。所以,這個頁面是出現問題的主要頁面。

通過分析發現,在Moddle目錄下的index.php文件中有如下條件判斷語句:if ($hassiteconfig && moodle_needs_upgrading())。意思是當hassiteconfig字段有效并且檢測到Moodle有更新時就自動跳轉到admin目錄的index.php文件進行執行。如圖4所示。

新跳轉的index.php文件里要判斷跳轉過程中的cache緩存的值和sesskey表單值是否有效。如果全部的驗證都確定為真時,設置cache的屬性值為0,并且opcache緩存重啟。否則設置cache的屬性值為1。

后續的條件判斷語句檢測到cache的屬性值為1時,就會執行redirect(new moodle_url(/admin/index.php, array(cache => 1)))語句。但是,頁面并沒有檢查出cache的屬性值,因此會重復的執行上訴語句,在兩個index.php頁面中進行死循環式的跳轉。如圖5所示。

4.3 解決方法

當嘗試對index.php頁面的條件跳轉指令進行修改,能夠解決上述問題。但是Moodle的條件跳轉指令里包含著許多檢測方式,修改后可能會對平臺產生影響。所以,推薦一種較為實用的方式,admin目錄下index.php文件里有如下代碼段:

if ( (isset($_GET[cache]) and $_GET[cache] === 0)

......

} else {$cache = 1;}

這段代碼為檢測Moodle是否有緩存信息和關鍵數據保護檢測。會根據不同的情況給cache字段賦值。

(1)將這段代碼注釋或刪除掉,使得moodle平臺在第一次安裝后進入該頁面不去考慮cache值的設置,而直接進入平臺的主頁面。

(2)在目錄欄內輸入“http://localhost/moodle/index.php?cache=1”。然后對平臺進行操作時,數據庫和緩存中會有新生成數據的寫入。

(3)此時再在index.php文件中恢復上述注釋或刪除的代碼段。再次打開Moodle平臺時,檢測機制會順利的通過,而不會出現因檢測語句冗余而產生的頁面重定向循環問題。如圖6所示。

5 結論

Moodle的緩存檢測和關鍵數據檢測的方法是完善和優秀的。但是在首次安裝后進入首頁時,這些檢測的判斷語句過于復雜和冗余。可能會導致某些終端在安裝時出現頁面重定向循環問題。對于一般的用戶,我們只能在不影響整個系統正常運行的前提下,適當的屏蔽掉一些判斷代碼,以使得安裝能繼續運行通過。該方法希望能為Moodle平臺的使用者提供參考和借鑒。

參考文獻

[1]Moodle official website,About Moolde[EB/OL].https://docs.moodle.org/28/en/About_Moodle.

[2]開源中國社區,Moodle Q&A [EB/OL]. http://www.oschina.net/question/tag/moodle?show=time.

[3]Moodle official website,Moodle Installation help[EB/OL].https://moodle.org/mod/forum/discuss.php?d=307819#p1238655.

[4]新浪博客[EB/OL].http://blog.sina.com.cn/s/blog_4d6ab1180101kzcd.html.

[5]王大根.基于Moodle的中職計算機網絡教學平臺的規劃與探究[J].中國建設教育,2010(01)51-54.

[6]Moodle official website,Moodle Installation FAQ[EB/OL].https://docs.moodle.org/28/en/Installation_FAQ# Why_are_all_my_pagesblank.3F.

作者單位

湖北工業大學 湖北省武漢市 430068

類似網站:

2019全年一波中特com