PmWiki is free wiki software written by Patrick R. Michaud in the PHP programming language.
It is licensed under the terms of the GNU General Public License.
PmWiki was written by Patrick R. Michaud. Patrick owns a trademark on the name "PmWiki".
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. Despite having such low barriers to install a basic wiki, the software is also designed to be extremely extensible and customizable.
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 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.
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. Through the use of custom scripts it is possible to integrate password protection into a .htpasswd file.
There are also user-based authorization possibilities and authentication via various external sources (e.g. LDAP) is supported.
PmWiki follows a design philosophy. Its main objectives are 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 your own extensions is made very easy by lots of well documented hooks in the wiki engine.
Prerequisites for running the PmWiki wiki engine:
- PHP 4.1 or later
- Any webserver that can run PHP scripts (e.g. Apache, Microsoft IIS)
- 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) executing on a Linksys NSLU2 Network Storage Link device (running Unslung 5.5 beta, a Linux derivate for embedded systems)
- x86 Linux + LiteSpeedWeb Server Standard Edition