See also: InstallingOnMac, Zwiki and Plone.

I wanted a Wiki but the basic ZWiki did not have the user interface that I wanted. Someone told me to put ZWiki inside a Plone Site and it would do what I was looking for. This set me off on my adventure. I was surprised at how obscure some tidbits of essential information were. So, this page, I hope, will be able to lead someone from nothing to having a running ZWiki inside a Plone Site with minimal confusion and frustration.

Good luck...

First, a couple of don'ts:

First Dont: I had python 2.4.3 installed but in my usual quest to have the latest, I installed python 2.5. This led to problems. The python packages installed used python 2.5. But the Zope install process finds python 2.4.3, prefers it, so uses it. This led to Zope running on 2.4.3 while some of the packages I installed were only on 2.5 (and so not available). To gist of this paragraph is simply: stick to python 2.4.3. (I do not cover how to install python in this article).

Second Dont: Plone 2.5 will not work with Zope 2.10 (and there are no plains to). So, do not get Zope 2.10. Stick with Zope 2.9.5

Third Dont: ZWiki 0.57.0 does not work with Plone. I backed off to ZWiki 0.56.0.

Now for some Do's:

First:

I su to root. The way I do this is sudo -s. All of the following commands are done as root. I will explicitly tell you when to end the root session.

I'm doing all this from a Mac running 10.4.8. It did not have a nice utility called wget. I suggest downloading it, compiling it, and using it. That sequence is something like this. First, download wget. It is at:

http://ftp.gnu.org/pub/gnu/wget/wget-1.10.2.tar.gz

Download the file, uncompress it, untar it, cd into the source directory. Then do the usual:

./configure
make
make install

sequence of commands. If you can do this much, the rest of this page should not be any harder.

Second:

