Zope 的安装配置

发表于:2007-06-11来源:作者:点击数: 标签:
核心 zope 安装 假定安装过程中使用的是 root 用户。 获取软件包的当前可用的稳定版本: python 2.1.3: http://www.python.org/ftp/python/2.1.3/Python-2.1.3.tgz zope 2.6.2: http://zope.org/Products/Zope/2.6.2/Zope-2.6.2-src.tgz Zope 的当前版本需要

核心 zope 安装

假定安装过程中使用的是 root 用户。

获取软件包的当前可用的稳定版本:

  • python 2.1.3: http://www.python.org/ftp/python/2.1.3/Python-2.1.3.tgz
  • zope 2.6.2: http://zope.org/Products/Zope/2.6.2/Zope-2.6.2-src.tgz

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, 为了显示中文还需要安装本地化包和翻译包,获取软件包的当前可用的稳定版本:

  • zope CMF 1.3.3: http://cmf.zope.org/download/CMF-1.3.3/CMF-1.3.3.tar.gz
  • plone 1.0.5: http://prdownloads.sourceforge.net/plone/CMFPlone1.0.5.tar.gz?download
  • Localizer 1.0.1: http://prdownloads.sourceforge.net/lleu/Localizer-1.0.1.tgz?download
  • TranslationService 0.4: http://zope.org/Members/efge/TranslationService/0.4/TranslationService-0.4.tgz

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 模块:

  •   mod_fastcgi 2.4.0 :http://www.fastcgi.com/dist/mod_fastcgi-2.4.0.tar.gz

开始安装:

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 的连接

假定 PostgreSQL 安装在 /usr/local/pgsql 目录下PostgresSQL 的源文件在 /usr/local/src/postgres-7.* 目录下。

获取下列软件包:

  • mxDateTime 2.0.5 : http://www.egenix.com/files/python/egenix-mx-base-2.0.5.tar.gz
  • psycopg 1.1.10 : http://initd.org/pub/software/psycopg/psycopg-1.1.10.tar.gz

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

确保可以找到动态库文件 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 的安装。

ZODB 到关系数据库的映射

获取下列软件包:

  • DBTab 1.2.1 : http://hathaway.freezope.org/Software/DBTab/DBTab-1.2.1.tar.gz
  • Ape 0.7.1 : http://hathaway.freezope.org/Software/Ape/Ape-0.7.1.tar.gz

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.ltesting.net

...