PmWiki
Encyclopedia
PmWiki is wiki software
written by Patrick R. Michaud in the PHP
programming language.
It is free software
, licensed under the terms of the GNU General Public License
.
The PmWiki wiki markup shares similarities with MediaWiki
(used by Wikipedia). The PmWiki markup engine is highly customizable, allowing adding, modifying or disabling markup rules, and it can support other markup languages. As an example, the Creole
specifications can be enabled.
PmWiki is designed to be able to store and retrieve the pages' text and metadata on various systems and formats. It does not support databases in its default installation. However, via plug-ins, PmWiki can already use MySQL or SQLite databases for data storage.
PmWiki supports "attachments" (uploads: images or other files) to its wiki pages. The uploads can be attached to a group of pages (default), individually to each page, or to the whole wiki, depending on the content needs and structure. There are PmWiki recipes allowing an easier management of the uploaded files, e.g. deletion or thumbnail/gallery creation.
By default, PmWiki allows exactly one hierarchical level of the pages ("WikiGroup/WikiPage"), but through recipes, it is possible to have a flat structure (no wiki groups), multiple nested groups, or sub-pages.
Special wiki groups are "PmWiki", Site, SiteAdmin and Category which contain the documentation and some configuration templates.
Password protection can be applied to reading, editing, uploading to and changing passwords for the restricted zone. The out-of-the box installation uses "shared passwords" rather than login names, but a built-in option can enable a sophisticated user/group based access control system on pages, groups of pages or the whole wiki.
PmWiki can use passwords from config files, special wiki pages, .htpasswd
/.htgroup files. There are also user-based authorization possibilities and authentication via various external sources (e.g. LDAP
, forum databases etc.).
in the wiki engine.
PmWiki has been reported to work with the following OS/webserver combinations:
developer Dr. Patrick R. Michaud. Dr. Michaud owns a trademark on the name "PmWiki". A number of other developers and users write, maintain and discuss "recipes" (special purpose configurations, skins or plug-ins) in the PmWiki Cookbook.
Wiki software
Wiki software is collaborative software that runs a wiki, i.e., a website that allows users to create and collaboratively edit web pages via a web browser. A wiki system is usually a web application that runs on one or more web servers...
written by Patrick R. Michaud in the PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
programming language.
It is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
, licensed under the terms of the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
.
Design focus
PmWiki is designed to be easy to install and customize as an engine for creating professional web sites with one to any number of content authors. The software focuses on ease-of-use, so people with little IT or wiki experience will be able to put it to use. The software is also designed to be extensible and customizable.The PmWiki wiki markup shares similarities with MediaWiki
MediaWiki
MediaWiki is a popular free web-based wiki software application. Developed by the Wikimedia Foundation, it is used to run all of its projects, including Wikipedia, Wiktionary and Wikinews. Numerous other wikis around the world also use it to power their websites...
(used by Wikipedia). The PmWiki markup engine is highly customizable, allowing adding, modifying or disabling markup rules, and it can support other markup languages. As an example, the Creole
Creole (markup)
Creole is a lightweight markup language for formatting wikitext, aimed at being a common markup language for wikis, enabling and simplifying the transfer of content between different wiki engines....
specifications can be enabled.
Content storage
PmWiki uses regular files to store content. Each page of the wiki is stored in its own file on the web server. Pages are stored in ASCII format and may be edited directly by the wiki administrator. According to the author, "For the standard operations (view, edit, page revisions), holding the information in flat files is clearly faster than accessing them in a database..."PmWiki is designed to be able to store and retrieve the pages' text and metadata on various systems and formats. It does not support databases in its default installation. However, via plug-ins, PmWiki can already use MySQL or SQLite databases for data storage.
PmWiki supports "attachments" (uploads: images or other files) to its wiki pages. The uploads can be attached to a group of pages (default), individually to each page, or to the whole wiki, depending on the content needs and structure. There are PmWiki recipes allowing an easier management of the uploaded files, e.g. deletion or thumbnail/gallery creation.
Wiki structure
In PmWiki, wiki pages are contained within "wiki groups" (or "namespaces"). Each wiki group can have its own configuration options, plug-ins, access control, skin, sidebar (menu), language of the content and of the interface.By default, PmWiki allows exactly one hierarchical level of the pages ("WikiGroup/WikiPage"), but through recipes, it is possible to have a flat structure (no wiki groups), multiple nested groups, or sub-pages.
Special wiki groups are "PmWiki", Site, SiteAdmin and Category which contain the documentation and some configuration templates.
Templates (skins)
PmWiki offers a template scheme that makes it possible to change the look and feel of the wiki or website with a high degree of flexibility in both functionality and appearance.Access control
PmWiki permits users and administrators to establish password protection for individual pages, groups of pages or the entire site. For example, defined zones may be established to enable collaborative work by certain groups, such as in a company intranet.Password protection can be applied to reading, editing, uploading to and changing passwords for the restricted zone. The out-of-the box installation uses "shared passwords" rather than login names, but a built-in option can enable a sophisticated user/group based access control system on pages, groups of pages or the whole wiki.
PmWiki can use passwords from config files, special wiki pages, .htpasswd
.htpasswd
.htpasswd is a flat-file used to store usernames and password for basic authentication of Apache HTTP Server. The name of the file is given by in the .htaccess configuration, and can be anything, but ".htpasswd" is the canonical name. The file name starts with a dot, because most Unix-like...
/.htgroup files. There are also user-based authorization possibilities and authentication via various external sources (e.g. LDAP
Lightweight Directory Access Protocol
The Lightweight Directory Access Protocol is an application protocol for accessing and maintaining distributed directory information services over an Internet Protocol network...
, forum databases etc.).
Customization
PmWiki follows a design philosophy with the main objectives of ease of installation, maintainability, and keeping non-required features out of the core distribution of the software. PmWiki's design encourages customization with a wide selection of custom extensions, known as "recipes" available from the PmWiki Cookbook. Creating and maintaining extensions and custom installations is easy thanks to a number of well documented hooksCallback (computer science)
In computer programming, a callback is a reference to executable code, or a piece of executable code, that is passed as an argument to other code. This allows a lower-level software layer to call a subroutine defined in a higher-level layer....
in the wiki engine.
System requirements
Prerequisites for running the PmWiki wiki engine:- PHP 4.3 or later
- Any webserver that can run PHP scripts (e.g. Apache, Microsoft IIS, Lighttpd)
- Write permissions for the webserver user account in the PmWiki tree (required for off-line editing only)
- No file type extension restrictions on the webserver (sometimes a problem with free web hosting providers)
PmWiki has been reported to work with the following OS/webserver combinations:
- Apache 1.3 or 2.2, on roughly anything (Unix, Linux, Windows, and Mac OS X)
- Microsoft Internet Information Server, on Windows
- Appweb: a very small, PHP-enabled webserver targeted at embedded devices
- x86 Linux + LiteSpeedWeb Server Standard Edition
- There is a "recipe" to allow running PmWiki "Standalone", without a webserver, for example from a Flash USB stick.
Author
PmWiki was written by the university professor and Perl 6Perl 6
Perl 6 is a major revision to the Perl programming language. It is still in development, as a specification from which several interpreter and compiler implementations are being written. It is introducing elements of many modern and historical languages. Perl 6 is intended to have many...
developer Dr. Patrick R. Michaud. Dr. Michaud owns a trademark on the name "PmWiki". A number of other developers and users write, maintain and discuss "recipes" (special purpose configurations, skins or plug-ins) in the PmWiki Cookbook.
Books
The following books mention PmWiki or have dedicated chapters or sections:- Todd Stauffer, How to Do Everything With Your Web 2.0 Blog, ISBN 978-0071492188
- White, Pauxtis, Web 2.0 for Business: Learning the New Tools, ISBN 978-0470436189
- Nancy Courtney, More Technology for the Rest of Us: A Second Primer on Computing for the Non-IT Librarian, ISBN 978-1591589396
- Holtz, Demopoulos, Blogging for Business: Everything You Need to Know And Why You Should Care, ISBN 978-1419536458
- Ebersbach, Glaser, Heigl, Wiki: Kooperation Im Web, ISBN 978-3540351108
External links
- PmWiki Home Page
- WikiMatrix entry, PmWiki features
- PmWiki References lists a number of publications about PmWiki in various languages