來(lái)源:《現代教育技術(shù)》2010年10期 作者:劉太如 朱林輝
【摘要】許多學(xué)校都已經(jīng)構建了自己的Moodle服務(wù)器,但是Moodle服務(wù)器的管理維護工作沒(méi)有跟得上,針對Moodle操作中管理員容易疏忽的環(huán)節和常犯的錯誤,總結出“三大紀律,八項注意”,從而指導Moodle管理員做好日常管理和維護工作。
【關(guān)鍵詞】Moodle;管理維護;服務(wù)器安全;服務(wù)器優(yōu)化
【中圖分類(lèi)號】G40-057 【文獻標識碼】A 【論文編號】1009—8097(2010)04—0143—07
一 問(wèn)題的提出
隨著(zhù)Moodle應用的普及,很多學(xué)校都架構起了自己的Moodle服務(wù)器,但是在服務(wù)器的日常管理與維護中出現很多問(wèn)題。不少學(xué)校由于 Moodle管理員不具備相關(guān)的知識技能,甚至沒(méi)有專(zhuān)門(mén)的Moodle服務(wù)器管理人員,使得他們的Moodle服務(wù)器常常因一些操作失誤或者使用不規范、存在安全漏洞、配置不當等等造成很大損失。
本文所有代碼、配置基于以下環(huán)境:CentOS5.2,Apache2.2.3,php5.2.6,Mysql5.0.22。
二 MOODLE管理的三大紀律
1 第一大紀律:密碼強化管理(強口令和更換機制)
作為服務(wù)器管理員,掌控賬號是最重要的職責之一,賬號管理的好壞直接決定著(zhù)服務(wù)器運行安全的優(yōu)劣。作為Moodle管理員需要特別嚴格控制的賬號包括:操作系統賬號、數據庫賬號、Moodle系統賬號。
(1) 操作系統根管理員密碼。Linux操作系統本身的安全性比較高,漏洞比較少,黑客攻擊Linux操作系統時(shí),最常用的方法是破解密碼,因此Linux系統密碼安全成為保障Linux服務(wù)器安全的重中之重。在日常的服務(wù)器管理中,管理員對此重視不夠,常常設置一些弱口令如“123456”、“111111” 等,給操作系統安全留下了很大的隱患。Linux服務(wù)器默認支持的密碼位數最少為5位,當前常用的一些暴力破解軟件很容易就能破解6位以?xún)鹊拿艽a,因此管理員在設置密碼時(shí)應該慎重,在此我們推薦將密碼設置為8位,采用字母大小寫(xiě)+數字+特殊字符的方式,如Qip5309!。僅僅設置一個(gè)固定不變的強口令還是不夠的,因為強口令也能很容易得被監控類(lèi)黑客軟件所攔截,所以還應該定期進(jìn)行密碼更改,具體更換周期可以根據服務(wù)器重啟頻率來(lái)定,如果頻率比較高則降低更換周期。
在此還要注意的一點(diǎn)是,管理員自己一定要牢記密碼,預防黑客的同時(shí),不能把自己也關(guān)在操作系統的大門(mén)之外。在此推薦結合中文詩(shī)句的拼音或某種有規律的變換來(lái)設置密碼,如用“BrysjHhrhl!”代表“白日依山盡,黃河入河流”、“2d10cfdy1024?”代表“2的10次方等于 1024?”等等。萬(wàn)一不小心遺失密碼,也可以采用如下方式解決。
方法一:進(jìn)入單用戶(hù)模式修改密碼。
進(jìn)入單用戶(hù)模式的方式有三種:第一種,使用Linux系統啟動(dòng)軟盤(pán)啟動(dòng),出現提示符后輸入:linux single。系統進(jìn)入單用戶(hù)模式。第二種使用Linux系統的引導程序LILO,同樣在出現提示符時(shí)輸入:linux single。第三種方式是最常用的,即使用引導程序GRUB。啟動(dòng)GRUB后用上下鍵將高亮光標選擇操作系統選項(…ro root…所在行),然后鍵入e進(jìn)行編輯。選擇kernel開(kāi)頭的一行,再按e鍵,在末尾,按空格鍵后加入single,按回車(chē)鍵退出編輯模式?;氐?GRUB界面,鍵入b進(jìn)入單用戶(hù)模式。
進(jìn)入單用戶(hù)模式后,運行級別為1,即獨占模式。在提示符“#”后輸入passwd root后重設root密碼,重啟后密碼會(huì )更新。還有一種方式是通過(guò)修改/etc/shadow文件來(lái)刪除root密碼。在提示符“#”后輸入vi /etc/shadow將root后第一個(gè)“:”和第二個(gè)“:”之間的字符全部刪除,即可清除root密碼,然后輸入wq!強行保存退出,再鍵入 reboot命令重啟后可以以空密碼登錄。
方法二:使用系統安裝盤(pán)。
如果方法一無(wú)法實(shí)現,則只能采用Linux系統安裝盤(pán)啟動(dòng),出現boot提示符后輸入linux rescue,進(jìn)入linux拯救模式,根據提示登入系統,重設root密碼命令如下:
#chroot /mnt/sysimage(讓系統成為根環(huán)境)
#cd /mnt/sysimage
#passwd root
更改密碼后重啟后就可以以新密碼登錄。
(2) 數據庫賬號。一些管理員在編譯安裝mysql后忘記設置mysql根密碼,使得系統存在很大的安全隱患。設置Mysql數據庫根用戶(hù)密碼的方式是:在 mysql安裝完成后,首先啟動(dòng)mysql,然后在提示符后輸入命令mysqladmin –u root password‘密碼’。目前大多數管理員都采用phpmyadmin對mysql數據庫進(jìn)行管理,在安裝phpmyadmin時(shí),也應該設置登錄驗證方式,將phpmyadmin根目錄下config.inc.php文件中的認證方式改為http,即$cfg['Servers'][$i] ['auth_type']='http';這樣以后登錄phpmyadmin時(shí)就需要輸入賬號密碼。僅僅設置密碼還不夠,最好將phpmyadmin的保存文件夾改名,從而隱藏phpmyadmin的登錄路徑,減少被暴力破解的幾率。
(3) Moodle管理員賬號。Moodle管理員密碼的設置同樣應該遵循上面的密碼設置規則,在1.9.7版本以后,Moodle加強了管理員密碼的安全性, 默認設置將密碼增加到最少8位,必須由大小寫(xiě)字母加數字和特殊字符組成,這樣的密碼強度,在目前的密碼破解軟件水平下已經(jīng)很難被破解。Moodle管理員不應開(kāi)設太多,一般開(kāi)設兩到三個(gè)管理員賬號為佳,平時(shí)的一般操作盡量采用普通賬號,盡量減少超級管理員賬號的使用次數,從而降低暴露機會(huì )。管理員賬號一定要專(zhuān)人專(zhuān)用,避免出現一個(gè)賬號多人使用的情況,這樣出現問(wèn)題后無(wú)法確定問(wèn)題的根源,加大了管理的難度。萬(wàn)一把Moodle管理員的密碼忘記了,可以采取下面的辦法重設密碼:
方法一:利用phpmyadmin重設密碼。第一步,進(jìn)入phpmyadmin;第二步,打開(kāi)mdl_user數據庫;第三步,點(diǎn)擊編輯用戶(hù)名為admin的記錄,修改密碼。在此需要注意的是,Moodle密碼字段采用了MD5加密(32位),因此不能直接清空或輸入明文,而應粘貼輸入相應的MD5編碼。如123456的MD5編碼(32位)為:e10adc3949ba59abbe56e057f20f883e。
方法二:通過(guò)上傳代碼強制修改密碼,具體代碼如下所示:
require_once( 'config.php' );
require_once( 'lib/adminlib.php' );
$admin = get_admin();
$adminusername = $admin->username;
echo"
當前要修改的是 '$adminusername'
";
update_internal_user_password( $admin, 'moodle' );
echo"密碼已成功修改為moodle,記得刪除此文件,現在可以用moodle做密碼登陸了!!";
?>
將以上代碼另存為resetadmin.php,然后上傳到moodle根目錄下,在瀏覽器里輸入http://你的moodle地址 /resetadmin.php看到修改密碼成功的提示后,就成功地將admin用戶(hù)密碼修改為moodle,在修改完成后記得刪除 resetadmin.php文件。
2 第二大紀律:及時(shí)升級
Moodle是由分布在全球各地的程序員共同維護的開(kāi)源軟件,在軟件的開(kāi)發(fā)過(guò)程中難免會(huì )出現漏洞,作為Moodle管理員應該時(shí)常關(guān)注 Moodle的發(fā)展動(dòng)態(tài),出現漏洞后,及時(shí)升級Moodle系統,避免造成損失。另外,最好將你的Moodle站點(diǎn)注冊,Moodle的創(chuàng )始人馬丁及其團隊會(huì )在發(fā)現漏洞之前將漏洞信息以及應對措施發(fā)到已注冊的網(wǎng)站管理員的郵箱,這樣可以及時(shí)修正漏洞,避免遭受攻擊。在升級時(shí),首先要做好系統及數據的備份工作;第二要注意盡量避免跨版本升級,比如從1.5升級到1.9,直接用1.9的網(wǎng)站文件覆蓋1.5的文件會(huì )造成很多問(wèn)題。正確的升級方法是,首先應該將 1.5升級到1.6,然后升級到1.7,再升到1.8,最后才是1.9,這樣逐級升級會(huì )避免因為數據庫的過(guò)大改動(dòng)給平臺造成的不兼容后果。第三要將原來(lái)的配置文件、主題目錄、語(yǔ)言包等復制和恢復。
升級的方法是用新版本的文件覆蓋原來(lái)的文件,然后登錄平臺點(diǎn)擊通告完成升級。在升級過(guò)程中除了注意避免跨版本升級外,還應注意不要覆蓋配置文件、語(yǔ)言包和主題文件,以及有過(guò)改動(dòng)的程序文件。由于升級的過(guò)程是不可逆的,在升級之前一定要先做好備份。備份方法為:
備份程序文件,即Moodle的主程序,一般是整個(gè)文件夾備份。
備份Moodle數據文件,即Moodledata文件夾(注意其存放位置和自定義的名稱(chēng))。
備份數據庫文件,可以使用命令:mysqldump Moodle數據庫名 > moodledata-backup.sql,將數據庫轉存為單獨的SQL文件。也可以采用Phpmyadmin的導出功能。具體步驟為:登錄 Phpmyadmin數據庫管理系統,選擇Moodle的數據庫,然后選擇導出,選中所有數據表,然后選擇另存為文件中的zip壓縮,點(diǎn)擊執行即可,具體設置如圖1所示。

