施建華 曹林峰

摘要:實驗研究了以UPUPW Nginx集成環境為Web服務器,Windows Server 2008 R2操作系統下搭建Moodle平臺的過程,經比較試驗得出了基于WNMP框架下,Nginx Web服務器、MYSQL數據庫和PHP的優化配置,以期提高Moodle平臺的訪問速度。
關鍵詞:Moodle;UPUPW Ngnix;性能優化;配置;教學平臺
中圖分類號:TP311.5 文獻標識碼:A 論文編號:1674-2117(2016)07-0104-05
Moodle(Modular Object Oriented Dynamic Learning Environment) 即模塊化的面向對象的動態學習環境,是澳大利亞教師Martin Dougiamas基于建構主義教育理論,設計開發的免費開源的課程管理系統(CMS),是目前世界上應用最廣泛的網絡教學平臺之一。?
Moodle能夠幫助教師高質量地創建和管理在線課程,建立有效的在線學習社區。它以建構主義學習理論為基礎而設計,充分體現了以學習者為中心的現代教育理念,為教師在信息化環境中設計、管理、實施和評價課程提供了一個開放的平臺。本實驗以64位Windows Server 2008 R2操作系統為研究樣本,選用UPUPW Nginx集成環境作為服務器軟件,采用WNMP架構來架設Moodle課程平臺,力圖避免繁瑣的服務器環境安裝和配置,嘗試平臺配置及功能擴展并實現性能優化,以期實現平臺穩定高效的訪問。
搭建平臺軟件環境
1.操作系統
Windows Server 2008 R2是一款64位的服務器操作系統。同Windows Server 2008相比,Windows Server 2008 R2繼續提升了虛擬化、系統管理彈性、網絡存取方式以及信息安全等領域的應用。該研究采用Windows Server 2008 R2標準版作為操作系統,且安裝了所有的系統更新。
2.UPUPW Nginx集成環境組建
UPUPW PHP環境集成包是目前Windows平臺下具有特色的Web服務器PHP套件,包括Apache版、Ngnix版和Kangle版。UPUPW PHP套件省去了搭建Web服務器PHP環境的復雜程序,下載解壓到裝有任意Windows系統電腦的非中文目錄即可運行。經比較,Ngnix服務器比Apache服務器的響應請求速度要快,因此本次Moodle教學平臺選用的服務器集成環境為UPUPW Ngnix版本。本次操作系統平臺為Windows 2008 Server R2,因此實驗環境選擇的版本為UPUPW Ngnix5.4版本,安裝完成后通過語言選擇即可實現操作界面中文化。它支持PHP擴展、Apache的mod_rewrit以及phpMyAdmin、SQLiteManager。無需輸入復雜的SQL語句,就可以通過phpMyAdmin直接管理MySQL數據庫;可一鍵啟動、停止以及重啟所有服務。其版本信息如下:
①數據庫服務器:服務器為LocalhostviaTCP/IP,服務器類型為MySQL,服務器版本為5.7.4-m14-MySQL Community Server(GPL),協議版本10,用戶為root@localhost,服務器字符集采用UTF-8Unicode(utf8)。
②網站服務器:nginx/1.6.0 (Win64)PHP/5.5.15擴展采用MySQL,數據庫客戶端版本為 libmysql-mysqlnd 5.0.11-dev,PHP擴展為mysqli。
③PhpMyAdmin.版本信息4.2.6。
3.Microsoft Visual C++ Redistributable組件環境安裝
Visual C++庫的運行組件,使用戶能夠在未安裝Visual C++的計算機上運行使用Visual C++開發的應用程序。經安裝測試得到結論:基于Windows 7及Windows Server 2008 R2操作系統,Moodle教學平臺可以成功安裝并且正常運行的前提條件是系統必須具備以下Visual C++組件:
①MicrosoftVisualC++2010x64&x86Redistributable-10.0.40219。?
②MicrosoftVisualC++2012x64&x86Redistributable-11.0.60610。?
在Windows Server 2008 R2平臺下,UPUPW Ngnix版本套裝安裝后,通過瀏覽器訪問,首頁如圖1所示,說明已經成功安裝。
安裝Moodle平臺
從Moodle官方網站下載當前穩定的Moodle版本Moodle2.9。
確定Moodle版本后即可通過UPUPW Ngnix進行平臺安裝。將下載的Moodle標準壓縮包moodle_2.9.zip拷貝到UPUPW Ngnix安裝路徑下的htdoc文件夾中(X:\upupw\htdoc,其中X為程序安裝所在分區),解壓縮后產生一個包含Moodle2.9安裝文件的Moodle文件夾。啟動服務器程序UPUPW Ngnix,在環境界面選擇數據庫管理工具phpMyAdmin,以root身份登錄,密碼也為root,新建Moodle數據庫整理方式選擇utf8_general_ci。單擊啟動Moodle安裝界面,借助安裝向導,進行相應的設置即可完成平臺搭建。值得注意的是,設置的管理員用戶名 (缺省為admin) 和登錄密碼必須妥善保存。Moodle系統正確安裝后的界面如圖2所示。
Moodle平臺配置
1.端口設置
UPUPW Ngnix安裝完成后,運行Local host測試啟動狀態,若不正常,多數情況是由于Ngnix的80端口被占用,那么可以修改Ngnix目錄下httpd.conf(X:\wamp\bin\Apache\Apache2.4.4\conf\)文件的listen端口,實現UPUPW Ngnix正常啟動。
2.位置時區設置
通過系統管理身份登錄,找到“設置—網站管理—位置—位置設置”,將默認時區設為UTC+8,國家/地區為中國。?
3.設置Moodle網絡訪問
首先確認局域網連接正常且已開通服務器遠程訪問,并允許用戶遠程連接到此計算機,確定服務器上的服務已啟動,Moodle能正常訪問:
第一種方式:局域網訪問設置。在Moodle根目錄下找到config.php(X:\wamp\www\moodle)文件,并將“http://loalhost/moodle”改為http://202.207.102.33/moodle(為服務器IP,以下同),在Nginx目錄中的httpd.conf文件找到Listen127.0.0.1:80修改為Listen202.207.102.33:80。
第二種方式:外網訪問設置。先在Nginx目錄下的httpd.conf文件中,找到語句#Listen12.34.56.78:80Listen80,在兩句間添加一行語句Listen202.207.102.33:80,打開Moodle根目錄下config.php文件,找到$CFG->wwwroot='http://localhost/moodle',把它改成$CFG->wwwroot='http://202.207.102.33/moodle'。
4.Moodle郵件發送設置
以管理員admin賬戶登錄,找到“設置—網站管理—插件—消息輸出-Email”,在SMTP主機欄輸入一個或多個本地SMTP服務器全稱或者直接使用服務器IP:http://202.207.102.33(郵件服務器已開啟SMTP轉發服務),設置SMTP服務器安全連接協議(如SSL)填入用于SMTP服務器身份驗證的用戶名和密碼。同時,在“插件—身份驗證—管理身份認證”的通用設置中,開啟“基于Email”的自助注冊。
Moodle平臺運行性能優化
1.PHP優化
PHP優化主要通過對文件php.ini(X:\upupw\php5)中的主要相關參數進行合理調整和設置加以實現。
①函數禁用(disable_functions)的設置。推薦的禁用函數包括phpinfo、passthru、exec、system、popen、chro-ot、escapeshellcmd、escapeshellarg、shell_exec、proc_open、proc_get_status等。若服務器中含有一些系統狀態檢測的PHP程序,排除禁用shell_exec、proc_open、proc_get_status等函數。
②腳本最大執行時間(max_execution_time=30)。如果一個PHP腳本被請求,必須在max_execution_time時間內執行完畢,否則停止執行并反饋超時錯誤。一般該選項保持默認,當PHP腳本確需較長執行時間時,應增大時間設置。
③腳本耗用內存限制(memory_limit=128M)。可根據服務器配置適當調高內存限制,這樣將Moodle緩存在內存中,以減少對外存的訪問,從而顯著提高平臺訪問速度。
④全局函數聲明(register_globals=Off)。此配置影響到PHP如何接收傳遞過來的參數。將該選項設置為On很可能在增加安全漏洞的同時隱藏了數據來源,從而引起嚴重的安全性問題,如果沒有特殊的需要,應保留默認設置。
⑤最大上傳文件尺寸限制(upload_max_filesize=2M)。根據實際應用需求及服務器配置,可以適當增大該設置。例如,在FileUploads區域將允許上傳文件的最大值upload_max_filesize=2M調整為8M;Data Handling區域,通過表單POST給PHP的所能接收的最大值(包括表單里的所有值)post_max_size=2M,修改為8M。設置上述參數后,上傳小于8M的文件一般不成問題。但如果超過8M,還需設置ResourceLimits區域參數,將每個PHP頁面運行的最大時間max_execution_time=30調整為600,接收數據所需的最大時間max_input_time=60調整為600。
⑥Session對話存儲位置。將Session存放目錄指向一個不能通過Web方式訪問但具備可讀寫屬性的文件夾,可有效保存會話數據,方便維護,提高系統安全性。
⑦最大會話生存周期(session.gc_maxlifetime=1440)。延長會話生存周期可以提高系統的穩定性。
2.MySQL優化
MySQL優化主要通過對文件mysql.ini(X:\upupw\mysql)中的主要相關參數進行合理調整和設置加以實現。在客戶端使用show-variables和show-status來查看變量設定值和當前值。通過動態調整MySQL參數來增加緩存,使MySQL性能達到優化,從而提高Moodle運行速度。有3個配置參數是最重要的,即key_buffer_size、query_cache_size、table_cache。
①key_buffer_size只對MyISAM表起作用,key_buffer_size指定索引緩沖區的大小,它決定索引處理的速度,尤其是索引讀取的速度。通過檢查狀態值Key_read_requests和Key_reads,可以知道key_buffer_size設置是否合理。通過實驗比較,本次設置key_buffer_size=256K。
②MySQL提供了查詢緩沖機制。使用查詢緩沖,MySQL將SELECT語句和查詢結果存放在緩沖區中,以后對同樣的SELECT語句(區分大小寫),將直接從緩沖區中讀取結果。通過調節以下幾個參數可以知道query_cache_size設置得是否合理:Qcache inserts、Qcache hits、Qcache lowmem prunes、Qcache free blocks、Qcache total blocks。通過實驗比較,本次設置query_cache_size=256K。
③table_cache指定表高速緩存的大小,每當MySQL訪問一個表時,如果在表緩沖區中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表中內容。通過檢查峰值時間的狀態值Open_tables和Opened_tables,可以決定是否需要增加table_cache的值。通過實驗比較,本次實驗設置table_cache=512K。
3.Ngnix Web服務器優化
Ngnix Web服務器優化主要通過對文件nginx.conf(X:\upupw\nginx\confg\)中的主要相關參數進行合理調整和設置加以實現,重要的配置參數如下。
①worker process:定義了Nginx對外提供Web服務時的worker進程數。最優值取決于許多因素,包括(但不限于)CPU核的數量、存儲數據的硬盤數量及負載模式。不能確定的時候,將其設置為可用的CPU內核數將是一個好的開始(設置為“auto”將嘗試自動檢測它)。
②worker_rlimit_nofile:更改worker進程的最大打開文件數限制。如果沒設置的話,這個值為操作系統的限制。設置后的操作系統和Nginx可以處理比“ulimit?a”更多的文件,所以把這個值設高,這樣Nginx就不會有“too many open files”問題了。
③worker_connections:設置可由一個worker進程同時打開的最大連接數。如果設置了上面提到的worker_rlimit_nofile,我們可以將這個值設得很高。最大客戶數也由系統的可用socket連接數限制,所以設置不切實際的高沒什么好處。
④tcp_nopush:告訴Nginx是在一個數據包里發送所有的文件,而不一個接一個地發送。
⑤tcp_nodelay:告訴Nginx不要緩存數據,而是一段一段地發送,當需要及時發送數據時,就應該給應用設置這個屬性,不然這樣發送一小塊數據信息時就不能立即得到返回值。
⑥keepalive_timeout:給客戶端分配keep-alive鏈接超時時間。服務器將在這個超時時間過后關閉鏈接。我們將它設置低些可以讓Ngnix持續工作的時間更長。
綜上所述,筆者從技術實現角度描述了以UPUPW Ngnix作為Web服務器運行集成環境,在Windows Server2008 R2系統環境搭建Moodle平臺的解決方案,通過實驗,最后得出了基于WNMP框架的Moodle系統運行框架的最優化配置。
參考文獻:
[1]黎加厚.信息化課程設計——Moodle信息化學習環境的創設[M].上海:華東師范大學出版社,2007:18.
[2]葉展.基于LAMP的開源課程管理系統Moodle的研究[D].長沙:湖南大學碩士學位論文,2007:11.
[3]曾棕根.Moodle網絡課程平臺[M].北京:北京大學出版社,2010.
[4]劉靜.基于Moodle虛擬學習環境的混合式學習模式的構建與研究[D].大慶:東北石油大學,2013.
[5]畢曉東.私有云模式下基于Moodle的課程協作學習平臺設計[J].軟件導刊,2014(1):85-86.
作者簡介:施建華(1979—),男,江蘇東臺人,碩士,講師,研究方向:教學信息化、網絡教學平臺。
基金項目:本文為2014年鹽工職院院級重點教學改革課題、2015年江蘇省高等教育教學改革課題“基于MOODLE系統的商貿服務專業群通用課程慕課教學平臺建設的研究與實踐”成果之一。項目編號:2015JSJG443。