After having installed the plone CMS from ports and playing with it for a while, I found out that extensions can only really be added via the so-called buildout mechanism, which was kind of hard to understand if you don't use it in the first place! So I decided to ditch the install via ports, and go for a buildout in my server jail. The first step was to download the latest unified installer for the latest stable release (at the time of writing, Plone-3.3.5-UnifiedInstaller.tgz) from http://www.plone.org.
For reasons mentioned in the following links, I decided to install as root, and to use the ZEO client/server setup. I did decide to use the libz library that is part of the base system, and the jpeg port that I already have installed instead of having the installer build separate copies.
The installation was pretty easy;
server# cd tmp server# tar xf Plone-3.3.5-UnifiedInstaller.tgz server# cd Plone-3.3.5-UnifiedInstaller/ server# ./install.sh zeo --libz=no --libjpeg=no Plone successfully installed at /usr/local/Plone See /usr/local/Plone/zeocluster/README.txt for startup instructions Use the account information below to log into the Zope Management Interface The account has full 'Manager' privileges. Username: admin Password: nAjPbZge ...
It is important to note this password. You'll need it to log in. As per instructions, I read the /usr/local/Plone/zeocluster/README.txt file. The first thing it advised me was to check /usr/local/Plone/zeocluster/buildout.cfg to see if I wanted to change anything. Since my server jail runs on a local IP address (192.168.0.100), I edited buildout.cfg to change the zeo-address under the [buildout] heading from 127.0.0.1:8100 to 192.168.0.100:8100. Having read the documentation, I decided to also add the Products.CacheSetup egg CacheFu to make plone faster. These changes made it necessary to run ./bin/buildout, which automatically downloaded any needed components.
The installation process created a plone user and group on my system. Since the ZEO server wanted to run under its own user, I added a zeo user as well. I changed the entries in /etc/master.password so that they looked like this:
plone:*:1003:1003::0:0:Plone Admin:/var/empty:/usr/sbin/nologin zeo:*:1004:1004::0:0:Zeo Server:/var/empty:/usr/sbin/nologin
(As always on FreeBSD after making changes to /etc/master.password, it is necessary to run the command pwd_mkdb -p /etc/master.passwd, see the pwd_mkdb manual page.)
It turned out the server (running as user zeo didn't have access to the directory /usr/local/Plone/zeocluster/var/zeoserver, where it wanted to put a PID-file and a logfile, because that was owned by root. Ditto for the /usr/local/Plone/zeocluster/var/filestorage directory. So I fixed that;
server# chown zeo /usr/local/Plone/zeocluster/var/zeoserver server# chown zeo /usr/local/Plone/zeocluster/var/filestorage
Now I could start the server for the first time;
server# /usr/local/Plone/zeocluster/bin/plonectl start zeoserver: . daemon process started, pid=39058 This is the first start of this instance. Creating Data.fs and a Plone site. We only need to do this once, but it takes some time. Creating Plone site at /Plone in ZODB... Installed Plone standard content Finished adding Plone site client1: . daemon process started, pid=39062 client2: . daemon process started, pid=39066
The site creation is only run once, so at the next start, you will only see the notifications of the server and clients startup.
To go to the site, I pointed my browser to http://server.erewhon.net:8080/Plone/.
Stopping the server goes as follows;
server# /usr/local/Plone/zeocluster/bin/plonectl stop zeoserver: . . . . . . . . . . daemon process stopped client1: . . . . . daemon process stopped client2: . . . . daemon process stopped
I'll be experimenting with building a site for documentation next.