This was published in the Issue 114 of Linuxgazette
In the Issue 108 of Linux Gazette, Neil Youngman had written an article introducing JSPWiki. In this
article I would like to introduce you to an obscure but feature packed
Wiki, called PmWiki. Before diving into the intricacies of Wiki, I will speak a
bit about where I have used wikis and found them quite good.
- Wikis make it easy to create
interlinked HTML pages. You can concentrate on the task of writing actual
content without worrying about HTML tags or how to create the navigation
links. The easy markup of the wikis make it very easy to copy text from
emails, chat logs and random web pages and add it in your wiki. The
wikiengine takes care of transforming the simple text to clean HTML. (a
side note: you should give credit to the original author when you are
copying text from some email/web page.)
Most wikiengines come with a search engine too, which makes the task to
searching through the Wiki pages easier.
- Available anywhere to-do list
- I have tried a lot of things to
keep a list of things I have promised to do. At one time I experimented
with keeping it on a wiki page (on the Internet) and then kept
adding/subtracting to it. (these days I use the excellent emacs-planner
). Since it is quite easy to edit the wiki page, it was quite effective.
- Keeping meeting notes
- In a brainstorming session, it is
important to keep notes. However, if the company is small, the onus is
upon the participants to keep track of the discussions that happened. In
my previous company (which was quite small), each one of us kept our own
notes in a simple text file. After the session was over, we used to create
one wiki page and put our individual notes on that page.
1.2 Why Pmwiki
The main features that I was looking for in the Wiki were
Looking through the list of available Wiki options, I
found PmWiki. It met all the
requirements that I was looking for. I also saw that this project
definitely believed in eating
its own dogfood. The documentation as well as the bug list has been maintained using
PmWiki itself. I also had a look at the wiki's markup
syntax, which seemed to be simple enough.
- It should not require a database backend, since I had used up all the databases allocated to me by my hosting provider
- It should be written in PHP, since this is the language that I know quite well
- It should be under GPL license
- It should be skinnable, i.e. I should be able to change its look and feel without too much trouble
The Installation page
has instructions on how you can get the latest version of PmWiki. The page
also has installation instructions. As it is common with most of the PHP
applications, the process is quite simple. You have to copy the files to a
directory in your webserver's document root (for example in
/var/www/html/mywiki) and then change the directory
permissions to 2777. Use a browser to open the
page in this directory i.e.
`www.yourdomain.com/mywiki/pmwiki.php'. If the permissions have
been set properly, you should see the default PmWiki home page.
Once the wiki has been installed, the next step is to customize it.
The customizations are usually controlled by the
config.php file found in the
local directory. When you first
install PmWiki, the
config.php file will not exist and so
you'll have to create one if you want to perform any local
customizations. You can copy the
sample-config.php file (in the
same directory as
local directory and use it as a
The first thing that you may want to customize is the
$WikiTitle variable gives
the name of your site as it will appear in a user's browser title bar.
The next thing you may want to customize is the skin. If you lack
design skills, like me, there is still hope for you. The PmWiki has
good skins available
at the site itself. Once you have downloaded the skin, unzip and put
it in the folder
pub/skins/). Then you set the
variable to the name of the directory that contains your skin files.
For example, if you like
the zip file and unzip its content. You will have a folder called
jhskin. Upload this folder to the
pub/skins folder in
your wiki's directory. Then change the
Skin variable to
$Skin = 'jhskin'. When you reload the wiki in your browser,
you will see that it sports a new look now.
The PmWiki cookbook has
tips for more customizations.
1.5 Antispam Measures
Since wiki pages are editable by everyone, spammers use them to serve
as their link farms (For example, this
google search will help you to locate some abused wikis). Luckily
PmWiki provides a few measures to fight against this menace. You can use
the Movable Type
black list to help control wiki spam. If the number of users who need
to use the wiki is small, you can even give them indivual
passwords. There is a UserAuth script
available too, which allows you to manage a larger number of users. This
script also allows you to register users before they can edit pages.
If you are making a wiki which will reside on your LAN, you can leave
out these antispam measures. If you are making the wiki for your own
use, I strongly suggest you have an admin password and allow only the
admin to edit the pages. If you are making a world editable Wiki, be
sure to review the PmWiki Security page.
Now that you are ready to run your own wiki, here are some helpful