Plone 3.0 安裝筆記

遠凡札記 Yuanfarn's Notes

遠凡 <shauhung at gmail.com>

最後更新日期:Mar 19, 2007.

開始之前:安裝 Python 及 Zope 的方法隨作業系統的不同而有差異,但是 Zope Product 如 CMF、Plone 等的安裝則大致上相同,不受作業系統的影響。

這篇筆記的安裝環境為 Micorsoft Windows XP Professional with Service Pack 2,也感謝讚展兄測試後發現在 Windows XP Home 安裝則無法啟動 Zope。另外,由於我目前手邊沒有安裝 Windows Vista 的機器,所以還無法測試在 Windows Vista 上安裝的情形。

因為 Zope 的 Windows installer 已經打包所需要的 Python (在這篇筆記稱它為“Zope's Python”),順序是先安裝 Zope,然後設定好 Zope's Python 的 Install Path,或是完整安裝一份 Python,再以 Windows installer 安裝 PIL、PyXML 這些 packages 的,最後就是安裝 Plone 等 product 了。

這篇筆記將採用 Plone 3.0。和 Plone 2.5 比較起來,Plone 3.0 多了許多特性,妳可以由 http://plone.org/ 這個網站對 Plone 3 有更詳盡的瞭解。

在安裝之前,先稍微瞭解一下 Plone 3.0 吧!

  • Plone 3.0 需要 Zope 2.10.2 或更新的版本,但不適用於 Zope 3。

  • Plone 3.0 需要 Python Imaging Library 1.1.5 或更新的版本。

  • Plone 3.0 需要 Python ElementTree。

  • 由於 Plone 3.0 採用了 CMF 2.1,使得比 Plone 2.1-final 這個版本更舊的 Plone 可能無法直接升級為 Plone 3.0。建議的作法是至少先升級到 Plone 2.1-final 或 Plone 2.5 後,再升級到 Plone 3.0。

    在動手升級前,建議先閱讀“Migrating a Plone 2.0 site to Plone 2.1”這份文件,因為升級到 Plone 2.1 的過程會將整個系統由 CMF Types 變更為基於 Archetypes 開發的 AT Content Types,這對 Plone 來說是一個極大的改變。

  • 使用 KSS / AZAX 讓 Plone 3.0 的使用界面更好操作。

  • Plone 3.0 使用 Archetypes 1.5,也加入了少量新特性,其 Content Types 的靈活性略有提高。Martin 也在這篇文章中提到 Plone 並沒有停止使用 Archetypes 的計畫。Archetypes 內部確有些的替代技術出現,而隨著 Archetypes 的發展,Plone 開發小組也會採用更多的新技術增加 Archetypes,使其和系統各部份協調運作。在 czug-plone 郵件論壇裡可以找到 Martin 這篇文章的中譯

接著的重點是在於能否完整地處理中文,要讓 Zope/Plone 能完整支援中日韓文字,妳還需要 Python CJKCodecs module 及 CJKSplitter、ZopeChinaPak 兩個 product。CJKSplitter 和 ZopeChinaPak 這兩個 product 將在稍後說明如何安裝,這裡先來談談 Python CJKCodecs module。

在 CJKCodecs 的網頁 http://cjkpython.berlios.de/ 提到,Python 2.4 已經整合了 CJKCodecs:

CJKCodecs has been integrated into Python 2.4 and you will have it by default.

Zope 2.10.2 使用 Python 2.4.4,因此也就不用再另外下載安裝 CJKCodecs 了。

好了,現在開始安裝 Zope/Plone 了。

目錄:

安裝 Zope

  1. http://www.zope.org 下載 Windows installer,建議使用 Zope 2.10.2 或更新的版本,這篇筆記以 Zope 2.10.2 (Zope-2.10.2-win32.exe) 為例。

  2. 使用預設安裝(full)即可,並設為 Win32 的 Service,在安裝過程中需要設定管理者(預設帳號為 admin)的密碼。

  3. 將 Zope 安裝在 C:\Zope\2.10.2 這個目錄中,並指定 C:\Zope\Instance\plone 這個目錄為 Zope-Instance,所以接下來的內容裡,將使用以下幾個變數:

    $ZopeHome 代表路徑 C:\Zope\2.10.2

    $ZopeInstance 代表路徑 C:\Zope\Instance\plone

  4. 修改 $ZopeInstance\etc\zope.conf 讓 reStructuredText (reST) 使用 UTF-8:

    rest-input-encoding utf-8
    rest-output-encoding utf-8
  5. Windows 版的 Zope 預設只開啟 httpd server,如果妳需要 ftp server,找到 <ftp-server> 這一段,將前面的 # 刪掉。

    <http-server>
    # valid keys are "address" and "force-connection-close"
    address 8080
    # force-connection-close on
    </http-server>

    # <ftp-server>
    # # valid key is "address"
    # address 8021
    # </ftp-server>
  6. 安裝後,啟動 Zope,在 ZMI 根目錄的 Properties Tab 新增一個 property:

    Name : management_page_charset
    Type : string
    Value: UTF-8

    由 ZopeChinaPak 的 README 得知,自 ZopeChinaPak 0.3.1 起會偵測這個 property 是否存在,若不存在時將會自動加入,稍後將安裝 ZopeChinaPak 這個 Product,因此可以省略這個步驟,交由 ZopeChinaPak 自動處理。

建立另一個 Instance 目錄

  1. 在前述安裝 Zope 時已經建立一個 Instance 目錄,但是有時需要嘗試其它 product 或測試某些 product 的升級是否能順利進行,為了避免破壞原來的 ZODB (Data.fs),我建議另外建立一個供測試用的 Instance 目錄,在這篇筆記中,我另外建立 C:\Zope\Instance\developer 這個目錄來作為測試用的。

  2. 開啟 Windows 的「命令提示字元(command prompt window)」,執行

    $ZopeHome\Python\python.exe $ZopeHome\Zope\bin\mkzopeinstance.py

    這個指令,建立 C:\Zope\Instance\developer 作為 Instance 目錄並設定管理者 admin 的密碼。

  3. 接下來的內容採用的路徑變數為:

    $DevInstance 代表路徑 C:\Zope\Instance\developer

  4. 參考前述安裝 Zope 的筆記新增 management_page_charset 這個 property,及修改 $DevInstance\etc\zope.conf 使 reStructuredText (reST) 使用 UTF-8。

  5. 修改 $DevInstance\etc\zope.conf 這個檔案,變更 http-server 及 ftp-server 的 port,這樣才能同時啟動 $ZopeInstance 及 $DevInstance。

    <http-server>
    # valid keys are "address" and "force-connection-close"
    address 9673
    # force-connection-close on
    </http-server>

    <ftp-server>
    # valid key is "address"
    address 9621
    </ftp-server>

    註:$ZopeInstance 使用 Zope 預設的 8080 (http) 及 8021 (ftp) 兩個 port。

  6. 可以在命令提示字元視窗中執行 $DevInstance\bin\runzope.bat 啟動 $DevInstance。

    也可以執行這個命令將 $DevInstance 執行的記錄同時寫入 $DevInstance\log\dmesg.txt 這個文字檔中:

    $DevInstance\bin\runzope.bat > $DevInstance\log\dmesg.txt 2>&1

    若需要在開機便自動載入 $DevInstance,可以在命令提示字元視窗中執行

    $ZopeHome\Python\python.exe $DevInstance\bin\zopeservice.py --startup auto install

    將 $DevInstance 安裝為 Win32 Service,這樣便會隨著電腦開機自動載入。

安裝 Python

Zope installer 包含了執行 Zope 所需要的 Python,在較舊版的 Zope 時,我習慣再安裝一份完整的 Python,這樣可以用 binary insaller 來安裝 PIL 等 package,而不必下載源碼自行編譯。

自 Zope 2.9.6 及 Zope 2.10.2 開始,提供了一個很貼心的 script,若使用者不願安裝一份完整的 Python,也可以直接設定 Zope's Python 的 Install Path,這個 script 會在 Windows 的機碼中寫入 Python 的安裝路徑等資訊,當使用者要安裝 PIL 時一樣只需下載 binary installer 安裝就行了。

以下分別說明這兩種方法,妳只要採用其中一個就可以了。

快速安裝 Python - 設定 Zope's Python Install Path

  1. 執行程式集裡的“Zope 2.10.2 -> Python -> Set InstallPath”,這個捷徑會執行

    $ZopeHome\Python\python.exe $ZopeHome\Zope\bin\setup_install_path.py -verbose -set

    將 Zope's Python 的 Install Path 設定好。

完整安裝 Python

  1. http://www.python.org 下載 Python 的 Windows installer,下載的版本必須和 Zope 搭配或更新版,我比較建議使用和 Zope 同樣的版本,Zope 所使用的 Python 版本在 ZMI 中可以查知,如 Zope 2.10.2 採用了 Python 2.4.4。

  2. 我建議將 Python 安裝在 $ZopeHome\Python\ 這個目錄,直接覆蓋掉 Zope's Python,這樣的好處是不用修改任何的路徑參數,就能直接將 Zope 啟動為 Win32 service。

    安裝 Python 前請記得先關閉 Zope service,這樣還可以省去必須重開機的麻煩。

安裝 Python Imaging Library (PIL)

  1. http://www.pythonware.com/products/pil/ 下載 Python Imaging Library (PIL) 的 Windows installer 安裝即可。下載時必須注意 Python 版本,如使用 Python 2.4 時請下載 PIL-1.1.6.win32-py2.4.exe 這個檔案。

  2. 安裝後,可以參考 Song 兄在 InstallPythonImagingLibrary 這篇文章中的方法測試:

    # Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
    # Type "help", "copyright", "credits" or "license" for more information.
    # >>> import Image
    # >>>

安裝 Python ElementTree

  1. ElementTree 是一個和 xml 相關的套件,在 http://effbot.org/zone/element-index.htm 這個網頁有詳盡的說明。

    http://effbot.org/downloads/#elementtree 下載 elementtree-1.2.6-20050316.win32.exe。

  2. 安裝後,可以用這個方法測試:

    # Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
    # Type "help", "copyright", "credits" or "license" for more information.
    # >>> import elementtree.ElementTree as ET
    # >>>

安裝 CJKSplitter

  1. CJKSplitter 是支援中日韓三種語言的全文檢索斷字模組,它和標準的英文 Splitter 相容,且提供 CJK Splitter (unicode/utf-8)、CJK GB Splitter (unicode、gb18030 等簡體中文編碼) 及 CJK BIG5 Splitter (unicode/big5) 支援,自 0.6 版也支援單一中文漢字查詢。

  2. hhttp://zopen.cn/products/open/CJKSplitter/http://www.zope.org/Members/panjunyong/CJKSplitter 下載 CJKSplitter 0.7.3 版(cjksplitter-0_7_3.tgz)。

  3. 解開後,複製到 $ZopeInstance\Products 目錄。

安裝 ZopeChinaPak

  1. ZopeChinaPak 是一個 Zope 的中文補丁集合,提供中文的 Zope/Plone 使用者更完整的中文支援。

  2. http://zopen.cn/products/open/ZopeChinaPak/http://plone.org/products/zopechinapak 下載 ZopeChinaPak 0.8.2 (zopechinapak-0_8_2.tgz)。

  3. 解開後,複製到 $ZopeInstance\Products 目錄。

安裝 CMF 與 Plone

  1. Plone 是基於 CMF、Archetyps 而建構的一個 Product,從 http://plone.org 下載 for all platforms 的 product package 檔案也已經將所需要的 CMF、Archetypes、PlacelessTranslationService 等 product 都打包在一起了。

  2. 目前 Plone 3.0 尚未正式發表,我建議想嘗鮮的使用者透過 svn 下載最新的修正,下載方式為:

    svn co https://svn.plone.org/svn/plone/bundles/3.0
    svn co https://svn.plone.org/svn/plone/bundles/3.0-lib

    這裡我推薦 TortoiseSVN 這個 svn 軟體,安裝後它會在檔案總管的右鍵功能表加入 svn 功能選單,選擇“SVN Checkout”,然後在“URL of repository”分別填入上述 Plone bundles 的兩個網址 (3.0 及 3.0-lib) 就可以從 svn 下載最新的修正了。

    將下載的 Plone bundles 3.0 檔案複製到 $ZopeInstance\Products 目錄下。

    將下載的 Plone bundles 3.0-lib 檔案複製到 $ZopeInstance\lib\python 目錄下。

  3. 重新啟動 zope 後就可以建立 Plone site,接下來的內容將以 /portal 代表一個 Plone site。

    如果有較早版本建立的 Plone site,請參考“升級舊有的 Plone Site(Portal Migration)”一節由 /portal/portal_migration 將舊有的 Plone site 升級。

安全補丁 - Hotfix

http://zope.org/http://plone.org 會發佈一些 Hotfix,通常會跟漏洞及安全性的臭蟲有關,所以平時也要留意是否有 Hotfix 需要安裝。另外,在 Zope 或其它 Product 升級後也須注意是否有那些 Hotfix 必須被移除。

Hotfix 的安裝也很簡單,大部分只要下載後解開到 $ZopeInstance/Products 即可。

附錄 A

升級舊有的 Plone Site(Portal Migration)

參考 http://plone.org 網站的“FAQ: How do I upgrade to a newer release of Plone?”這份文件,安裝新版的 Plone 後,必須在 ZMI 中由 Plone site 的 portal_migration 將 Plone site 升級,同時也必須由 portal_atct (ATContentTypes Tool) 檢查 ATContentTypes 是否也升級妥當。

例如,原本我的 Plone site 在 Plone 2.5.2 運作,在這篇筆記中我嘗試將它升級到 Plone 3.0。

  1. 重新啟動 Zope 後,在 ZMI 中進入 /portal/portal_migration,會看到如下一段文字:

    If you wish to upgrade to a new Plone instance, go to migrate.

    點擊 migrate 後,會見到如下的狀態:

    Instance version: 2.5.2
    File system version: 3.0-alpha3 (svn/unreleased)

    其中的 Instance version 是原來 Plone site 的版本,而 File system version 則表示目前安裝的 Plone Product 的版本,這表示將由 2.5.2 升級至 svn 的 3.0-alpha3 版。

    按下 Upgrade 進行升級的動作。

這樣便完成了 Plone 的升級手續了。

Change log.

Mar 19, 2007

  • 依 Plone 3 修訂內容。