說起Moodle,我相信學習教育技術的同學應該都不陌生,在大學的網絡與遠程教育課中,我有幸與傳說中的Moodle相遇,然后相知,但是我絕對不會跟你們說一直到我畢業,我都沒有找到一個合適的時間與這位Ms.Moodle相識,盡管我知道她對我蠻有好感!這是為什么呢?為什么呢?為……呢?好吧,我承認,我之所以沒能好好認識一下Moodle,無外乎Moodle一直以來給我的感覺就一個:配置起來異常繁瑣,不僅安裝步驟甚多,需要安裝的軟件甚多,而且稍不注意就會出錯,出錯不要緊呀,要緊的是一個芝麻大的錯還需要花大半天時間來研究。總之一句話:安裝一次,心力交瘁一次。這幾天要不是因為需要在Windows Server 2008 R2 Enterpris服務器上安裝一個Moodle,我都不知道我什么時候才會再次帶着一絲敬畏以及一絲惆悵來研究Moodle。雖然這次也是經過幾天的鏖戰,但是最終還是大功告成,於是我以迅雷不及掩耳盜鈴之勢,果斷寫下這篇關於如何搭建Moodle的文章,沒啥別的想法,就是希望能幫助大家更好更快地搭建起屬於自己的Moodle平台。
好了,廢話不再啰嗦,下面就正式開始我們的Moodle搭建之旅吧,小伙伴們,Are you ready?Let’s go!!!
首先,簡單介紹一下這次安裝Moodle用到的軟件:
①apache_2.2.21-x64-openssl-1.0.0e.msi;
②mysql-5.5.40-winx64.msi;
③php-5.4.8-Win32-VC9-x64.zip;
④Moodle3.0.2+。
因為服務器是64操作系統,考慮到性能問題,所以Apache、PHP、MySQL都s使用了64位的安裝包,安裝包的下載地址我會在文章末尾附上鏈接,大家請自行下載。
到這里,有的小伙伴可能會問“Moodle不是有很多集成的安裝包嗎,直接下載一個一鍵安裝包分分鍾就搞定啦!”。確實,使用一鍵安裝包能幫我們免去非常多的步驟,而且幾乎不會出現什么安裝錯誤,但是我要說的是,現在的一鍵安裝包無非就是將Apache、PHP、MySQL、Moodle等軟件進行了整合與封裝,其自身就是一個封閉的PHP環境 + Moodle平台,正所謂“凡事有利則有弊”,一鍵安裝包雖然安裝簡單,但是卻不夠靈活,而且並發性能較差,用一鍵安裝包搭建起來的Moodle很可能滿足不了我們的性能需求,還有很重要的一點就是使用一鍵安裝包不利於我們深入去理解Moodle的技術架構,因為我們不清楚Apache、PHP、MySQL和Moodle之間具體怎么關聯起來的,倘若有一天我們想自己開發一款Moodle插件,或者是大腦靈光一閃,想自己做一個類似Moodle的平台,我們就必須更加清楚地理解Moodle的框架及其運行所依賴的PHP開發環境。也就是說,我們除了掌握Moodle的基本操作和使用方法之外,還必須對PHP相關的一些知識有所了解,了解的越多,掌握的越多,我們對Moodle的理解就越深。所以我在這里得出的結論是:征服Moodle第一步:老老實實學習PHP環境搭建。
首先,我們來安裝Apache,步驟如下:
1.點擊apache_2.2.21-x64-openssl-1.0.0e.msi安裝包,出現:
2.點擊Next。
3.選擇I accenpt the terms int the license agreement,點擊Next。
4.點擊Next。
5.這一步需要填寫Apache服務的一些信息,填寫的信息建議按照每一項括號中的格式來填寫。
a) Network Domain即Apache的網絡域名,如果你想公開你的Web服務器讓其他人也能夠訪問,那么你就填你申請到的正式域名,否則就建議按照給定格式隨便填寫
b) Server Name指Apache服務的名字,同樣,如果有正式的服務名就填寫正式的服務名,沒有就按照給定格式隨便填寫;
c) Administrator’s Email Address即Apache管理員的郵箱地址,同樣按照給定格式隨意填寫。
d) 下面的單選框直接選擇默認推薦的項,即for all users,on port 80,as a service -- Recommended,表示為所有用戶開放Apache服務,並且默認80作為Apache服務端口號。
然后點擊Next。
6.Typical為典型安裝模式,Custom為自定義安裝模式,我們選擇Custom模式,點擊Next。
7.這里可以選擇需要安裝的項和安裝的路徑,我們選擇安裝全部項,即選中Apache HTTP Server 2.2.21。我選擇的安裝路徑為E盤下的目錄,大家可以自行選擇一個合適的路徑。然后點擊Next。
8.點擊install開始安裝。
9.點擊Finish完成安裝。
10.接下來我們可以通過在瀏覽器中輸入http://localhost來驗證Apache是否安裝成功,如果瀏覽器輸出“It Works”,則表示Apache安裝成功了,如圖:
至於為什么輸入http://localhost會出現“It Works!”,是因為Apache安裝成功之后即啟動了Apache服務,如果在瀏覽器中訪問localhost,則網絡請求將發送給Apache服務器,Apache服務接收到請求之后便會去默認的站點根目錄尋找相應的站點文件進行訪問,Apache默認的站點根目錄位於安裝完成之后的htdocs文件夾,我的電腦上的路徑為E:\Program Files\Apache Software Foundation\Apache2.2\htdocs,在htdocs文件夾下,默認有一個index.html的文件,打開index.html,我們會發現里面就一段很簡單的html代碼,在html的body部分顯示了一行文字,即“It Works!”
到這里,我們就可以開始思考了,待會兒我們安裝Moodle的時候要怎樣才能訪問Moodle的安裝主頁了呢?大家先自己想一想,后面在進行到Moodle安裝的步驟時我會詳細說明。
安裝好了Apache,我需要簡單說明一下我們怎樣啟動和關閉Apache。
首先,找到Apache的控制台。在開始菜單的Apache安裝目錄里面有一個Monitor Apache Services,點擊它就可以打開控制台了,此外,在Windows資源管理器中Apache安裝目錄的bin里面,也可以找到控制台,即ApacheMonitor.exe文件,點擊它便可打開Apache控制台,如圖:
控制台打開后,電腦右下角會出現控制台的圖標,如圖(藍色圈中即控制台圖標):
雙擊控制台圖標,我們進入控制台界面:
左邊Service Status框中列出了當前計算機上所有的Apache服務器,我們現在啟動的是安裝好的Apache2.2。在右邊有一排按鈕,通過點擊這些按鈕,我們可以選擇要啟動的Apache服務,並對其進行啟動、關閉、重啟等操作。我們在安裝和訪問Moodle的時候,必須要保證Apache服務是正常開啟的。
安裝完Apache只是完成了整個配置的一部分,我們要想搭建整個PHP環境還需要進行進一步的配置。
接下來,我們講解一下PHP的配置。
首先,把PHP的壓縮包php-5.4.8-Win32-VC9-x64.zip解壓到你要安裝PHP的目錄(我是直接解壓到E盤中Program Files文件夾下面的),為了避免文件夾名字過長,我們重命名解壓后的文件夾為php54,文件夾可隨意取名,只要符合規范就OK,如圖:
解壓之后的文件夾中有幾個關鍵的地方需要說明一下。
1.關於ext文件夾,這個文件夾下面有很多.dll文件(.dll文件為動態鏈接庫文件),這些文件是PHP的擴展文件,擴展文件的作用是對現有版本的PHP進行一些功能和性能上的擴充,以使PHP的功能和性能得到更大程度的發揮,我們在后面安裝Moodle的時候需要在PHP的配置文件中打開一些擴展,比如php_curl擴展、php_gd2擴展、php_mbstring擴展、php_mysql擴展、php_mysqli擴展等;
2.將php54下的php.ini-production文件重命名為php.ini,如圖:
php.ini將作為PHP的配置文件,我們對PHP的配置主要是在php.ini中進行的。關於如何配置php.ini我們將在安裝配置好MySQL之后詳細說明。
3.通過重命名得到php.ini之后,我們需要回到Apache的配置文件httpd.conf中進行更改,讓PHP與Apache之間關聯起來,只有PHP與Apache關聯起來之后,PHP文件或者PHP工程才能在Apache上正常跑起來。我們要在httpd.conf做的更改如下:
a) 添加對php動態共享庫的支持,即通過LoadModule載入php中的動態鏈接庫。在php54目錄下面有一個php的動態鏈接庫php5apache2_2.dll,我們需要在httpd.conf中載入。如何載入呢?其實我們只需要添加一行代 碼:LoadModule php5_module "E:/Program Files/php54/php5apache2_2.dll",注意,大家自己安裝的時候需要在LoadModule php5_module后面指定自己電腦上相應的路徑,我電腦上的路徑是E:/Program Files/php54/php5apache2_2.dll。如圖:
b) 添加對php解析的支持。我們需要讓apache能夠對后綴為.php格式的文件進行解析,因此需要在<IfModule mime_module></IfModule>節點下加入對.php格式文件對應MIME-type的支持,這里也只需要加入一行代碼:AddType application/x-httpd-php .php。順便我們在這里加入php.ini的路徑。如圖:
此外,我在這里對httpd.conf中的幾個關鍵的部分進行一些說明。
1.DocumentRoot和Directory權限文件夾。
a) DocumentRoot。在httpd.conf中有一行代碼指定了站點根目錄,即:DocumentRoot "E:/Program Files/Apache Software Foundation/Apache2.2/htdocs",表示我當前的站點根目錄位於E:/Program Files/Apache Software Foundation/Apache2.2/htdocs下。在不考慮多站點配置的情況下,我們默認訪問的是此目錄所代表的站點。因為安裝Moodle不需要進行多站點配置,因此我們就不詳細講解多站點配置方面的內容。關於多站點的配置,我會在另外一篇博客中為大家進行講解。
b) Directory權限文件夾。節點<Directory></Directory>指定了所有站點的訪問權限。如圖:
Directory "E:/Program Files/Apache Software Foundation/Apache2.2/htdocs"表示所有站點都在E:/Program Files/Apache Software Foundation/Apache2.2/htdocs下面。如果還有其他目錄下的站點需要進行訪問的話,我們就必須更改Directory指定的路徑,保證要訪問的站點目錄被包含在Directory指定的路徑下面。
此外,需要特別注意的是,我們需要在這里設置Allow from all,表示接受其它主機的訪問。只有將Director的訪問權限配置為Allow from all,我們才能用其它的主機訪問服務器Apache上的站點。
2.在<IfModule dir_module></IfModule>節點中配置文件索引。如圖:
我們在DirectoryIndex后面追加對.html .htm .php文件格式的索引。這樣我們在訪問站點的時候就可以自動對這些格式的文件進行檢索。
3.利用偽靜態配置多站點。如圖:
我們可以對這里進行修改,以通過偽靜態的方式實現多站點配置。當然,這里不是我們講解的重點,因此我暫時不多做說明。
4.關於虛擬主機的配置。如圖:
5.配置完Apache,我們需要測試Apache的本地訪問和局域網訪問,這時候可能會出現在本地訪問時沒有問題,但是通過局域網就訪問不了Apache,是什么原因呢?多數情況下是因為Windows防火牆的原因,我們需要在Windows防火牆中添加Apache服務到信任程序列表里面。
經過以上的種種折騰,我們的Apache和php就關聯起來了,接下來我們在站點根目錄(我的是E:/Program Files/Apache Software Foundation/Apache2.2/htdocs)下面寫一個test.php文件來輸出php的相關信息,test.php的代碼如下:
<?php
echo phpinfo();
我們在服務器上通過http://localhost/test.php進行訪問,不出問題的話將會顯示出php的相關信息,如圖:
接下來,我們開始安裝並配置MYSQL。
1.雙擊MySQL的安裝程序開始安裝,如圖:
2.點擊Next
3.選擇I accept the terms in the License Agreement,點擊Next
4.選擇Custom,點擊Next
5.這里可以點擊Browse更改默認的安裝路徑,我選擇安裝在我的E盤Program Files文件夾下,需要安裝的項按照默認的即可,點擊Next。
6.點擊Install,開始安裝
7.點擊Next
8.點擊Next
9.點擊Finish,完成安裝,然后開始配置MySQL。
10.點擊Next
11.選擇Detailed Configuration,點擊Next
12.因為我們需要將安裝程序作為服務器程序供其它主機訪問,因此我們選擇Server Machine,點擊Next
13.選擇默認的Multifunctional Database,點擊Next
14.下拉選擇\MySQL Datafiles\,點擊Next
15.這里設置同時連接到MySQL的最大並發數,考慮到一個班的學生同時使用Moodle並發量會比較大,因此我們選擇Manual Setting,並選擇Concurrent connections為75。點擊Next。
16.設置MySQL的端口,默認為3306,可以在正常的端口范圍內自行設置,我們就默認為3306不做任何更改,其它設置也默認。這個時候可能會因為別的程序端口也為3306,導致3306端口號被占據,我們可以自行更改這里要設置的端口號,或者先結束掉占據了3306端口的程序再繼續安裝。然后點擊Next。
17.這里選擇MySQL的字符集信息,我們選擇默認的即可。點擊Next
18.默認MySQL服務的實例名為MySQL,我們可以自己命名,這里我就選擇默認的MySQL,並選中Include Bin Directory in Windows PATH。點擊Next
19.在這里設置MySQL的密碼,並選中Enable root access from remote machines。點擊Next。
20.點擊Execute。等待一會兒如果如下顯示即說明MySQL安裝成功,反之,如果提示一些錯誤信息,則說明沒有成功安裝,沒有安裝成功的原因可能是之前已經安裝過MYSQL,出現了安裝信息的沖突,我們可以卸載之前安裝的MYSQL,需要注意的是,要想卸載干凈MySQL不僅要在程序管理中卸載掉MySQL,還要在注冊表中刪除MySQL的注冊表信息,並MySQL的安裝目錄和數據存放目錄也得一起刪除。關於如何徹底卸載MySQL,大家請參考:http://jingyan.baidu.com/article/f96699bbaa8fc1894f3c1b5a.html。
21.點擊Finish,即完成了MySQL的配置。
關於MySQL我再補充一點:如果我們在電腦上安裝了多個MySQL,很可能出現端口沖突,這時候我們可以修改每一個MySQL實例的端口,避免端口的重復。我們可以在MySQL安裝目錄下的my.ini中配置端口。
到此為止,Apache、PHP、MYSQL的配置就基本完成了,這是否表示我們接下來就能夠很順利地安裝Moodle了呢?答案是否定的,因為在安裝Moodle的時候還需要我們開啟一些PHP的擴展,只有這些擴展全部打開了,我們才能正常安裝Moodle。
接下來,我們開始嘗試安裝Moodle。
1.首先,我們從Moodle官網可以下載到最新的Moodle安裝包,注意下載的時候不要下載集成好PHP環境的Moodle安裝包,要下載單獨的Moodle安裝包。我下載的是Moodle3.0.2+版本的安裝包。
2.將下載好的Moodle安裝包解壓到Apache的根目錄下面,我的是在E:\Program Files\Apache Software Foundation\Apache2.2下面,如圖:
moodle文件夾下中包含了安裝moodle所需要的全部文件,如圖:
3.Apache的默認站點根目錄為E:\Program Files\Apache Software Foundation\Apache2.2\htdocs,在不配置多站點的情況下,我們直接將站點根目錄的路徑指定到E:\Program Files\Apache Software Foundation\Apache2.2\moodle,因此,我們修改Apache配置文件httpd.conf中的DocumentRoot和Directory權限文件夾,修改后如圖:
4.重啟Apache,打開瀏覽器,在地址欄中輸入http://localhost/,回車,我們將來到Moodle的安裝主頁install.php。如圖:
5.我們選擇語言為中文簡體,點擊Next。
6.之后我們會發現頁面提示我們安裝php_curl擴展,如圖:
出現這個提示的原因在於我們沒有打開php的curl擴展,我們需要打開curl擴展才能繼續進行下一步。那么我們怎么打開php_curl擴展呢?
a) 找到php的配置文件php.ini並打開;
b) 找到; extension_dir = "ext",去掉前面的分號,並將””中的值修改為php擴展文件所在文件夾的路徑,我的電腦上php擴展文件所在文件夾為E:\Program Files\php54\ext,因此修改的結果為extension_dir = "E:/Program Files/php54/ext";
c) 找到;extension=php_curl.dll,去掉前面的分號。
OK,這樣就可以打開php_curl擴展了,后續如果提示要打開其它的擴展,操作步驟都一樣,就是去掉;extension=php_xxx.dll前面的“;”。
7.開啟了php_curl擴展之后,我們點擊重新載入,就會出現如下頁面了:
網站地址就是我們安裝好Moodle之后,Moodle首頁的訪問地址,Moodle目錄就是Moodle的安裝目錄,數據目錄就是我們在使用Moodle的過程中產生的數據的存放目錄。
8.我們直接點擊Next。
9.我們選擇Moodle的數據庫為改進的MySQL(native/mysqli),然后點擊Next。
10.輸入MySQL數據庫的用戶名(默認為root),密碼(安裝數據庫的時候設置的密碼),數據庫服務端口號(安裝的時候設置的端口號,默認3306),其它默認,點擊Next。
11.點擊“繼續”,出現了如下頁面,提示一些擴展仍未打開:
12.那么還是按照前面說的打開擴展的方法將這些擴展一一打開。所有擴展打開之后可以最大程度上優化PHP的性能。當然,對於一些不是必須開啟的擴展,我們可以暫時先跳過。點擊“繼續”。
13.開始安裝Moodle,等待一段時間,將會安裝完所有的插件。
14.點擊“繼續”
15.填寫好Moodle管理員的信息之后點擊“更新個人資料”。(注意:記住Moodle的管理員賬號和密碼,很重要)
16.在這里可以進一步完善個人資料,完善之后點擊“更新個人資料”。
17.經過跋山涉水,萬里長征,我們終於來到Moodle的首頁啦!!!
至此,Moodle安裝成功!
不過到這里還沒有完,我們在服務器上通過http://localhost確實是可以訪問Moodle了,但是我們要實現的最終效果是讓局域網中的其它電腦也能夠訪問服務器上的Moodle。那么該怎么做呢?如果我們不對Moodle的配置做任何更改,局域網中的其它電腦是不能訪問到服務器上的Moodle的,我們用瀏覽器訪問會提示“只能通過http://localhost訪問”或者“只能通過http://127.0.0.1訪問”。這個時候,我們需要對Moodle的配置文件進行設置。
在我的電腦上,Moodle的配置文件是E:\Program Files\Apache Software Foundation\Apache2.2\moodle\config.php,我們打開config.php,里面的配置如下:
其中,$CFG->wwwroot = 'http://localhost'指定了Moodle只能在服務器上經由http://localhost進行訪問,如果我們要在局域網的其它電腦上訪問,只需要把localhost換成服務器的IP地址即可。例如,我的電腦在局域網中的IP地址為:192.168.1.103,於是,我把localhost替換成192.168.1.103。更改之后保存,我們在瀏覽器地址欄中輸入:http://192.168.1.103/,回車打開,我們再次成功進入到Moodle的首頁,如圖:
為了確定局域網中的其它設備可以訪問服務器上的Moodle,我用自己的手機進行了測試,我在手機瀏覽器中輸入http://192.168.1.103/,同樣可以打開Moodle,如圖:
至此,Moodle全部安裝完畢!
剩下的便是在這個搭建好的Moodle平台上開展學習和研究啦!
最后,我簡單做一下總結,在服務器上搭建Moodle平台總共可以分為兩大步:
1.搭建Apache + PHP + MySQL環境;
2.安裝Moodle。
其中,在搭建Apache + PHP + MySQL環境的時候需要特別注意的是:
1.Moodle對Apache、PHP、MySQL的版本是有要求的,我們應該選擇能夠滿足Moodle最低要求的軟件版本;
2.弄清楚關鍵的配置環節,如:配置Apache最關鍵的是加入對PHP模組的支持和對PHP解析的支持,此外就是Apache的DocumentRoot和訪問權限需要合理配置;PHP中需要開啟多項擴展以支持Moodle的安裝要求,提升PHP的性能;MySQL需要對端口號、最大連接數等進行合理的設置等等。具體配置請參考文中的詳細配置步驟。
3.在安裝的過程中會出現各種各樣的問題,如:
a) Apache不能正常啟動,原因可能是Apache的服務端口和別的軟件沖突了,這時候我們可以停止掉與Apache服務沖突的進程,也可以更改Apache的端口號以避免端口重復;
b) 安裝好的Apache不能訪問,很可能是由於防火牆攔截的原因,我們需要把Apache的服務程序添加到Windows防火牆的信任列表里面;
c) MySQL安裝失敗,原因可能是我們之前安裝過MySQL,我們需要卸載干凈之前的MySQL,包括安裝程序、注冊表信息、數據文件等。
在安裝Moodle的時候我們需要注意的是:
1.通過配置php.ini開啟相應的php擴展,具體開啟步驟和方法參見上文;
2.可能會遇到一些問題導致無法繼續安裝,這個時候我們先看問題,可以先嘗試更改一些配置來調試問題,但是如果始終無法調試好問題,那么我們可以選擇徹底刪除之前的Moodle安裝目錄和Moodle數據存放目錄,然后重新解壓Moodle安裝包,重新安裝;
3.安裝過程中可能會遇到提示Apache、PHP或者MySQL版本過低,無法正常安裝的問題,這個時候我們就需要下載符合最低要求版本的軟件並重新安裝,以滿足Moodle的最低配置要求。
4.安裝完Moodle我們需要在局域網中用其他的電腦訪問,可能會出現“只能通過http://localhost訪問”或者“只能通過http://127.0.0.1訪問”的情況,這個時候我們需要在Moodle的config.php中配置服務器的IP地址。
關於心態,我想說的是,從配置PHP環境到安裝Moodle,這個過程確實比較復雜,當我們遇到問題的時候不能急,更不能失去信心,我們要學會根據問題的提示提煉出關鍵信息,然后依據關鍵信息去搜索相關資料,通過不斷地查閱資料,學習別人處理類似問題的方法,從而一步一步解決面臨的問題。一旦你成功了第一次,那么之后的每一次將變得越來越容易!
附:安裝Moodle所需的軟件均已通過百度網盤分享,大家可前往自行下載,下載地址:http://pan.baidu.com/s/1bplwAuF