3第三大紀律:訪(fǎng)問(wèn)有效控制
(1) 角色管理策略
Moodle1.8之后的版本中默認有七種角色:管理員、課程創(chuàng )建者、教師、沒(méi)有編輯權限的教師、學(xué)生、認證用戶(hù)和訪(fǎng)客。首先要了解各個(gè)角色的權限和作用范圍。管理員具有站點(diǎn)全部權限,管理員還具有分配管理員的權限,在分配管理員角色時(shí),應該慎重,因為分配管理員的同時(shí),復制了自己的權限。課程創(chuàng )建者,可以創(chuàng )建課程,可以分配課程內的以上七種角色,也可以對課程進(jìn)行編輯加工和進(jìn)行上課,課程創(chuàng )建者的角色可以在用戶(hù)策略里設置,在創(chuàng )建課程時(shí)的默認角色,一般設為教師,即課程創(chuàng )建者默認為教師角色。教師角色和課程創(chuàng )建者擁有的權限基本一致。沒(méi)有編輯權限的教師只能利用課程進(jìn)行授課和批改作業(yè),不能編輯課程活動(dòng)。學(xué)生的權限比較低,只能參加學(xué)習活動(dòng),參與討論,瀏覽課程內容。訪(fǎng)客是課程內權限最低的角色,只有瀏覽的權限。認證用戶(hù)是以上七種角色除了訪(fǎng)客外所有角色在登錄平臺后的統稱(chēng),認證用戶(hù)角色跟其他角色沒(méi)有沖突,設置認證用戶(hù)角色的目的是為了讓所有登錄用戶(hù)能夠參與網(wǎng)站層面的一些活動(dòng),比如討論區,問(wèn)卷調查等。其次在分配角色時(shí),還應注意全局角色、課程類(lèi)別角色、課程角色的區別,全局角色對平臺上所有的課程起作用;課程類(lèi)別角色則對該類(lèi)別或欄目?jì)鹊恼n程起作用;課程角色只對本課程起作用。例如課程管理員只能管理本課程內部的事務(wù),全局管理員則可以管理包括課程管理員權限內事務(wù)的所有事務(wù)。全局角色在整個(gè)站點(diǎn)內起作用,因此分配全局角色時(shí)要慎重考慮。最后,Moodle支持自定義角色,管理員可以根據需要修改當前角色權限或者添加新的角色,比如添加一個(gè)家長(cháng)的角色,可以在學(xué)生角色的基礎上選中允許查看實(shí)時(shí)日志、課程日志、查看成績(jì)報表等項目。另外需要注意學(xué)生、訪(fǎng)客和認證用戶(hù)角色無(wú)法刪除,即站點(diǎn)必須包括這三種角色。
(2) 文件夾讀寫(xiě)權限策略
Linux具有強大的文件權限控制能力,很多管理員在安裝Moodle時(shí)沒(méi)有注意到文件權限的重要性,在這種情況下如果黑客能夠猜解到文件夾的路徑,就能隨意訪(fǎng)問(wèn)Moodle的數據文件,甚至可以提升權限從而控制整臺服務(wù)器。但是,設置不當或太苛刻,Moodle系統也無(wú)法正常運行。因此,必須設置恰當的文件(夾)的讀寫(xiě)權限。
Linux下的文件權限,如圖2所示,左側第一列為文件夾的權限,d表示是文件夾,如果是-表示是普通文件。d之后分為三組,每組有三個(gè)字符,從左到右分別為,文件所有者權限(u)、文件所在組權限(g)和其他所有用戶(hù)的權限(o)。r表示文件可讀(r=4),w表示可寫(xiě)(w=2),x表示可執行(x=1)。Moodle數據文件存放目錄的正確權限應該為rwxr-xr-x,即755(具體換算方式可參考相關(guān)文檔),所屬用戶(hù)和組都為 apache。更改權限的命令為chown –R apache:apache moodledata(更改所屬用戶(hù)和組為apache)和chmod 755 moodledata(將文件夾權限更改為文件所有者具有全部權限,所屬組用戶(hù)和其他所有用戶(hù)具有可讀可執行權限)。

