寒假時購置一部新主機 IBM X3550(機架式的主機,實在有夠吵
),安裝了CentOS4.4,打算將moodle、plog、gallery2等移到新主機上,目前正在慢慢測試中。
舊主機為FC3,學校moodle原為1.5.4版, 打算將moodle移到新機器上,並升級到1.6.4版。
我是貴人,常忘東忘西的,所以邊測試,邊留下筆記。
一、到moodle官網下載1.6.4版程式:
wget http://download.moodle.org/stable16/moodle-latest-16.zip
unzip moodle-latest-16.zip
mv moodle /var/www/html
二、資料庫的部分:
1.修改mdl_config_plugins:
要備份資料庫之前,要先做一件事,由於舊主機(FC3)的mysql版本為3.23.58,新主機(CentOS4.4)的mysql版本為4.1.20,可能是mysql版本的問題吧!在匯入資料庫到新機器時會出現
Specified key was too long; max key length is 1000 bytes
檢查了一下,是在mdl_config_plugins這資料表上出現錯誤。所以就先測試全新安裝了moodle1.6.4,可以看到mdl_config_plugins這資料表的欄位如下
而舊主機的mdl_config_plugins為
所以我先將舊主機moodle資料庫裡的mdl_config_plugins修改了一下,將上面的250改成100。
2.亂碼問題:
會有亂碼,大概都是因為資料庫編碼的問題,我還沒完全搞清楚,反覆測試了好幾次,看了很多資料,至少目前看起來是解決了,總算亂碼不見了。
雖然程式是以UTF8為編碼,但MySQLl卻是以 latin1 來處理資料,所以看起來是UTF8,但實際上還是 latin1 ,所以當移機時,就可能發生問題。
所以當下指令
mysql> show variables like '%character%';
就會看到編碼都是 latin1。
我目前在新主機上的解決方式(不知道是否正確)
vi /etc/my.cnf
加入
default-character-set = utf8
init-connect = 'SET NAMES UTF8'
[client]
default-character-set = utf8
service mysqld restart
3.資料庫匯出匯入
舊主機匯出資料庫
mysqldump -uroot -p moodle > /var/www/html/moodle.sql
新主機
mysql -uroot -pxxx
mysql> CREATE DATABASE moodle;
wget http://舊主機/moodle.sql
mysql -uroot -pxxx moodle<moodle.sql
rm -f /var/www/html/moodle.sql(舊主機)
三、moodledata目錄的移轉:
zip -r moodledata.zip /var/www/moodledata(舊)
wget http://IP/moodledata.zip(新)
unzip moodledata.zip
四、取得其他的資料:
- 舊主機以前是用Clouds這個theme,預設的moodle裡並未包含,要先複製過來。
- 舊主機有用的電子書(book)的模組,也必須拿過來用。
- 其他就是一些自己改過的圖片檔。
- 到moodle中文加油站去抓1.6.X的繁體中文語系檔,放到/moodle/lang裡
五、安裝、更新moodle:
直接以瀏覽器執行 http://IP/moodle,就依照畫面上的要求、寫入config.php等。
或者直接將舊主機的config.php拿到新主機上也可以。
安裝完成後,還必須進行資料庫更新的動作,以管理者身份登入moodle,就可以看到
按下「yes」來upgrade吧!moodle會經過一連串的更新資料庫的動作。
這樣就大功告成了(至少目前看起來是這樣)。
不過moodle最新版本已是1.7.1 了,嗯!下次再來升級了!這幾天還是先來試試將 lifetype及Gallery2移機看看吧!
lulu:
我啊真的是貴人,哪一種貴人呢?
「一目十行,過目即忘」
「記性很好,但忘性又比記性好更多」