[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