Gentoo Wiki


This article is part of the HOWTO series.
Installation Kernel & Hardware Networks Portage Software System X Server Gaming Non-x86 Emulators Misc



Plone is a 'user-friendly and powerful open source Content Management System. Plone is hosted by the Zope application environment.'

Zope is 'an open source application server for building content management systems, intranets, portals, and custom applications.'.

ZEO (Zope Enterprise Objects) is 'a way of running a zope server in distributed fashion'.

ZEO Cluster Architecture (non-proxyed version)

             ZEO Client1 --
           /               \
INTERNET --                  -- ZEO -- ZODB (Data.fs) 
           \               /     |
             ZEO Client2 --   Products

You should consider using Apache and Squid for load balancing and proxy, but this will not be covered in this howto.

How to install ZEO/Zope and Plone-2.5 on a Gentoo box

# echo "net-zope/zope" >> /etc/portage/package.keywords
# emerge -v =net-zope/zope-2.9.7
# echo net-zope/plone >> /etc/portage/package.keywords
# emerge libxslt ">=plone-2.5.3" -n 
# env-update

CREATE ZEO and ZEO Clients (1,2,...)

Create ZEO Server

# /usr/lib/zope-2.9.7/bin/ zeo 8100

Create ZEO Client 1

# /usr/lib/zope-2.9.7/bin/ --dir=client1

Create ZEO Client 2

# /usr/lib/zope-2.9.7/bin/ --dir=client2

One ZEO Client will be used for administrators (with debug mode on) and the other for users. This makes possible that you install new products without shutting down the site.

Configure the clients and server

At the bottom of the zope.conf files found in client(1,2,etc...), comment out the section for zodb_main and uncomment the example for zeo client storage.

Change the address directive in the http-server and ftp-server sections of one of the client zope.conf files so that the clients can run on separate ports. (for example: 8080 for client1 and 8081 for client2)

Set the "effective-user" for both clients to zope.

# nano client1/etc/zope.conf
# nano client2/etc/zope.conf

In zeo/etc/zeo.conf uncomment the user zope line.

# nano zeo/etc/zeo.conf

Ownership and permissions

# chgrp zope zeo/var zeo/log client1/var client1/log client2/var client2/log
# chmod g+w zeo/var zeo/log client1/var client1/log client2/var client2/log

zeo folder owner should be zope 
check permissions and ownership

Plone (Products)

Download Plone from Plone site [1]

# wget Plone-x.y.z.tar.gz (where x.y.z is the Plone version)

# cd /tmp
# tar zxf Plone-x.y.z.tar.gz
# cd /var/lib/zope 
# mkdir products

Move products to "centralized" products dir

# mv /tmp/Plone-x.y.z/* products

Remove unnecessary things

# rm -r /tmp/Plone-x.y.z*

Symlink Products (centralized folder for products)

# rm -r client1/Products
# rm -r client2/Products
# ln -s ../products client1/Products
# ln -s ../products client2/Products

Start Cluster

# zeo/bin/zeoctl start
# client1/bin/zopectl start
# client2/bin/zopectl start

Add a Plone site

Go to http://localhost:8080/manage (you can also use 8081 instead of 8080)

Log in with the root administrator password you created before.

In the drop-down at the top right next to the Add button, select "Plone site" and click Add.

The id you give it will be the URL to the instance, so if you give it the name "plone-site", you can access it on http://localhost:8080/plone-site.

After it has installed, find the instance in the ZMI (Zope Management Interface), and go to the portal_quickinstaller tool. Select the products that are in the uninstalled table and click Install.


Useful Links

Retrieved from ""

Last modified: Fri, 05 Sep 2008 21:09:00 +0000 Hits: 2,509