X

LifeType 1.0.6 升級到 1.1.3 全記錄

看到 Lifetype 1.1.3 版有分頁的功能, 就很想升級來用, 但是又一直懶得動.

昨天正好看到 LifeType1.0.6 升級到 LifeType 1.1.3 的記錄 這篇文章, 就直接嘗試看看, 升級起來是蠻容易的, 但是中間有遇到 MySQL 匯入的亂碼問題, 一起解決掉, 然後把原始的資料全都轉成標準 UTF-8 存入.

以下來分幾步驟來升級:

  1. DB 備份
  2. 將 MySQL Data 轉換成標準 UTF-8, 解決亂碼問題
  3. Lifetype 升級
  4. Template Check 
  5. Plugins 升級 

因為不敢冒然升級, 於是採用比較龜的方法來測試升級, 果然遇到了一些怪問題, 在 MySQL 4.0/4.1 的時後匯入匯出都正常, 但在 MySQL 5.0 匯出匯入資料後, 程式讀出來都是亂碼. 

1. DB 備份

DB 備份就不多說了, 總之就是能做備份的方法就多做幾個:

  1. mysqldump 備份
  2. tar zcvf /mysql/data/
  3. 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 即可, 步驟如下:

  1. $ mysqldump -u root -p --default-character-set=latin1 DBNAME > plog-latin1.sql 
  2. $ piconv -f utf-8 -t cp950 plog-latin1.sql > plog-cp950.sql
  3. $ piconv -f cp950 -t utf-8 plog-cp950.sql > plog-utf8.sql
  4. 再來 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" 即可
  5. 再將 此 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 升級

過程如下:

  1. wget http://jaist.dl.sourceforge.net/sourceforge/lifetype/lifetype-1.1.3.tar.gz
    tar -xzf lifetype-1.1.3.tar.gz
  2. mv lifetype-1.1.3 lifetype
  3. chmod -R 707 lifetype/tmp/ lifetype/config/ lifetype/gallery/
  4. vim lifetype/config/config.properties.php 會發現多了下面兩個參數, 手動改一下這個檔案吧.
    • $config["db_persistent"] = true;
    • $config["db_character_set"] = "utf8";
  5. 然後執行 http://DOMAIN/lifetype/wizard.php?nextStep=Fix111 這個不知道要做什麼, 總之用就對了.
  6. 再執行 http://DOMAIN/lifetype/wizard.php 一直下一步即可(確定帳號能夠有修改 DB 的權限.
  7. 中間會有 "Warning: mysql_free_result()" 的訊息, 可以不用理會 🙂
  8. mv wizard.php wizard.php.old
    1. cp -r lifetype_old/template/TEMPLATE_NAME lifetype/template
    2. cp -r lifetype_old/plugins/* lifetype/plugins/
    3. diff lifetype_old/.htaccess lifetype/.htaccess 改一改
    4. 和一些其它你覺得該 cp 的
  9. 這樣子應該就可以看到升級完成的頁面了

 4. Template Check

這個就是自己亂改, 改太多的缺點, 會發現有些東西不能跑, 於是就把新的 Template 跟自己的 Template 一個一個 diff 來改一改, 這個沒什麼捷徑, 總之就是小心改就是了, 但是發現到需要改的地方, 事實上並不多,  主要都是加 pager  link 而已, 大多數都是一樣的.(拿舊的 Template 來加新的內容會比較快)

5. Plugins 升級 

到官方網站 Plugins - LifeType Wiki 去抓新版的 Plugins, 記得要抓 1.1_PluginName 的檔案, 沒意外的話, 應該全都有新版才是, 只要解壓縮, 再蓋回去 lifetype/plugins/ 的目錄就可以了(建議是 mv 掉 舊的, 再把新的搬進去).

這樣子就全部升級完成囉~ 就看到自己最下方有分頁了~~ 🙂 

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post