Personal tools
You are here: Home Documentation Tutorials Create, configure, and maintain a robust Plone and Zope installation Why install Zope and Plone from source?
Support

Get Help

Join our chat rooms or support forums if you have more specific questions.

Plone Training
Learn how to design, build, and deploy a website in Plone through one of the numerous Plone training sessions around the world.
Find Plone training…
 
Document Actions

Why install Zope and Plone from source?

Why you should spend the time to install and configure things this way

Matt Rohrer

In this tutorial, Matt Rohrer from Prognostikos explains how to install and configure Plone and Zope from source for a public facing web site.
Page 2 of 5.

Why install Zope and Plone from source?

With a Windows and Mac OS X installer available from plone.org, as well as the inclusion of packages in most Linux distributions and BSD ports systems, you may be wondering why I elect to install Zope and Plone from source. The answer is simple and can be expressed in one word: Control. By using a package or port you are giving up some control to the maintainer over directory layout, dependencies, and versions. Some distributions only include outdated versions of Zope and Plone, while others include the latest released versions immediately after they have been released, often without adequate testing. This can be a problem if you need to upgrade a dependency and your package manager insists on upgrading Zope or Plone to a version that you have not tested with your application.

My philosophy regarding OS packaging systems is that I use them to install all of the utilities and applications that make my life easier, but I prefer to install many of the "mission-critical" services from source to have more control over the upgrade cycle. In the world of Zope this is especially pleasant, as it's a trouble-free and quick compile if you have the right version of python.

Should I also install Python and Apache from source?

Depending on your needs and the version that ships with your OS you may also want to install Python or Apache from source. For example, Mac OS X 10.3 ships with Python 2.3, which is a bit out of date. I install 2.3.4 via the excellent DarwinPorts system.

Apache is a special case. I prefer Apache 1.3.x due to its proven reliability. Changes to Apache 1.3 are limited to bug and security fixes, so I am comfortable using the latest version supplied with the OS or packaging system. Of course, if your Apache system depends on add-on modules that may be newer than you are willing to deploy, you should also consider maintaining a source install outside of your packaging system.

Why use ZEO?

ZEO is most known for its clustering abilities - allowing you to distribute your site's load over multiple CPUs. However, there are several reasons to use ZEO even if you are only using one single-processor machine.

  • You can dedicate one client to the public site and have a second client that handles batch jobs like packing the ZODB and re-indexing the catalog
  • You can debug the live site via zopectl debug - some problems may only show up under a production-level load
  • You're future-proofing your site against the day that you do need a cluster of machines

How many ZEO clients?

The ZEO server is I/O bound, while ZEO clients are CPU and RAM bound. I would recommend creating a publicly accessible ZEO client for each CPU you have available, if you have at least 256MB of RAM (preferable 512MB+) for each.

In the interest of simplicity, most of this tutorial will assume that you are working with one single-processor machine and will have two zeo clients -- one for the public site proxied by Apache and one for maintenance/batch purposes. A final section covering performance (TBD) will discuss how to migrate this configuration to a cluster of machines.

 
by Matt Rohrer last modified December 10, 2005 - 21:36 All content is copyright Plone Foundation and the individual contributors.

For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by