差太多了。
嚴格說來是 Plone 2.1 非常不一樣。從 CMF content type 改成 AT content type,許多內容型態的預設行為都與前不同。WYSIWYG 編輯器從 epoz 改成 kupu,犬太郎說是精進了不少;我不知道,我喜歡 reStructuredText 和 VIM。
Plone Desktop (Enfold Desktop) 2.1 運作得很好,一如預料;nautilus 用 dav 連起來會卡卡的,但 konqueror 很順,Gnome 得再加加油。navTree portlet 現在有了很多可調整的選項,非常棒,能夠很有彈性地控制導覽 portlet 的呈現。
然而,從 CMF content type 到 AT content type 的轉換打破了我一些習慣,還得研究解決的辦法。從舊的 2.0.5 匯出來的 zexp 也無法匯回 2.1.1,唯一想到的解法是 dav out, dav in;難看而且需要手動微調。不過,是的,我明白這很正常,我只是不爽。
軟體昇級真的很痛苦,而當可用的時間愈來愈少,這種痛苦也愈見明顯。
所痛即所得
軟體昇級雖然痛,但若什麼也沒學到就更難過了。
不記下來我不甘願。
apache2 name-based virtual host
如果用 Listen ip:port 的格式指定 apache2 監聽的 IP,那麼就不能用 <VirtualHost *:80> 這種寫法來指定 name-based virtual host,而要改成 <VirtualHost ip:80>;同樣地,NameVirtualHost 後面也不能只寫 *:80 或 *,得改成 NameVirtualHost ip:port。
ZEO 的安裝
很久以前就想裝裝看 ZEO 了,這次總算找到一個機會。實際使用 ZEO 之後的 ab 測試數據還是只有三個 conn/sec 左右,但,的確比較酷。
plone.org 有一篇很好的介紹。照著裝好了之後,我在 zeo instance 的 runzeo 和 zope instance 的 runzope 裡都加上了 export TZ="Hongkong-8",讓時區顯示正常。
Product 安裝 script
這次終於想通了!以前每次都是手動 tar xfz blah.tgz 安裝 product,其實根本就應該用 script 來紀錄安裝動作,像編譯一樣。否則光回想有哪些 product 要裝,就得想好久。
先寫一個 install.sh 紀錄 product tarball 存放的位置 (我們一定都有一個目錄專門放這些 tarball 吧 ;):
#!/bin/sh ACHV=/secret/place/to/Zope
在每次安裝新 product 的時候,建一個 install-nn.sh,裡面寫:
#!/bin/sh . ./install.sh tar xfz $ACHV/Plone-2.1.1.tar.gz mv -f Plone-2.1.1/* . rmdir Plone-2.1.1 tar xfz $ACHV/cjksplitter-0_7_3.tgz tar xfz $ACHV/zopechinapak-0_5.tgz tar xfz $ACHV/mxmCounter.1.1.0.tar.gz tar xfz $ACHV/plone-desktop-server-2.1-2918.tar.gz tar xfz $ACHV/PloneArticle-3.18.tar.gz
把這兩個檔案放到 $INSTANCE/Products 裡面,然後 ./install-01.sh 就把所有的 product 一次裝好。以後要昇級或重建 instance 的時候就方便了。
蠻久以前寫的Zope 自訂安裝,現在還是有點參考價值。
Plone 2.1.1 is Python 2.3.5 and Zope 2.8.2 OK
Zope 2.7.8 也可以動。