Below are a sequence of eight packages (I'm using the term "package" in a non-python sense). I use two directories for this sort of thing. One is /usr/local/images where I store the items that I download. The other is /usr/local/src which is where I unpack the downloaded items. So, the sequence is to pull all eight packages down. Then cd over to the src directory. Then for the first six of the package, you unpack and untar them, cd into the directory that is created, execute a sequence of commands to compile and install the package, then cd up to the original directory. The tar command comes in two flavors. If the package is compressed with bzip2, then it is tar xjf <path>. If the package is compressed with gzip, the j changes to z so the tar command becomes tar xzf <path>. Here are the details:

# make the working directories
mkdir /usr/local/images /usr/local/src

# cd into the images directory and pull down all eight packages
cd /usr/local/images
wget http://www.zlib.net/zlib-1.2.3.tar.bz2
wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
wget http://effbot.org/downloads/elementtree-1.2.6-20050316.tar.gz
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.2.1.tar.bz2
wget http://effbot.org/downloads/Imaging-1.1.5.tar.gz
wget http://www.zope.org/Products/Zope/2.9.5/Zope-2.9.5-final.tgz
wget http://easynews.dl.sourceforge.net/sourceforge/plone/Plone-2.5.1-final.tar.gz
wget http://zwiki.org/repos/ZWiki/releases/ZWiki-0.56.0.tgz

# cd over to the src directory
cd ../src

# now for each package, untar the package, cd into its directory,
# compile, test, and install.  The particular commands change slightly
# with some packages.

tar xjf ../images/zlib-1.2.3.tar.bz2
cd zlib-1.2.3
./configure
make
make test
make install
cd ..

tar xzf ../images/jpegsrc.v6b.tar.gz
cd jpegsrc.v6b.tar.gz
./configure
make
make test
make install
cd ..

tar xzf ../images/elementtree-1.2.6-20050316.tar.gz
cd elementtree-1.2.6-20050316
python2.4 setup.py build
python2.4 selftest.py
python2.4 setup.py install
cd ..

tar xjf ../images/freetype-2.2.1.tar.bz2
cd freetype-2.2.1
./configure
make
make install
cd ..

tar xzf ../images/Imaging-1.1.5.tar.gz
cd Imaging-1.1.5
python2.4 setup.py build_ext -i
python2.4 selftest.py
python2.4 setup-py install
cd ..

tar xzf ../images/Zope-2.9.5-final.tgz
cd Zope-2.9.5-final
./configure
make
make install
cd ..

At this point, end your su session and get back to a normal user.

Just in case you are snoozing:

At this point, end your su session and get back to a normal user.

The next sequence I did this so many times I came up with a script for the following steps. It is shown below:

#!/bin/bash -x
#
# Script to create a Zope 2 instance, load Plone and ZWiki into the products
#

# DIR is the path to the instance.
DIR=/usr/local/www/Zope-2.9-instance
ZUSER=admin
ZPASSWD=secret

/opt/Zope-2.9/bin/mkzopeinstance.py -d "${DIR}" -u "${ZUSER}:${ZPASSWD}"
cd "${DIR}"/Products
tar xzf /usr/local/images/ZWiki-0.56.0.tgz
tar xzf /usr/local/images/Plone-2.5.1-final.tar.gz
cd Plone-2.5.1
rm -r Marshall PloneTestCase Five
mv * ..
cd ..
rmdir Plone-2.5.1

### End of Script

You need to get the above script into a file and execute it. So, select the text above from the line that starts with #!/bin/bash to the end that starts ### End of Script. Select it and then do "copy" (command-C)

Now do:

cat > /tmp/Doit
<PASTE>
control-d

The <PASTE> will be command-V. The control-d is much like command-X except hold control down and hit d (this is for a Mac). You should get back to the command prompt. Note that you need to change DIR, ZUSER, and ZPASSWD. If you do not know how to use vi, then make the changes in your favorite WYSIWYG editor. Then copy and paste the final result using the sequence I just described. After you have done that, then do these two commands:

chmod +x /tmp/Doit
/tmp/Doit

At this point you will have a directory where $DIR points to. This is called the Zope Instance directory. Because I had so many pitfalls in my quest, what I recommend at this point is to cd to $DIR and then cd into bin (under $DIR). Then run:

./runzope -X 'debug-mode=on'

This, hopefully, will run. It will spew out some messages and cough and shiver a couple of times but eventually, if all is well, it will put out this line:

2006-10-10 21:06:15 INFO Zope Ready to handle requests

(your date and time will change)

Now open your web browser and to go

http://localhost:8080/manage

You will need to type in the ZUSER and ZPASSWD that is in the script above.

You will be presented with ZOPE administrators root web page (this is not Plone or ZWiki yet).

On the right is a pull down menu labeled Select type to add.... Pull it down and select Plone Site. That will put you to a screen with three fields to fill out: Id, Title, and Description. To be safe, I did not put any spaces and used only letters and numerals. The screen says you can change it later on. (And what ever the screen says must be true -- right?)

You are put back into the root screen and but there is a folder with the name of the site. Pick that folder. Then hit the View tab.

In the far upper right, there is a site setup link. Pick it.

Now pick Add / Remove Products (top of the list).

In the middle box (going left to right -- not top to bottom) titled Products Available to Install, there should be an entry and a check box for ZWiki ZWiki-0-56-0. Pick the checkbox and hit the Install button.

Now hit the home tab that is towards the top and on the left of the main viewing area.

Then pick the Add to folder menu item. It will drop down. Pick wiki page. You will be put into a form to fill out the wiki page. Put some entries and hit Save at the buttom.

At this point, its all over but the crying. If you have a second browser, what I did was open it up and navigate to the site and wiki page as an anonymous user. In my case, the URL was:

http://www.easesoftware.com:8080/PloneSite9/FrontPage

I named my Plone Site PloneSite9? (Plone Sites 1 through 8 were not entirely successful) and my first page I called FrontPage. <a href="http://essaywritingservices.org/index.php">writing services</a>

As an anonymous user, you can create a user.

Post notes:

  1. Back in the first browser which is logged in as the administrator, on the far left, hit Root Folder, then hit the folder for your Plone Site. Now hit the Security tab. Scroll to the bottom and you will see the last N entries like ZWiki: Add Comments. This is where you grant and deny permission for various activities to different roles. Somehow, somewhere else, you can assign roles to particular users. I have not gotten that far yet but I wanted to mention it so you would know that the security of your site may not be the way you want it just yet.
  2. One more addition: when a user tries to join the site, an email is sent out. The address that the email comes from defaults to postmaster@localhost. A smart SMTP mail server will reject this as bogus spam. To fix this, log is as the Plone Site administrator (ZUSER/ZPASSWD from above). Go to the plone base page (not root but PloneSite9? in my case). Hit Site Setup in the upper right. Hit Portal Settings. Set the things that you like. Be happy.

I hope this does someone some good somewhere some time some place.

... --simon, Wed, 11 Oct 2006 10:47:18 -0700 reply

Thanks pedz! If you have time, please chat with me (sm) on #zwiki so we can review the situation.