2011年6月9日 星期四

更新 Moodle 至 2.0.3

今天凌晨忽然想要將 Moodle 從 1.9.X 更新到最新的 2.0.3+。

不過,2.0.3+ 要求使用新版的 PHP,我用的 CentOS 祇有 PHP 5.1.6,所以要更新 Moodle 之前,我得先更新 PHP & MySQL 。

直接使用 yum update php 更新是不行的,因為 CentOS 要求的是穩定,不急於追求最新版本,所以資料庫裡面的 PHP 就祇有 5.1.6,沒辦法利用這樣的方式更新 PHP。既然 CentOS 沒有官方版本可以更新,那就得另尋網友們自行維護的 PHP 套件了。

上網查詢,發現許多人都推薦 REMI 套件庫 (REMI Repository),可以從這個套件庫找到最新的 PHP & MySQL。不過要使用 REMI 套件庫之前,還得先做一些設定讓 yum 認得出 REMI 套件庫。

因此要更新 Moodle 的整個流程是這樣子的:

  1. 設定讓 yum 能從 REMI 套件庫下載最新版本的 PHP
  2. 下載、安裝最新版 PHP
  3. 更新 Moodle

讓 yum 能使用 REMI 套件庫

要讓 yum 能使用 REMI 套件庫裡面的資源,我們得先下載兩個 rpm 檔案,並用 rpm 指令先將這兩個檔案安裝起來。

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

做好上述的動作後,祇要在 yum 中指定要使用 REMI 套件庫就能使用其中的資源來更新 PHP:

yum --enablerepo=remi update php php-*

這樣子就能將 PHP & MySQL 一併更新了。

安裝 Moodle 需要的 PHP Mod

要安裝 Moodle 2.0.3+ 不祇是需要最新版的 PHP,還需要安裝一些額外的 PHP 模組才行。至於需要安裝哪些模組就要進入現存的 Moodle 中做一下檢核 (網站管理 ==> 主機 ==> 環境 ==> 更新元件),看看哪些已經安裝,哪些還沒有。

Moodle 說我還需要 DOM 模組才能安裝新版 Moodle,另外 SOAP & INTL 模組也建議安裝,所以就一併裝了吧。

yum --enablerepo=remi install php-dom
yum --enablerepo=remi install php-soap
yum --enablerepo=remi install php-intl

裝好後再檢查系統環境,已經一切就緒,可以安裝新版的 Moodle 了。

開始安裝 Moodle 2.0.3

要安裝 Moodle 之前,我們先將舊版 Moodle 備份起來吧,備份這種事做再多也不怕的。進行之前先登入 Moodle,將網站設定為維修狀態,以免更新時有其他資料寫入,然後就可以開始備份了。

tar czvf moodle.tar.gz /var/www/html/moodle
tar czvf moodleData.tar.gz /你的 Moodle 資料存放路徑/
service mysqld stop
tar czvf moodleDatabase.tar.gz /var/lib/mysql/moodle
service mysqld start
cd /var/www/html
mv moodle moodle.bak

這樣子就將 Moodle 的程式與資料庫備份完成。其實用 tar 把 MySQL 包起來不是好方法,應該用 mysqldump 才比較保險,不過那還得寫很多,所以暫時用偷懶的方式備份就是了!:P

備份完成後,在 /var/www/html 目錄下解壓從 Moodle 網站下載下來的最新檔案,並從 moodle.bak 下將 config.php 複製到新的 Moodle 目錄中:

cp moodle.bak/config.php moodle

再登入 Moodle 時已經解除維修狀態,並開始更新資料庫內的資料,等一會兒更新完畢後就可以看看是不是一切正常了。:)

剛更新好的 Moodle 是英文版的,如果需要中文介面可從 Site administration ==> Language ==> Language packs ==> Install selected language pack,這樣就連中文介面都具備了。

『這麼簡單就能更新完成?!』

是啊,更新 Moodle 本身是很容易,比較麻煩的是準備好 PHP & MySQL,過了那一關後面就超簡單的了!:D 簡單歸簡單,備份還是得先做好比較安全啊!:)

不過,哪邊有比較漂亮的 Moodle 2.0+ 的佈景主題啊?內附的佈景主題好少喔……

延伸閱讀

  1. Update CentOS 5 PHP 5.1 to PHP 5.3
  2. Upgrading to Moodle 2.0

Technorati : , , , ,