密碼強化管理、版本及時(shí)升級、訪(fǎng)問(wèn)有效控制策略是Moodle管理員所必須遵守的基本“紀律”,是保障Moodle運行安全的基礎,Moodle管理員在日常工作中應該遵守好,運用好這三大紀律,會(huì )讓你的日常管理事半功倍。
三 八項注意
以下八項注意是我們在日常管理工作中總結而來(lái),恰當的運用可以提高管理員的工作效率,讓管理員從繁重的日常維護工作中解放出來(lái),專(zhuān)注于創(chuàng )造性的工作。
1 第一項注意:服務(wù)器優(yōu)化
在保證服務(wù)器安全的前提下,服務(wù)器性能決定了一切,如果在使用Moodle時(shí),總是出現打不開(kāi)網(wǎng)頁(yè)或網(wǎng)速較“卡”的狀況,會(huì )嚴重影響使用效果。在此,從服務(wù)器硬件和軟件兩個(gè)方面對服務(wù)器性能進(jìn)行優(yōu)化設置。
(1) 硬件
在硬件方面制約Moodle訪(fǎng)問(wèn)性能的主要因素為內存和網(wǎng)絡(luò )環(huán)境,而網(wǎng)絡(luò )環(huán)境在排除木馬或病毒攻擊的正常情況下,大多數學(xué)校都基本上一致(校園網(wǎng)寬帶)。因此引起訪(fǎng)問(wèn)性能差別的主要為內存,Moodle官方描述內存每1G可支持50個(gè)人的并發(fā)訪(fǎng)問(wèn)。操作系統本身的運行還需要一定的內存保障,推薦為操作系統預留1G的內存。如果用戶(hù)同時(shí)訪(fǎng)問(wèn)的人數為100人,那么服務(wù)器內存最少應該3G,所以我們發(fā)現服務(wù)器內存為4G時(shí)就較流暢(2008年之前服務(wù)器普遍小于4G,一般為1G或2G),當然內存越高,服務(wù)器并發(fā)訪(fǎng)問(wèn)和數據處理的性能就越好。除了內存和網(wǎng)絡(luò )環(huán)境外,其它硬件如CPU等對性能的影響也比較大,但是在目前普遍雙核、四核CPU或更高配置的服務(wù)器水平下,基本都能滿(mǎn)足需求,在此不再特別強調。
(2) 軟件
Moodle服務(wù)器軟件環(huán)境是基于LAMP(Linux+Apache+PHP+Mysql)的,雖然LAMP黃金組合運行效率高,但是它的設置比較復雜,需要根據服務(wù)器的實(shí)際情況進(jìn)行配置,如果設置稍有不當,就會(huì )造成服務(wù)器運行瓶頸。一般情況下管理員在安裝完LAMP的環(huán)境后,還會(huì )安裝一些如Zendoptimizer和eaccelerator的加速軟件,此外管理員還需注意如下設置來(lái)優(yōu)化整個(gè)系統:
Apache
在編譯安裝完Apache后,許多管理員忘記取消包含extra目錄下一些配置文件命令的注釋,通常我們需要取消包含的文件包括:
#Include conf/extra/httpd-mpm.conf
#Include conf/extra/httpd-info.conf
#Include conf/extra/httpd-default.conf
取消注釋的方法是去掉前面的#號,忘記取消注釋的結果是Apache以默認的設置運行,不能發(fā)掘出Apache的最大潛力。
另外我們還需要對Apache服務(wù)器進(jìn)行優(yōu)化設置讓其支持更大的并發(fā)訪(fǎng)問(wèn)量。主要修改httpd-default.conf文件,httpd-default.conf文件的主要參數有:Timeout,Apache接收請求或發(fā)送請求內容之前的最長(cháng)等待時(shí)間,超過(guò)該時(shí)間時(shí),放棄該請求,并釋放連接。默認為300,推薦設置為30到60,對于訪(fǎng)問(wèn)量大的可以設置為30或15,設置一個(gè)較小值的好處是能夠用有限的CPU時(shí)間為更多的用戶(hù)服務(wù)。Keepalive是設置Apache是否允許在一個(gè)連接中有多個(gè)請求,一般情況下應該設置為on,因為通常Moodle的一個(gè)頁(yè)面會(huì )有多個(gè)請求。MaxKeepAliveRequests,在一個(gè)連接中的最大請求數,推薦設置一個(gè)較高數值,如設置為2048,默認為100。
PHP
因為安裝Accelerator和Zendoptimizer對PHP進(jìn)行了優(yōu)化,所以PHP的設置一般不需要特別優(yōu)化。php.ini的幾個(gè)重要參數設置如下:max_execution_time,程序最長(cháng)運行時(shí)間,一般設置為從30秒改為300秒甚至更大。 max_input_time,每個(gè)程序處理請求數據的最長(cháng)時(shí)間,可以設置與max_execution_time時(shí)間相等或更長(cháng)。之所以把這兩個(gè)參數設置為較大的值,是因為Moodle經(jīng)常需要進(jìn)行備份和恢復工作,而一些課程往往比較大,特別是從電信外網(wǎng)對教育內網(wǎng)訪(fǎng)問(wèn)時(shí),需要耗費比較多的時(shí)間,所以設置較大的值以避免操作超時(shí)。memory_limit,程序允許占用內存數量(每個(gè)PHP頁(yè)面吃掉的最大內存),一般2G內存可設置為128M。另外,在平時(shí)的管理工作中,管理員要注意upload_max_filesize與post_max_size的區別,前者是程序允許上傳的文件大小限制,后者是通過(guò)post方式上傳文件的大小限制,默認值都只有2M。在當前的多媒體環(huán)境下,往往需要上傳較大文件,如視頻、音頻,因此應該將這兩個(gè)值設得大一點(diǎn),如 128M,在Moodle中常常使用post方式上傳文件,因此推薦這兩個(gè)參數設置相同數值。這兩個(gè)值的設置還應注意不要超過(guò)memory_limit的值。
為了提高PHP的安全還應該在php.ini中禁止一些危險函數的運行,即為disable_functions設置參數,如設置為 disable_functions=phpinfo,passthru,exec,system,chroot, scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server。另外還要注意保證register_globals 的值為off,從而提高運行安全系數,其余的設置保持默認即可。
Mysql
Mysql本身提供了四種服務(wù)器設置方案,分別為small、medium、large、huge。以當前的Moodle服務(wù)器狀況來(lái)看,學(xué)校層面的應用設置為large便能滿(mǎn)足需求。具體操作可在安裝完mysql后,將share/mysql下的my-large.cnf復制到/etc下并改名為my.cnf。操作命令為:
cp/usr/local/mysql/share/mysql/my-large.cnf/etc/my.cnf。
上面的優(yōu)化方案只能是“因地制宜”,在具體的服務(wù)器環(huán)境中,受到訪(fǎng)問(wèn)人數、網(wǎng)絡(luò )環(huán)境等多種因素影響,還需要根據實(shí)際情況進(jìn)行試驗比較,確定最適合的優(yōu)化方案。我們在區域培訓與考核中,上述LAMP配置輕松應對了700人同時(shí)網(wǎng)上考試的并發(fā)考驗。
2 第二項注意:故障排除
Moodle管理員在遇到故障時(shí),應該怎樣應對呢?首先應該分析出錯原因,思考是在什么操作之后造成的故障;其次,嘗試恢復剛才的操作,如果故障依舊則繼續排錯;第三,打開(kāi)調試模式,打開(kāi)調試模式的方式有三種:方法一:以管理員身份登錄網(wǎng)站,選擇“服務(wù)器/調試”,在設置頁(yè)面中選中“顯示錯誤信息”,并根據需要設置顯示什么樣的調試信息,如“顯示所有信息”。點(diǎn)擊保存更改后再打開(kāi)出現故障的頁(yè)面即可顯示詳細的故障信息。方法二:通過(guò)鏈接直接進(jìn)入調試設置頁(yè)面。如果首頁(yè)無(wú)法顯示,或者管理鏈接無(wú)法顯示,此時(shí)可以直接通過(guò)鏈接地址進(jìn)入調試設置頁(yè)面,調試設置頁(yè)面地址為:http://你的 Moodle網(wǎng)站地址/admin/ settings.php ?section=debugging。此時(shí)設置同方法一。方法三:如果上面兩種方式已經(jīng)都無(wú)法實(shí)現,此時(shí)可以直接修改Moodle的設置文件 config.php,在文檔中添加以下代碼
3 第三項注意:網(wǎng)站安全
Moodle本身集成了豐富的安全相關(guān)設置,給管理員提供了許多安全選擇。Moodle安全相關(guān)的設置包括網(wǎng)站策略,HTTP安全,模塊安全,通告和防病毒等。
(1) 網(wǎng)站策略
網(wǎng)站策略是與安全相關(guān)的一些常見(jiàn)設置,主要包含是否強制用戶(hù)登錄后才可查看內容,對文件大小進(jìn)行限制,編輯帖子時(shí)間限制,密碼規則等。管理員在日常管理中比較容易出問(wèn)題的是上傳文件限制以及密碼規則設置。
上傳文件限制
Moodle對上傳文件的大小進(jìn)行了多重的嚴格限制,首先,管理員可以在“網(wǎng)站管理”->“安全相關(guān)”->“網(wǎng)站策略”->“上傳文件大小的最大值”里進(jìn)行設置,可限制整個(gè)站點(diǎn)內上傳文件的最大尺寸。這個(gè)設置的最大值主要受到php.ini中 upload_max_filesize和post_max_filesize以及Apache配置文件httpd.conf中 LimitRequestBody的影響。其次,課程創(chuàng )建者或教師可以在課程設置里設置最大上傳文件大小。最后,教師還可以在添加活動(dòng)時(shí)對上傳文件大小進(jìn)行限制,如在添加討論區活動(dòng)時(shí),限制允許上傳的附件大小。Moodle的上傳文件大小設置非常人性化,可以讓使用者靈活選擇文件大小限制。
Moodle不足的一點(diǎn)是沒(méi)有對上傳文件類(lèi)型進(jìn)行限制,用戶(hù)可以方便地上傳一些敏感類(lèi)型文件,如exe等可執行文件,php文件等,很容易被黑客利用。在此推薦對Moodle的源代碼進(jìn)行修改,添加文件后綴檢查功能。Moodle里用到上傳功能的模塊有:作業(yè)上傳、鏈接到文件里的上傳、添加圖片的上傳和論壇里的附件上傳。分別對應的文件為:mod/assignment/upload.php、files/index.php和mod /forum/ post.php??梢栽谶@三個(gè)文件里的參數定義之后添加如下代碼:
$allowedExtensions= array("txt","csv","htm","html","xml",
"css","doc","docx","xls","xlsx","rtf","ppt","pptx","pdf","swf","flv","avi",
"wmv","mov","jpg","jpeg","gif","png",”zip”,”rar”);
foreach ($_FILES as $file) {
if ($file['tmp_name'] > '') {
if (!in_array(end(explode(".",strtolower($file['name']))),$allowedExtensions))
{
die($file['name'].' 是不允許的上傳文件類(lèi)型!
'.''.'<< 返回');
}}}
雖然這段代碼不能從根本上解決上傳木馬、后門(mén)之類(lèi)的問(wèn)題,但至少能夠讓不懷好意者知道我們已經(jīng)做了應對措施。再加上后面的防病毒策略,對上傳文件進(jìn)行殺毒,這樣就基本上能夠防止用戶(hù)“不小心”上傳一堆有害程序或病毒。
用戶(hù)密碼規則
Moodle另一個(gè)非常有用的設置就是內置了用戶(hù)密碼規則設置功能,管理員可以設置密碼長(cháng)度,包含數字、大小寫(xiě)字母、特殊字符的數量等,可以根據實(shí)際需要進(jìn)行自由設置。在1.9.7中Moodle默認密碼長(cháng)度為8,必須包含至少一個(gè)數字,一個(gè)大寫(xiě)字母,一個(gè)小寫(xiě)字母,一個(gè)特殊字符。很顯然這樣的密碼設置安全性是非常高的。
(2) 模塊安全
Moodle的模塊安全這一個(gè)功能,是為了防止某些懷有不良意圖的人員在申請課程后,利用強大的模塊功能,如上傳文件,來(lái)提升權限,或做一些具有破壞性的操作,管理員可以根據實(shí)際情況設置,如設置網(wǎng)站在剛剛創(chuàng )建時(shí)只能使用論壇功能。
(3) 失敗信息通告
失敗信息通告是設置登錄Moodle平臺失敗時(shí),該如何處理這些失敗信息,一般設置為顯示登錄失敗信息給管理員,發(fā)送郵件的最少失敗數為默認的10即可,這項功能是防止有人猜解賬號登錄,如果失敗次數較多,可以考慮為惡意攻擊,平臺可實(shí)時(shí)發(fā)送郵件給管理員,方便管理員及時(shí)了解情況,并及時(shí)進(jìn)行處理。
(4) 防病毒
防病毒功能主要是指讓Moodle平臺對用戶(hù)的上傳文件進(jìn)行殺毒,防止因為上傳文件導致服務(wù)器中毒。目前Moodle只支持Clam AV這款開(kāi)源軟件,在服務(wù)器上安裝完Clam AV后,在Moodle的防病毒設置頁(yè)面填寫(xiě)安裝路徑和病毒隔離目錄,選中對上傳的文件使用Clam AV殺毒。
4 第四項注意:用戶(hù)身份驗證機制
Moodle支持多達15種的身份驗證機制,那么管理員應該如何選擇驗證方式呢?最常用的驗證方式有“E-mail驗證”、“手工添加用戶(hù)” 和“使用外部數據庫”。手工驗證是針對管理員的單個(gè)用戶(hù)添加或批量用戶(hù)添加,中小學(xué)的師生用戶(hù)適合手工添加。而對于面向社會(huì )開(kāi)放的Moodle網(wǎng)站,最常用的驗證方式為基于E-mail的驗證,在這種情況下需要用戶(hù)保證郵箱的真實(shí)可用,否則無(wú)法完成注冊。
基于E-mail的驗證。這種驗證方式的打開(kāi)方式是以管理員身份登錄Moodle平臺點(diǎn)擊用戶(hù)/身份驗證/管理授權,單擊E-mail驗證后面的灰色眼睛,將其點(diǎn)亮即可打開(kāi)基于E-mail的驗證,然后在此頁(yè)面的下部的通用設置中,選擇基于E-mail的自己注冊即可開(kāi)啟基于E-mail的驗證。用戶(hù)注冊后會(huì )收到一封注冊確認函,用戶(hù)點(diǎn)擊確認函中鏈接后即可通過(guò)E-mail驗證,完成注冊。

各學(xué)校在選擇使用Moodle系統時(shí)大多已經(jīng)運行了其它系統,例如單位的辦公信息網(wǎng),校園網(wǎng)等等。在安裝Moodle后,如果還需要另外注冊用戶(hù),會(huì )給使用者造成一些麻煩,“使用外部數據庫”功能則解決了這一問(wèn)題,開(kāi)啟后其他系統的用戶(hù)不必再次注冊,進(jìn)行統一認證,省去了管理員很多不必要的麻煩,同時(shí)也減少了用戶(hù)管理賬號的困難。
外部數據庫設置方法是:首先以管理員身份登錄平臺,選擇用戶(hù)/身份驗證/管理授權,激活使用外部數據庫驗證方式;其次,點(diǎn)擊設置,對其進(jìn)行參數設置。需要設置的主要參數為:主機,即外部數據庫的地址;數據庫類(lèi)型,Moodle目前支持幾乎所有的主流數據庫,可以根據外部數據庫類(lèi)型進(jìn)行相應選擇;數據庫名稱(chēng);數據庫所有者用戶(hù)名和密碼;數據庫中存儲用戶(hù)賬號信息的數據表名稱(chēng);跟Moodle平臺中的用戶(hù)名(username)對應的字段名,如 user;密碼字段是數據表中存儲密碼的字段,對應于Moodle中的password;密碼格式也需要根據自己情況進(jìn)行選擇,目前比較流行的密碼格式是 MD5加密,很少有系統使用純文本方式;為了避免現亂碼或識別問(wèn)題,最好還要選擇外部數據庫的編碼方式,對于簡(jiǎn)體中文用戶(hù),一般使用utf-8方式;如果需要更改密碼功能還可以設置更改密碼的地址。另外還可以設置數據映射,將Moodle的user表中的所有字段都跟外部數據庫中的字段進(jìn)行對應,從而豐富用戶(hù)資料,數據映射可根據需要自行填寫(xiě)。設置頁(yè)面如圖4所示。

當然,基于E-mail的驗證和外部數據庫兩種驗證方式也可以結合使用,從而滿(mǎn)足不同的需求。
5 第五項注意:用戶(hù)的批量注冊
在采用手工添加用戶(hù)賬號時(shí),管理員還可以批量上傳用戶(hù)信息。具體操作方法是,以管理員身份登錄Moodle平臺在用戶(hù)/帳戶(hù)/上傳用戶(hù)中選擇賬號文檔進(jìn)行上傳。文檔格式應該按照Moodle數據庫中的user表的字段進(jìn)行設置,帳戶(hù)文檔至少應該包括如下五個(gè)字段:username、 password、firstname、lastname、email。帳戶(hù)文檔可以采用記事本和Excel進(jìn)行編輯,在此推薦使用Excel,因為很多單位本身就采用Excel來(lái)存儲用戶(hù)信息。Firstname和lastname用來(lái)存儲用戶(hù)的姓和名,這一點(diǎn)跟中國的習慣不大相符,在學(xué)校里可以將這兩個(gè)字段分別設置為班級名稱(chēng)和真實(shí)姓名。Email也可批量產(chǎn)生,事后讓用戶(hù)修改成真實(shí)郵件地址,便于以后的溝通,還可以用于找回密碼和自動(dòng)接收管理員或教師的信息。編輯完成后,保存為csv(逗號分隔)格式,然后用editplus另存為uft-8編碼格式。全部完成后即可順利地批量上傳用戶(hù)了。在此需要注意的是,Moodle的數據庫在安裝時(shí),我們選擇的是utf-8單字節模式,編輯好的csv格式文檔默認為ansi編碼方式,直接上傳會(huì )使中文亂碼,因此需要轉換為uft-8單字節模式,轉換工具最好使用editplus等文本編輯器。如果用windows自帶的記事本雖然亦可將文檔轉換為utf-8模式,但中文版的記事本默認是雙字節的,仍然不能正確導入。
6 第六項注意:課程申請與批準
要允許注冊用戶(hù)申請開(kāi)課,首先以管理員身份登錄Moodle平臺,然后在課程下的課程申請里,選中可以申請課程,并設置課程默認的類(lèi)別和申請課程時(shí)要通知的管理員,設置通知的好處是管理員能夠及時(shí)知道有人課程申請,以便于管理員及時(shí)審核通過(guò)。審核課程是在課程下的待批申請里,審核后還可以對課程的分類(lèi)進(jìn)行修改。Moodle本身沒(méi)有很好地提供申請課程的鏈接(只有打開(kāi)所有課程的鏈接才會(huì )在底部有“課程申請”按鈕),所以需要管理員以添加 html模塊的方式將鏈接地址添加到平臺中,申請課程的地址為:http://你的Moodle地址/course/request.php??梢跃庉?html板塊,在代碼編輯模式下輸入申請課程,從而公布申請課程地址。
7 第七項注意:插件管理
Moodle是模塊化的課程管理系統,全球有成千上萬(wàn)的程序員在給Moodle開(kāi)發(fā)新功能,新模塊新插件的應用會(huì )給你的網(wǎng)站增色不少。例如:feedback(反饋單)插件對于教育教學(xué)非常有用,但在Moodle2.0之前尚未成為標準活動(dòng),需要管理員下載和安裝。下面主要從插件安裝和故障處理兩個(gè)方面來(lái)闡述插件管理,插件的設置以及功能的開(kāi)關(guān),都在網(wǎng)站管理/插件下,操作比較簡(jiǎn)單,在此不再贅述。
插件的安裝。插件分版塊、活動(dòng)和過(guò)濾器。插件的安裝大多采用將插件程序直接拷貝到相應的插件文件夾下,然后以管理員身份登錄平臺,點(diǎn)擊通告,完成安裝。版塊對應于blocks文件夾,活動(dòng)對應于mod文件夾,過(guò)濾器對應于filter文件夾。
8 第八項注意:外觀(guān)調整
Moodle也具有一定的外觀(guān)調整功能,管理員可以選擇主題風(fēng)格,首頁(yè)顯示模式,課程分類(lèi)等等。比較遺憾的是Moodle不支持在線(xiàn)編輯主題。管理員要更改主題只有登錄服務(wù)器,將主題文件下載到本地機器進(jìn)行修改,然后再上傳到服務(wù)器。
擁有一個(gè)個(gè)性化的主題風(fēng)格可以提升站點(diǎn)的形象,除了選擇下載別人的主題外,我們還可以自己設計主題,在此簡(jiǎn)單介紹一下主題風(fēng)格設計流程。
首先利用設計軟件設計風(fēng)格草圖,如利用photoshop設計主頁(yè)風(fēng)格。
其次,將風(fēng)格圖進(jìn)行切片,導出為html格式。
第三,將Moodle自帶的標準主題standard復制到本地。
第四,結合導出的html圖片和standard的頁(yè)面文件,修改CSS和各個(gè)頁(yè)面,將standard的頁(yè)面改為你設計的樣式。
最后上傳到Moodle的theme目錄下,在外觀(guān)/主題風(fēng)格/主題選擇器里選擇應用剛才制作的主題,即可完成主題的制作。
具體的制作過(guò)程需要管理員具備html、css、javascript知識,管理員可參考相關(guān)書(shū)籍進(jìn)行學(xué)習。
四 結語(yǔ)
限于篇幅,只是對一些問(wèn)題進(jìn)行了初步的探討,而且也盡量只講簡(jiǎn)單的過(guò)程和方法,不重述詳細做法和冗長(cháng)的結果,具體的深入研究還需要Moodle管理員在日常工作中多積累、勤思考。
參考文獻
[1] Martin Dougiamas.Moodle forums[EB/OL].
[2] 曹江華.RedHat Enterprise Linux 5.0服務(wù)器構建與故障排除[M].北京:電子工業(yè)出版社,2008:136-147.
[3] 黎加厚.Moodle課程設計[M].上海:上海教育出版社,2007: 199-237.
聯(lián)系客服