喬顯亮
文章編號:1672-5913(2009)10-0180-02
摘要:Moodle平臺作為一個優(yōu)秀的開放式網(wǎng)絡(luò)課程管理系統(tǒng),可以方便地用來構(gòu)建網(wǎng)絡(luò)課程。本文主要論述了Moodle課程遷移到新的服務(wù)器后,由于服務(wù)器IP地址的改變而造成課程資源中部分鏈接失效的問題,分析了問題產(chǎn)生的原因,并找出了解決方案。
關(guān)鍵詞:Moodle;課程;Mysql;遷移
中圖分類號:G642
文獻標(biāo)識碼:A
Moodle是Modular Object-Oriented Dynamic Learning Environment(模塊化面向?qū)ο蟮膭討B(tài)學(xué)習(xí)環(huán)境)的縮寫,是專門針對廣大教師在信息化環(huán)境中設(shè)計、管理、實施和評價自己的課程與教學(xué)而開發(fā)的課程管理系統(tǒng)。Moodle自誕生之日起就以自由軟件的形式出現(xiàn),遵循GPL(GNU Public License)協(xié)議,這使它充滿了無窮的活力,吸引了一大批開發(fā)者和使用者,目前主流版本是1.9版。
1Moodle數(shù)據(jù)遷移中存在的問題
Moodle可以運行在Windows環(huán)境下,首次使用需要安裝,安裝成功后,系統(tǒng)會生成一個名為config.php的文件,內(nèi)含服務(wù)器的配置信息。如果要把Moodle整體遷移到另外一臺服務(wù)器上,只要拷貝整個Moodle文件夾到新服務(wù)器上,并把config.php文件中wwwroot項對應(yīng)的IP地址改為新服務(wù)器的IP地址,就可以了。
教師在使用Moodle建設(shè)課程資源的時候,往往用一臺計算機作為服務(wù)器添加教學(xué)活動和課程資源,完成網(wǎng)絡(luò)課程的制作。在這些課程資源建設(shè)完成后,若要遷移到另外一臺服務(wù)器上,課程資源中的有些內(nèi)容可以正常顯示,但是有些圖片或文件可能會因為鏈接無效而導(dǎo)致課程資源無法使用,這些問題可用通過修改Mysql數(shù)據(jù)庫中的數(shù)據(jù)予以解決。
2原因分析
Moodle中可以添加多種資源,主要包括編寫文本頁、編寫網(wǎng)頁、鏈接到文件或站點、顯示一個目錄、部署IMS包和插入標(biāo)簽等,不同類型的資源在Mysql數(shù)據(jù)庫對應(yīng)表中的字段類型和長度等不同。表1中以顯示一個圖片為例,列出了使用“鏈接到文件”顯示圖片和使用“編寫網(wǎng)頁”顯示一個嵌入式圖片的區(qū)別,這兩條記錄都是存儲在表mdl_resource中。
由表1可見,通過“鏈接到文件”所鏈接的圖片,保存在reference字段中,保存的僅是文件名,是一種相對路徑的存儲,沒有固定地和服務(wù)器IP地址對應(yīng),只要相對位置的圖片還存在,在整個Moodle課程拷貝到其他服務(wù)器上時,仍然會正常顯示;而通過“編寫網(wǎng)頁”在網(wǎng)頁中嵌入圖片,是在alltext字段中存儲了該網(wǎng)頁的html語句,其中的211.87.171.227是創(chuàng)建該網(wǎng)頁時所使用服務(wù)器的IP地址,alltext字段中的內(nèi)容不會因為服務(wù)器IP地址的改變而改變,該圖片將因找不到IP地址所指向的文件而無法顯示。
除了圖片文件外,其他類型的文件也都存在這種相對位置引用和使用IP地址進行引用的問題。而“添加活動”在Mysql中的存儲方式和資源的存儲方式類似,只不過不同的活動存儲在不同的表中。
3解決方案和步驟
Moodle平臺后臺數(shù)據(jù)庫可用Mysql,在數(shù)據(jù)庫管理方面,可以使用命令行,但是太多命令不利于記憶;可以借助于Mysql Administrator管理,但是在安裝和使用方面不是很方便。
PhpMyadmin 是一個以PHP為基礎(chǔ),以Web-Base方式架構(gòu)在網(wǎng)站服務(wù)器上的Mysql的數(shù)據(jù)庫管理工具,可以管理整個Mysql服務(wù)器,界面簡單友好,在Moodle中可以借助于PhpMyadmin進行數(shù)據(jù)庫的管理。
3.1在Moodle中添加PhpMyadmin
Moodle1.9版中不包含PhpMyadmin,可以從官方下載站點http://www.PhpMyadmin.net/下載,解壓后得到一個名為PhpMyadmin的文件夾,直接拷貝PhpMyadmin文件夾到..servermoodle文件夾下。
3.2修改配置文件
進入..PhpMyadminlibraries目錄,打開config.default.php文件,找到以下各項,將其后的字符串進行修改,如下:
$cfg['PmaAbsoluteUri'] = '211.87.165.136';
//新服務(wù)器的IP地址
$cfg['Servers'][$i]['host'] = 'localhost';
//通常用默認
$cfg['Servers'][$i]['user'] = 'root';
// Mysql的默認用戶
$cfg['Servers'][$i]['password'] = '123456';
// 密碼須與設(shè)置Moodle時相對應(yīng)
$cfg['DefaultLang'] = 'zh';
//選擇語言,zh代表簡體中文
3.3Mysql數(shù)據(jù)庫管理
打開IE瀏覽器,輸入http:// 211.87.165.136/PhpMyadmin,211.87.165.136就是新服務(wù)器的IP地址,就可以用PhpMyadmin管理包括Moodle數(shù)據(jù)庫在內(nèi)的Mysql數(shù)據(jù)庫,如圖1所示。
圖1 用PhpMyadmin管理Moodle數(shù)據(jù)庫
3.4修改資源的鏈接
為了能夠使課程資源在遷移到新服務(wù)器上之后能正常使用,需要修改相關(guān)表中的內(nèi)容,把用文本形式(VARCHAR或MULTITEXT等類型)記錄的鏈接資源修改與新服務(wù)器相對應(yīng)。Moodle數(shù)據(jù)庫共有200多張表,在課程資源建設(shè)完成以后,逐個表進行檢查和修改是不可行的,可以使用游標(biāo),用存儲過程自動逐條進行修改。
在Moodle數(shù)據(jù)庫中建立存儲過程P_ChangeIP,找出含有VARCHAR、MULTITEXT或TEXT類型的字段及其表名,定義一個游標(biāo),每次返回的結(jié)果是表名和其中的字段名,用CONCAT函數(shù)拼接字符串構(gòu)建SQL語句,在Update命令中使用Replace進行更新,用新服務(wù)器的IP地址替換原服務(wù)器的IP地址。
存儲過程的代碼如下:
CREATE PROCEDURE P_ChangeIP( )
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE tname,cname VARCHAR(64);
DECLARE cur1 CURSOR FOR
SELECT table_name,column_name
FROM information_schema.columns
where table_schema = "moodle" and
(data_type like "%varchar%" or data_ type like "%text%");
--information_schema是系統(tǒng)數(shù)據(jù)庫,通過它可獲取Moodle數(shù)據(jù)庫的表名、列名等信息
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO tname,cname;
IF NOT done THEN
set @sql_text:=concat("update ",tname, "set ",cname ," = replace(",cname,",
'211.87.171.227','211.87.165.136')");
prepare stmt from @sql_text;
execute stmt;
deallocate prepare stmt;
END IF;
UNTIL done END REPEAT;
CLOSE cur1;
END
存儲過程定義完成后,使用CALL Moodle.P_ChangeIP( )命令執(zhí)行之,就可以一次性完成對相關(guān)鏈接數(shù)據(jù)的修改了。
4結(jié)束語
作為一個正在不斷成長、日趨成熟的網(wǎng)絡(luò)教學(xué)平臺,Moodle的技術(shù)在不斷改進之中, 其技術(shù)改進需要使用者共同參與,進一步優(yōu)化軟件功能,開發(fā)更多適合國情的教學(xué)模塊,為教學(xué)提供更好的技術(shù)支持。隨著功能的不斷完善,Moodle必將為學(xué)校的網(wǎng)絡(luò)課程資源建設(shè)提供強有力的支持,成為提升教學(xué)質(zhì)量的有力工具。
參考文獻:
[1] 劉貫?zāi)?劉榮光,劉曉琴. 基于Moodle網(wǎng)絡(luò)課程的設(shè)計與實施探索[J]. 現(xiàn)代教育技術(shù),2008(6).
[2] 曹效英,徐勤岸. 基于Moodle的網(wǎng)絡(luò)課程開發(fā)[J]. 軟件導(dǎo)刊,2008(4).
[3] 楊慧玲,張志潔. Moodle平臺在網(wǎng)絡(luò)教育資源建設(shè)中的應(yīng)用[J]. 教育技術(shù)導(dǎo)刊,2007(8).
[4] 陳恒法,羅兵. 基于Moodle 教學(xué)輔助系統(tǒng)的應(yīng)用實踐[J]. 中國教育信息化,2007(5).
Solution to Moodle Course Migration Based on Mysql Database
QIAO Xian-liang
(Qingdao Ocean Shipping Mariners College, Qingdao 266071,China )
Abstract: Moodle is an excellent open course management system, It is powerful and easily to operate, can be expediently used to set up a network course. When Moodle course migrate to a new server, some hyperlink resources are disabled because of the change of the new server IP address, analyzing the reason, bringing forward a feasible solution.
Key words: Moodle; course; Mysql; migration