zope学习笔记

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

看着论坛上的高手们发表的帖子,经常想自己什么时候也能写一些这样的帖子呢?

用Zope构件web服务是一个比较新的技术,最近想搞个电子商务的网站.反正又没有客户,自己玩玩的,就选了这个技术.国内资料并不多,所以基本上是模着石头过河,我也只是初学.这仅当是自己的学习笔记吧.第一次写,大家多提意见阿.

运行环境:althon 650+196M+freebsd 5.2+ zope2.6.2

一 安装zope

我用的是freebsd,用ports collection装的.

具体安装不再讨论之内.

二 必要的设置

更改Zope站点实例的位置,这是我使用zope面临的第一个问题,zope装好以后就可以使用(当然还要改一下var的权限,下面再讲),但是实例是在 zope的安装目录下的,我的是/usr/locla/www/Zope/.对于大型的网站这当然不行.所以要更改实例的位置.同时还应该为网站专门设立一个专门的用户.

看看我的做法:

首先建立一个用户,我的是webroot,最好让他属于wheel组,可以用su切换用户,这样调试起来比较方便.

用make_instance创建实例.

zope有一些用于配制的实用程序,在安装目录的inst目录下有一个make_instance.py,可以在指定目录创建一个实例

代码:

cd /usr/local/www/Zope/inst/

python make_instance.py

引用:

The instance home is the directory from which you will run Zope.

Several instance homes, each with their own data and

configuration, can share one copy of Zope.

Instance home [/usr/local/www/Zope]: /home/www/site2

'/home/www/site2' does not exist.

Shall I create it [y]? y

Created.

Created 'Extensions' directory.

Created 'import' directory.

Created 'Products' directory.

Created 'var' directory.

Created default database

------------------------------------------------------------------------------

Now to create a starting user. Leave the username blank if you want to skip this step.

------------------------------------------------------------------------------

Please choose a username and password.

This will create the initial user with which you manage Zope.

Username: webroot

Password:

Verify password:

chmod 0644 /home/www/site2/inituser

冒号后面是要输入的东西.先是创建实例的路径"/home/www/site2",没有这个目录,提示是否建立,打"y",然后是zope管例员的名字、密码.这里的管理员不是freebsd里的用户,而是在Zope内部的管理员,以后登陆ZMI(Zope Management Interface)时要用到.

然后要将实例目录中的var目录改为root拥有,

代码:

su

cd /home/www/site2

chown -R root var

改var的mod

代码:

chmod -R 1777 var

这样改的原因Zope Book上有说明.

启动zope前必须设置环境变量INSTANCE_HOME,指向实例的目录

代码:

export INSTANCE_HOME=/home/www/site2

然后启动zope,以root用-u指定运行时的用户.我以一般用户身份启动zope没成功过,显示

引用:

-bash-2.05b$ /usr/local/www/Zope/start

/usr/local/www/Zope/start: Can't open /usr/local/www/Zope/start: Permission denied

以root身份

引用:

su-2.05b# /usr/local/www/Zope/start -u webroot

------

2004-01-30T23:03:37 INFO(0) zdaemon Started subprocess: pid 821

------

2004-01-30T23:03:41 INFO(0) ZODB Opening database for mounting: '146941056_1075330297.506043'

------

2004-01-30T23:03:41 INFO(0) ZODB Mounted database '146941056_1075330297.506043' at /temp_folder

------

2004-01-30T23:03:41 INFO(0) ZServer HTTP server started at Fri Jan 30 23:03:41 2004

Hostname: hydrogen.lan

Port: 8080

------

2004-01-30T23:03:41 INFO(0) ZServer FTP server started at Fri Jan 30 23:03:41 2004

Hostname: hydrogen.lan

Port: 8021

------

2004-01-30T23:03:41 INFO(0) ZServer PCGI Server started at Fri Jan 30 23:03:41 2004

Unix socket: /usr/local/www/Zope/var/pcgi.soc

然后就就停在那里了.用浏览器试试,我在内网用windows看http://10.0.0.22:8080/就是zope的欢迎页.需要注意的是zope默认的web服务是在8080端口的.

停止服务ctrl+c就行了.

如果要真正对这个zope实例进行修改的话,应该使实例目录由-u指定的目录拥有,

确认一些是否如此,否则以后实用会出现文件不能修改等问题.

可以在修改var属性之前先

代码:

chown -R webroot /home/www/site2

接着让开机时就运行zope,我装完zope的时候在/usr/local/etc/rc.d下已经有一个zope.sh.sample脚本了,以这个脚本为蓝本,下面是我的zope.sh,可以自己修改参数

代码:

su-2.05b# cat /usr/local/etc/rc.d/zope.sh

#!/bin/sh

#you can change it begin

export ZOPEROOT=webroot

export INSTANCE_HOME=/home/www/site1

#you can change it end

case "$1" in

start)

umask 077

nohup /usr/local/www/Zope/start -w 80 -f 21 -m '' -u $ZOPEROOT -p /usr/local/www/cgi-bin/Zope.cgi >> $INSTANCE_HOME/zope-output 2>&1 &

echo -n " Zope"

;;

stop)

/usr/local/www/Zope/stop

echo -n " Zope"

;;

*)

echo "Usage: `basename $0` {start|stop}" >&2

;;

esac

exit 0

这样zope服务器就基本配成了.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航