遠凡 <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
在 http://www.zope.org 下載 Windows installer,建議使用 Zope 2.10.2 或更新的版本,這篇筆記以 Zope 2.10.2 (Zope-2.10.2-win32.exe) 為例。
使用預設安裝(full)即可,並設為 Win32 的 Service,在安裝過程中需要設定管理者(預設帳號為 admin)的密碼。
將 Zope 安裝在 C:\Zope\2.10.2 這個目錄中,並指定 C:\Zope\Instance\plone 這個目錄為 Zope-Instance,所以接下來的內容裡,將使用以下幾個變數:
$ZopeHome 代表路徑 C:\Zope\2.10.2
$ZopeInstance 代表路徑 C:\Zope\Instance\plone
修改 $ZopeInstance\etc\zope.conf 讓 reStructuredText (reST) 使用 UTF-8:
rest-input-encoding utf-8
rest-output-encoding utf-8Windows 版的 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>安裝後,啟動 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 目錄
在前述安裝 Zope 時已經建立一個 Instance 目錄,但是有時需要嘗試其它 product 或測試某些 product 的升級是否能順利進行,為了避免破壞原來的 ZODB (Data.fs),我建議另外建立一個供測試用的 Instance 目錄,在這篇筆記中,我另外建立 C:\Zope\Instance\developer 這個目錄來作為測試用的。
開啟 Windows 的「命令提示字元(command prompt window)」,執行
$ZopeHome\Python\python.exe $ZopeHome\Zope\bin\mkzopeinstance.py
這個指令,建立
C:\Zope\Instance\developer作為 Instance 目錄並設定管理者 admin 的密碼。接下來的內容採用的路徑變數為:
$DevInstance 代表路徑 C:\Zope\Instance\developer
參考前述安裝 Zope 的筆記新增 management_page_charset 這個 property,及修改 $DevInstance\etc\zope.conf 使 reStructuredText (reST) 使用 UTF-8。
修改 $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。
可以在命令提示字元視窗中執行
$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
執行程式集裡的“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
自 http://www.python.org 下載 Python 的 Windows installer,下載的版本必須和 Zope 搭配或更新版,我比較建議使用和 Zope 同樣的版本,Zope 所使用的 Python 版本在 ZMI 中可以查知,如 Zope 2.10.2 採用了 Python 2.4.4。
我建議將 Python 安裝在 $ZopeHome\Python\ 這個目錄,直接覆蓋掉 Zope's Python,這樣的好處是不用修改任何的路徑參數,就能直接將 Zope 啟動為 Win32 service。
安裝 Python 前請記得先關閉 Zope service,這樣還可以省去必須重開機的麻煩。
安裝 Python Imaging Library (PIL)
在 http://www.pythonware.com/products/pil/ 下載 Python Imaging Library (PIL) 的 Windows installer 安裝即可。下載時必須注意 Python 版本,如使用 Python 2.4 時請下載 PIL-1.1.6.win32-py2.4.exe 這個檔案。
安裝後,可以參考 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
ElementTree 是一個和 xml 相關的套件,在 http://effbot.org/zone/element-index.htm 這個網頁有詳盡的說明。
自 http://effbot.org/downloads/#elementtree 下載 elementtree-1.2.6-20050316.win32.exe。
安裝後,可以用這個方法測試:
# 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
CJKSplitter 是支援中日韓三種語言的全文檢索斷字模組,它和標準的英文 Splitter 相容,且提供 CJK Splitter (unicode/utf-8)、CJK GB Splitter (unicode、gb18030 等簡體中文編碼) 及 CJK BIG5 Splitter (unicode/big5) 支援,自 0.6 版也支援單一中文漢字查詢。
在 hhttp://zopen.cn/products/open/CJKSplitter/ 或 http://www.zope.org/Members/panjunyong/CJKSplitter 下載 CJKSplitter 0.7.3 版(cjksplitter-0_7_3.tgz)。
解開後,複製到 $ZopeInstance\Products 目錄。
安裝 ZopeChinaPak
ZopeChinaPak 是一個 Zope 的中文補丁集合,提供中文的 Zope/Plone 使用者更完整的中文支援。
在 http://zopen.cn/products/open/ZopeChinaPak/ 或 http://plone.org/products/zopechinapak 下載 ZopeChinaPak 0.8.2 (zopechinapak-0_8_2.tgz)。
解開後,複製到 $ZopeInstance\Products 目錄。
安裝 CMF 與 Plone
Plone 是基於 CMF、Archetyps 而建構的一個 Product,從 http://plone.org 下載 for all platforms 的 product package 檔案也已經將所需要的 CMF、Archetypes、PlacelessTranslationService 等 product 都打包在一起了。
目前 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 目錄下。
重新啟動 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。
重新啟動 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 修訂內容。