在上一講中,我們已經(jīng)基于WampServer建構(gòu)起了一個Windows系統(tǒng)下的Apache+PHP+MySQL的服務(wù)器環(huán)境,這樣我們就可以開始來安裝與部署PHP語言開發(fā)的Web應(yīng)用了。而Moodle正是基于這個架構(gòu)開發(fā)的,所以,這一節(jié)就可以開始了介紹Moodle的安裝了。在開始之前,有兩個問題要說,一是Moodle源代碼的獲取,另一個是WampServer的網(wǎng)絡(luò)訪問地址問題。
關(guān)于Moodle源碼的獲取比較簡單,你可以直接到Moodle官方網(wǎng)站的下載頁面去獲取,地址是:https://download.moodle.org/ 。在寫作本文的時候,最新版本是3.3.2,點(diǎn)擊頁面中的“Download Moodle 3.3.2”就可以進(jìn)入下方的詳情頁面。關(guān)于下載版本的選擇,通常你只需要選擇版本號最高的,后面有一個Stable標(biāo)記的版本(Stable就是穩(wěn)定版的意思),至于下載的是zip還是tgz格式,隨你自己喜好,反正現(xiàn)在的解壓軟件都能支持這兩種格式。我在這里選擇的是3.3.2的zip壓縮包。
第二個問題,也想說一下WampServer的網(wǎng)絡(luò)訪問地址。在前一講中我們介紹http://localhost可以訪問本機(jī)上的Web服務(wù),其實(shí)要訪問本機(jī)還有其它三種方式,第一是http://127.0.0.1,這里的localhost和127.0.0.1總是指向本機(jī)的,所以適合用于本機(jī)測試(像我們這個系列里面,用這種方式就可以)。但如果要讓網(wǎng)絡(luò)中別的機(jī)器也能訪問,就需要使用別的方法,一種是使用IP地址,一種是主機(jī)名,對于局域網(wǎng)訪問,我們只需要用“ipconfig /all”獲取本地的IP地址,或者是計(jì)算機(jī)的名稱就可以訪問。如果要放在公網(wǎng)發(fā)布,那么你還需要一個公網(wǎng)地址(這個一般很難擁有,太稀缺了)或者是綁定一個域名(這里的域名其實(shí)也就是一個公網(wǎng)上的主機(jī)名)。比如我這個計(jì)算機(jī)的主機(jī)名是lesterPC,IP地址是192.168.1.20,那么在本網(wǎng)段用http://lesterPC 或者是 http://192.168.1.20 其實(shí)都是可以訪問的。
但是,如果你使用的是WampServer,很有可能別的機(jī)器在用這個地址訪問你的Web服務(wù)時,出現(xiàn)的是403錯誤,即沒有訪問權(quán)限(順便說一下,Web訪問中用不同的數(shù)字代表了不同的狀態(tài),我們上網(wǎng)的時候通常見得最多的錯誤可能是404,即找不到請求的文件或路徑)。這是為什么呢?其實(shí)這是Apache配置中的一種安全機(jī)制,有些應(yīng)用,比如我們前面說到的是http://localhost/phpmyadmin 掌握了MySQL服務(wù)器的生殺大權(quán),要是放在網(wǎng)絡(luò)上誰都可以訪問,那是一件非常危險的事情,所以Apache的配置文件httpd.conf中可以來限制它只允許從本機(jī)(localhost或127.0.0.1),這樣別人即使知道你的root密碼也沒法從別的位置來訪問。
那這個問題如何來解決呢,首先去修改Apache的conf文件一定是可以的,具體的來說,就是在apache目錄下找到httpd.conf,將其中的“Require Local”改成“Require all granted”。這一操作有危險,如果你手工編輯了,記得一定要備份原始文件,同時編輯保存一定要重啟Apache服務(wù)方可生效。另一種方法就是利用WampServer中的在線操作,這方面Wamp做了一個很好的設(shè)計(jì),即“離線”和“在線”的狀態(tài) 。在默認(rèn)情況下,服務(wù)完全啟動時,它只允許本機(jī)訪問,這個時候?qū)ν獠康臋C(jī)器來說, 服務(wù)還是無法訪問,相當(dāng)于服務(wù)器還是離線的。相反的情況下,就是在線。就其原理來說,其實(shí)就是切換了Apache中Web服務(wù)的訪問權(quán)限。
在之前版本的WampServer中,在圖標(biāo)上單擊右鍵時,就會出現(xiàn)一個“切換到在線/離線”的菜單項(xiàng),但悲催的是3.0.6版本中默認(rèn)取消了這個菜單項(xiàng)。怎么辦?其實(shí)WampServer并沒有取消這個功能,只是默認(rèn)將它隱藏起來了,你可以在圖標(biāo)單擊右鍵,選擇“Wamp Settings”/“Menu Item: Online/Office”(菜單項(xiàng):在線/離線)。
單擊之后,再在WampServer的圖標(biāo)上單擊右鍵,此時,你應(yīng)該會看到,原先的菜單里又多出來一個切換在線狀態(tài)的菜單項(xiàng)。單擊它,WampServer會自動重啟,然后局域網(wǎng)中的其它機(jī)器中就可以通過IP地址或是主機(jī)名來訪問你的服務(wù)器了。
到這里為止,其實(shí)差不多就可以開始Moodle系統(tǒng)的安裝了。但是還有一個問題,在默認(rèn)情況下,WampServer中對于PHP腳本的最長執(zhí)行時間有一個限定,即120秒(這其實(shí)是對服務(wù)器資源的一種保護(hù)機(jī)制,設(shè)想,萬一你的程序里有一個死循環(huán),如果不設(shè)定最長執(zhí)行時間,那么只要某一個用戶的操作不小心觸發(fā)它,那這個服務(wù)器就只能崩潰了,但是如果有個最長執(zhí)行時間,至少在這個時段之后,如果服務(wù)器不死機(jī),PHP進(jìn)程還是可以自動終止它的執(zhí)行)。這樣問題就來了,Moodle的文件包很大,安裝時需要大量的腳本執(zhí)行時間,至少就我測試的計(jì)算機(jī)而言,不少都是超了120秒的,那就是說,在默認(rèn)配置下,安裝是很難成功的。
所以為了確保后續(xù)安裝的順利,我們需要修改一下這個腳本執(zhí)行時間,這個配置是在Wamp安裝目錄bin子目錄下的php文件夾中,文件名為php.ini,但是更加方便的定位方式是在Wampser菜單的php下直接單擊“php.ini”。
接下去要做的就是在打開的php.ini文件中,先給它另存?zhèn)浞菀粋€,然后在其中查找“max_execution_time”(最大執(zhí)行時間),將默認(rèn)的120,改為一定你需要的數(shù)值,比如1200,這個數(shù)值在安裝完成后可以再給它修改回來。