Deploying Plone with WSGI using zc.buildout, plone.recipe.zope2instance and Waitress#
The plone.recipe.zope2instance
creates and configures a Zope instance in a buildout part.
To provide a smooth transition to Plone 5.2 and WSGI it tries to guess sensible defaults.
The goal in providing WSGI support in plone.recipe.zope2instance
was to keep the buildout configuration close to the ZServer configuration.
Many options formerly used for ZServer are working in pretty much the same way for WSGI.
WSGI is the default in recent plone.recipe.zope2instance
versions.
It can be overridden by ZServer for Python 2.
Waitress is the default WSGI server configured by plone.recipe.zope2instance
.
Waitress is a pure Python WSGI server implementation originating from the Pylons project.
With this information in mind, creating a minimial WSGI buildout for Plone is fairly easy.
A working example is contained in basic.cfg
in the training buildout, here are the file contents:
[buildout]
extensions = mr.developer
parts = instance
extends = https://dist.plone.org/release/5.2-latest/versions.cfg
auto-checkout =
plone.recipe.zope2instance
wsgitraining.site
sources = sources
[sources]
plone.recipe.zope2instance = git https://github.com/plone/plone.recipe.zope2instance.git
wsgitraining.site = fs wsgitraining.site
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
eggs =
Plone
wsgitraining.site
As you can see, we are using a custom add-on named wsgitraining.site
contained in the buildout.
We will not use the add-on immediately so you don't need to activate it yet.
We use mr.developer
to checkout the source code of this add-on.
We also use a source checkout of the plone.recipe.zope2instance
buildout recipe to get the latest (maybe not yet released on PyPI) functionality for this training.
As a first exercise in this training run the above buildout configuration from the command line:
Activate your virtualenv if you haven't done so already:
~/wsgitraining$ . bin/activate
Run buildout:
(wsgitraining) ~/wsgitraining$ buildout -c basic.cfg
After a successful buildout, you can start Plone in the foreground as usual.
Start zeo
first:
(wsgitraining) ~/wsgitraining$ bin/zeo start
Then start the application server:
(wsgitraining) ~/wsgitraining$ bin/instance fg
You can then create a Plone instance by pointing your browser to http://localhost:8080
.