看到 Lifetype 1.1.3 版有分頁的功能, 就很想升級來用, 但是又一直懶得動.
昨天正好看到 LifeType1.0.6 升級到 LifeType 1.1.3 的記錄 這篇文章, 就直接嘗試看看, 升級起來是蠻容易的, 但是中間有遇到 MySQL 匯入的亂碼問題, 一起解決掉, 然後把原始的資料全都轉成標準 UTF-8 存入.
以下來分幾步驟來升級:
- DB 備份
- 將 MySQL Data 轉換成標準 UTF-8, 解決亂碼問題
- Lifetype 升級
- Template Check
- Plugins 升級
因為不敢冒然升級, 於是採用比較龜的方法來測試升級, 果然遇到了一些怪問題, 在 MySQL 4.0/4.1 的時後匯入匯出都正常, 但在 MySQL 5.0 匯出匯入資料後, 程式讀出來都是亂碼.
1. DB 備份
DB 備份就不多說了, 總之就是能做備份的方法就多做幾個:
- mysqldump 備份
- tar zcvf /mysql/data/
- tar zcvf lifetype 程式
2. 將 MySQL Data 轉換成標準 UTF-8, 解決亂碼問題
先來研究為何匯出匯入 MySQL Data 會變亂碼, 發現是 MySQL 之前的語系設定問題, 因為在最早的 plog 版本是設定 latin1 語系的 UTF-8, 而另外再匯入程式後, 讀取的時後是要用 Unicode_ci 版的 UTF-8 來讀取, 於是亂碼就出現了.
知道原因後, 就來解決此問題. 做法很簡單, 先將 DB Dump 出來, 而且指定 Dump 的 Data 要 latin1 的語系, 再來只要先將 latin1 的 UTF-8 轉換成 Big5(cp950), 那些字就會變成正確的中文(想像就是 Big5 與 UTF-8 互轉, 或 繁簡互轉那樣子), 然後再將 Big5 轉成 UTF-8 即可, 步驟如下:
- $ mysqldump -u root -p --default-character-set=latin1 DBNAME > plog-latin1.sql
- $ piconv -f utf-8 -t cp950 plog-latin1.sql > plog-cp950.sql
- $ piconv -f cp950 -t utf-8 plog-cp950.sql > plog-utf8.sql
- 再來 vim plog-utf8.sql, 於上面一堆註解下方加入下面三行:
- SET NAMES utf8;
- SET CHARACTER_SET_CLIENT=utf8;
- SET CHARACTER_SET_RESULTS=utf8;
- 並下 regex 語法 ":1,$s/CHARSET=latin1/CHARSET=utf8/g" 即可
- 再將 此 sql 檔匯入, 照如下語法:
- mysql -u root -p
- mysql> drop database DBNAME;
- mysql> CREATE DATABASE `DBNAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
- mysql> SET NAMES utf8;
- mysql> SET CHARACTER_SET_CLIENT=utf8;
- mysql> SET CHARACTER_SET_RESULTS=utf8;
- mysql> source plog-utf8.sql
- 即可完成匯入
3. Lifetype 升級
過程如下:
- wget http://jaist.dl.sourceforge.net/sourceforge/lifetype/lifetype-1.1.3.tar.gz
tar -xzf lifetype-1.1.3.tar.gz - mv lifetype-1.1.3 lifetype
- chmod -R 707 lifetype/tmp/ lifetype/config/ lifetype/gallery/
- vim lifetype/config/config.properties.php 會發現多了下面兩個參數, 手動改一下這個檔案吧.
- $config["db_persistent"] = true;
- $config["db_character_set"] = "utf8";
- 然後執行 http://DOMAIN/lifetype/wizard.php?nextStep=Fix111 這個不知道要做什麼, 總之用就對了.
- 再執行 http://DOMAIN/lifetype/wizard.php 一直下一步即可(確定帳號能夠有修改 DB 的權限.
- 中間會有 "Warning: mysql_free_result()" 的訊息, 可以不用理會 🙂
- mv wizard.php wizard.php.old
- cp -r lifetype_old/template/TEMPLATE_NAME lifetype/template
- cp -r lifetype_old/plugins/* lifetype/plugins/
- diff lifetype_old/.htaccess lifetype/.htaccess 改一改
- 和一些其它你覺得該 cp 的
- 這樣子應該就可以看到升級完成的頁面了
4. Template Check
這個就是自己亂改, 改太多的缺點, 會發現有些東西不能跑, 於是就把新的 Template 跟自己的 Template 一個一個 diff 來改一改, 這個沒什麼捷徑, 總之就是小心改就是了, 但是發現到需要改的地方, 事實上並不多, 主要都是加 pager link 而已, 大多數都是一樣的.(拿舊的 Template 來加新的內容會比較快)
5. Plugins 升級
到官方網站 Plugins - LifeType Wiki 去抓新版的 Plugins, 記得要抓 1.1_PluginName 的檔案, 沒意外的話, 應該全都有新版才是, 只要解壓縮, 再蓋回去 lifetype/plugins/ 的目錄就可以了(建議是 mv 掉 舊的, 再把新的搬進去).
這樣子就全部升級完成囉~ 就看到自己最下方有分頁了~~ 🙂