[Zope] HOWOT: DirectoryStorage and Zope under Debian
J C Lawrence
claw at kanga.nu
Thu Sep 18 01:11:52 EDT 2003
I've recently become a fan of DirectoryStorage:
http://dirstorage.sourceforge.net/
and spent some time getting it happy under Debian's Zope package. In
case others may want to do the same, here's how I got it working:
0) The assumption is that all the following are performed as root.
1) Install Zope in the normal Debian fashion. (# apt-get install
zope). Note: I didn't install the 'zopectl' package.
2) Install DirectoryStorage as per the install instructions in
/usr/lib/zope/lib/python, and copy the product directory over to the
appropriate Zope instance. For me that was
/var/lib/zope/instance/default/Products.
3) Follow the rest of the DirectoryStorage installation instructions.
4) custom_zodb.py should look something like:
--<cut>--
import os,sys
from DirectoryStorage.Full import Full as S
from DirectoryStorage.Filesystem import Filesystem
# Change this to point to your database directory
fs = Filesystem('/var/lib/zope/instance/default/var/Data_fs_dir')
Storage = S(fs)
--<cut>--
Your path for the value of `fs` may vary if you're using a non-default
instance.
5) Edit /etc/zope/zopectlrc and comment out the ZOPEOPTS line which
specifies the zope user as shown in the following excerpt:
--<cut>--
ZOPEOPTS="${ZOPEOPTS} --pid ${zope_pidfile}"
# ZOPEOPTS="${ZOPEOPTS} -u zope"
ZOPEOPTS="${ZOPEOPTS} -l ${zope_logfile}"
ZOPEOPTS="${ZOPEOPTS} -z ${ZOPE_HOME}"
--<cut>--
6) Edit /etc/init.d/zope and edit the first case such that it reads:
--<cut>--
start|stop|restart|force-reload)
su - zope -c "$ZOPECTL $ZOPECTLOPTS $1 $ZOPEOPTS"
;;
--<cut>--
FYI the original form of the line was:
$ZOPECTL $ZOPECTLOPTS $1 $ZOPEOPTS
7) Do the following (edit as appropriate for your instance) to get the
permissions right on the log and pid files, the instance specific
Products, and the DirectoryStorage hierarchy you just created:
# chown zope.zope /var/run/zope/default /var/run/zope/default/*
# chown zope.zope /var/log/zope/default /var/run/zope/default/*
# cd /var/lib/zope/instance/default
# find . | xargs chown zope.zope
8) Start zope:
# /etc/init.d/zope/start
You should see many new files being created under your
DirectoryStorage hierarchy and after a short delay while a default
ZODB is instantiated, Zope should be running atop the new storage
layer.
9) Follow the rest of the DirectoryStorage installation and operation
instructions.
Enjoy.
--
J C Lawrence
---------(*) Satan, oscillate my metallic sonatas.
claw at kanga.nu He lived as a devil, eh?
http://www.kanga.nu/~claw/ Evil is a name of a foeman, as I live.
More information about the Zope
mailing list