核心 zope 安裝
假定安裝過程中使用的是 root 用戶。
獲取軟件包的當前可用的穩定版本:
Zope 的當前版本需要與 python 2.1 一起工作,不能與系統自帶的更高的版本系列一起工作,并且需要啟用多線程配置。
tar -zxvf Python-2.1*.tgz cd Python-2.1* ./configure --with-threads make make install
python 2.1 被安裝到 /usr/local/bin 下面,在安裝與 Zope 有關的所有軟件包的時候,凡是執行 python setup_script.py 的命令行都需要改為 python2.1 setup_script.py,確保相應的模塊被安裝到 /usr/local/lib/python2.1 下面。
假定把 Zope 安裝到 /usr/local/Zope 目錄下。
tar -zxvf Zope-2.6.2.tgz mv Zope-2.6.2 /usr/local/Zope cd /usr/local/Zope make
記住屏幕上顯示的初始用戶的名字 admin 和隨機生成的口令,可以在用這個口令登錄到 Zope 的 web 管理界面時更改口令,或現在就執行下面的命令行來更改 admin 用戶的口令:
python2.1 zpasswd.py inituser
Zope 的安裝完成,下面做的是進一步的定制。
useradd zope chown -R root /usr/local/Zope chmod o+t var mkdir var/gadfly mkdir var/gadfly/demo mkdir var/mnt chown -R zope var/*
Zope 的控制腳本有兩個 start,stop。編輯一個可以放置到 /etc/init.d 中的 zope 控制腳本:
if [ $# -ne 1 ]; then echo need one argrument: start, stop or restart exit 1 fi ZOPE_HOME=/usr/local/Zope case $@ in start)${ZOPE_HOME}/start -u zope & ;; stop)${ZOPE_HOME}/stop ;; restart)${ZOPE_HOME}/stop ; ${ZOPE_HOME}/start -u zope & ;; esac
啟動 Zope:
./zope start
用瀏覽器訪問 http://localhost:8080/??梢砸姷揭粋€ Zope Quick Start 頁面,其中有指向 The Zope Book 和例子的連接,其中 Zope Management Interface 連接指向 Zope 管理界面,也可以直接用 http://localhost:8080/manage 訪問。從其他機器上訪問,把這里的 localhost 替換為實際的域名或 IP。
到此就可以讀教程,熟悉一下 Zope 的使用然后繼續安裝。
本地化和內容管理構件的安裝
下面繼續安裝 CMF 和 plone, 為了顯示中文還需要安裝本地化包和翻譯包,獲取軟件包的當前可用的穩定版本:
plone 需要與 zope CMF 1.3 一起工作。安裝 CMF:
tar -zxvf CMF-1.3.3.tar.gz mv CMF-1.3.3 /usr/local/Zope/CMF cd /usr/local/Zope/CMF
編輯一個 run 文件:
INSTANCE_HOME=/usr/local/Zope SOFTWARE_HOME=/usr/local/Zope/lib/python ln -s ${INSTANCE_HOME}/CMF/CMFCore ${SOFTWARE_HOME}/Products/CMFCore ln -s ${INSTANCE_HOME}/CMF/CMFDefault ${SOFTWARE_HOME}/Products/CMFDefault ln -s ${INSTANCE_HOME}/CMF/CMFTopic ${SOFTWARE_HOME}/Products/CMFTopic ln -s ${INSTANCE_HOME}/CMF/CMFCalendar ${SOFTWARE_HOME}/Products/CMFCalendar
運行這個 run 腳本完成 CMF 的安裝。
安裝 plone:
tar -zxvf CMFPlone1.0.5.tar.gz mv CMFPlone-1.0.5 /usr/local/Zope/CMFPlone cd /usr/local/Zope/CMFPlone
編輯一個 run 文件:
INSTANCE_HOME=/usr/local/Zope SOFTWARE_HOME=/usr/local/Zope/lib/python ln -s ${INSTANCE_HOME}/CMFPlone/CMFPlone ${SOFTWARE_HOME}/Products/CMFPlone ln -s ${INSTANCE_HOME}/CMFPlone/i18n ${SOFTWARE_HOME}/Products/i18n ln -s ${INSTANCE_HOME}/CMFPlone/Formulator ${SOFTWARE_HOME}/Products/Formulator ln -s ${INSTANCE_HOME}/CMFPlone/DCWorkflow ${SOFTWARE_HOME}/Products/DCWorkflow
運行這個 run 腳本完成 plone 的安裝。
安裝完產品(構件)之后,需要重新啟動 Zope 使之生效。
登入 Zope 的 web 管理界面,增加一個 Plone Site,就有了一個現成的內容管理系統了。
安裝 Localizer 和 TranslationService 包:
tar -zxvf Localizer-1.0.1.tgz mv Localizer /usr/local/Zope/lib/python/Products tar -zxvf TranslationService-0.4.tgz mv TranslationService /usr/local/Zope/lib/python/Products
后續配置參見 http://www.plone.org/development/i18n/howto 即可。
與 apache 的連接
假定 Apache 2.0.* 安裝在 /usr/local/apache 目錄下。
獲取 mod_fastcgi 模塊:
開始安裝:
tar -zxvf mod_fastcgi-*.tar.gz cd mod_fastcgi-* cp Makefile.AP2 Makefile make top_dir=/usr/local/apache make install
編輯 Apache 配置文件 /usr/local/apache/conf/httpd.conf,增加如下內容:
LoadModule fastcgi_module modules/mod_fastcgi.so FastCgiExternalServer /usr/local/apache/htdocs/zope \ -socket zope.soc \ -pass-header Authorization <Location /zope> SetHandler fastcgi-script </Location>
編輯 Zope 的啟動文件 /usr/local/Zope/start, 更改啟動 ZServer 的選項。
exec /usr/local/bin/python2.1 $cwd/z2.py -f - -w - -F /usr/local/apache/logs/fastcgi/zope.soc -D "$@"
停止對 8080 和 8021 端口的監聽,啟用 fastcgi 連接。
重新啟動 Apache 和 Zope。對 Zope 的訪問變為 http://localhost/zope。
假定 PostgreSQL 安裝在 /usr/local/pgsql 目錄下PostgresSQL 的源文件在 /usr/local/src/postgres-7.* 目錄下。
獲取下列軟件包:
mxDateTime 為 python 提供對數據庫的日期時間類型的處理。
tar -zxvf egenix-mx-base-*.gz cd egenix-mx-base-* python2.1 setup.py install
psycopg 是 python 訪問 PostgreSQL 數據庫的適配器,軟件包中還帶有 ZPsycopgDA,它是 Zope 訪問 PostgreSQL 數據庫的適配器。
確保安裝了 PostgreSQL 的全部頭文件:
cd /usr/local/src/postgresql-* make install-all-headers
確??梢哉业絼討B庫文件 libpq.so,如果它不在 /lib /usr/lib 下,則需要編輯 /etc/ld.so.conf。增加一行
/usr/local/pgsql/lib
執行命令使之生效。
ldconfig
開始安裝 psycopg:
tar -zxvf psycopg-*.gz cd psycopg-*
編輯一個 run 文件。
./configure --with-python=/usr/local/bin/python2.1 \ --with-zope=/usr/local/Zope \ --with-mxdatetime-includes=/usr/local/lib/python2.1/site-packages/mx/DateTime/mxDateTime \ --with-postgres-includes=/usr/local/pgsql/include \ --with-postgres-libraries=/usr/local/pgsql/lib make make install make install-zope
執行這個 run 文件完成 psycopg 的安裝。
獲取下列軟件包:
DBTab 使用配置文件來設置數據庫連接。使用它可以掛裝多個數據庫。
tar -zxvf DBTab-*.gz mv DBTab /usr/local/Zope/lib/python/Products cd /usr/local/Zope/lib/python/Products/DBTab
編輯一個 run 文件
SOFTWARE_HOME=/usr/local/Zope/lib/python INSTANCE_HOME=/usr/local/Zope ln -s ${SOFTWARE_HOME}/DBTab/custom_zodb.py ${INSTANCE_HOME}/custom_zodb.py cp ${SOFTWARE_HOME}/DBTab/dbtab.conf.in ${INSTANCE_HOME}/dbtab.conf
運行這個文件完成 DBTab 的安裝。
Ape 把 Zope 對象存儲到文件系統或關系數據數據庫中。
tar -zxvf Ape-0.7*.gz mv Ape /usr/local/Zope/lib/python/Products
建立存儲 ZODB 對象的關系數據庫和操縱它的用戶,授權這個用戶能建立數據庫、不能建立用戶:
su postgres createuser -A -d -P zope createdb -U zope zodb exit
按 Ape 的 README.txt 文件的說明編輯 /usr/local/Zope/dbtab.conf:
[Storage: Main] type=FileStorage file_name=%(CLIENT_HOME)s/Data.fs [Database: Main] mount_paths=/ [Storage: FS] type=apelib.zodb3.storage.ApeStorage factory=apelib.zope2.mapper.createFSMapper basepath=%(CLIENT_HOME)s/mnt [Database: FS] class=apelib.zodb3.db.ApeDB cache_size=0 mount_paths=/fs container_class=OFS.Folder.Folder [Storage: PostgreSQL] type=apelib.zodb3.storage.ApeStorage factory=apelib.zope2.mapper.createSQLMapper module_name=psycopg params= dbname=zodb user=zope password=XXXXXX [Database: PostgreSQL] class=apelib.zodb3.db.ApeDB mount_paths=/pg
重啟 Zope,進入 Zope 的 web 管理界面,增加“DBTab Mount Point”, 把 PostgreSQL 數據庫掛裝到 /pg 上。
到此在 http://localhost/zope/pg 下的所有對象都會保存到 PostgreSQL 數據庫中。
原文轉自:http://www.anti-gravitydesign.com