Euphorie is implemented as a set of add-on products for Plone. The requirements for running an Euphorie site are:
- Plone 4.0 or later.
- a SQL database
- two separate virtual hosts
Development files required on the host operating system:
- libffi (Foreign Function Interface library development files)
e.g. on Debian/Ubuntu: sudo apt-get install libffi-dev
To install Euphorie you will first need to download and install Plone. Euphorie requires Plone 3.3 or later. After installing Plone you can install Euphorie. To do this you will need to edit the buildout.cfg file of your Plone installation. This file is normally located in the zinstance directory if your Plone install. Look for an eggs line and add Euphorie there:
[buildout] ... eggs = Euphorie
This will instruct Plone to install the Euphorie software. Next you will need to add some zcml entries to load the necessary configuration as well:
[instance] ... zcml = euphorie.deployment-meta euphorie.deployment euphorie.deployment-overrides
After making these two changes you must (re)run buildout and restart your Zope instance. Navigate to your zinstance directory and type:
$ bin/buildout $ bin/instance restart
A new Euphorie website option should now appear in the list of add-on products in your Plone control panel. Installing this will setup Euphorie in your site.
For more information on installing add-on products in your Plone site please see the article installing an add-on product in the Plone knowledge base.
Euphorie uses z3c.appconfig to handle application configuration. All values are stored in the euphorie section. For example:
The available options are:
. table:: configuration options
options Description client URL for the client (see also Virtual hosting. terms-and-conditions Boolean flag indicating it the client must ask users to accept the terms and conditions of the site.
Euphorie includes complete Google Analytics support. To enable this you will need to configure the GA account, and optionally the domain name to use. This must be done separately for the CMS and the client.
[tile:footer] type=analytics account=UA-111111-1 domain=.example.com [tile:client-analytics] type=analytics account=UA-111111-1 domain=.example.com
Euphorie uses a SQL database to store information for users of the client. Any SQL database supported by SQLALchemy should work. If you have selected a database you will need to configure it in buildout.cfg. For example if you use postgres you will first need to make sure that the psycopg driver is installed by adding it to the eggs section:
[buildout] ... eggs = Euphorie psycopg2
next you need to configure the database connection information. This requires a somewhat verbose statement in the instance section of buildout.cfg:
[instance] zcml-additional = <configure xmlns="http://namespaces.zope.org/zope" xmlns:db="http://namespaces.zope.org/db"> <include package="z3c.saconfig" file="meta.zcml" /> <db:engine name="session" url="postgres:///euphorie" /> <db:session engine="session" /> </configure>
Make sure The url parameter is correct for the database you want to use. It uses the standard SQLAlchemy connection URI format.
To setup the database you must run buildout and run the database initialisation command:
$ bin/buildout $ bin/instance initdb
You need Zope 2.12.12 or later to be able to use the initdb command. For earlier Zope versions you need to specify the path for the euphorie.deployment.commands.xmlimport module on the command line.
Euphorie requires two separate virtual hosts: one host for the client, and one for CMS tasks. It is common to use oira.example.com as hostname for the client and admin.oira.example.com as hostname for the CMS. The standard method for configuring virtual hosting for Plone sites apply here as well. The Plone website has instructions for configuring Plone with Apache and configuring Plone with Enfold Proxy on Windows. Here is an example Apache configuration:
<VirtualHost *:80> ServerName admin.oira.example.com ProxyPass / http://localhost:8080/VirtualHostBase/http/admin.oira.example.com:80/Plone/VirtualHostRoot/ # Prevent access to the client using the administrative site. <Location /client> order allow, deny deny form all </Location> </VirtualHost> <VirtualHost *:80> ServerName oira.example.com ProxyPass / http://localhost:8080/VirtualHostBase/http/admin.oira.example.com:80/Plone/client/VirtualHostRoot/ </VirtualHost>
You will also need to configure the URL for the client in the euphorie.ini file: