Difference between revisions of "Dokuwiki"

From ArchWiki
Jump to: navigation, search
(PHP, lighttp, and fastcgi: Create the test document.)
(Cleaning Up: use full path)
Line 128: Line 128:
 
=== Cleaning Up ===
 
=== Cleaning Up ===
 
'''After configuring the server remove the install.php file!'''
 
'''After configuring the server remove the install.php file!'''
   #rm install.php
+
   #rm /srv/http/dokuwiki/install.php
  
 
=== Installing Plugins ===
 
=== Installing Plugins ===

Revision as of 00:07, 16 December 2008

Installing DokuWiki

What is DokuWiki?

"DokuWiki is a standards-compliant, simple-to-use wiki which allows users to create rich documentation repositories. It provides an environment for individuals, teams and companies to create and collaborate using a simple yet powerful syntax that ensures data files remain structured and readable outside the wiki."

"Unlimited page revisions allows restoration to any earlier page version, and with data stored in plain text files, no database is required. A powerful plugin architecture allows for extension and enhancement of the core system. See the features section for a full description of what DokuWiki has to offer."[1]

In other words; DokuWiki is a wiki written in PHP and requires no database.

Like to see a running example?

Initial Notes

The following guide sets up a DokuWiki under a directory beneath the html root.

If anyone would like to add a vhost setup guide please feel free to add it.

lighttp Notes

See Fastcgi_and_lighttpd for more details.

The html root is located under /srv/http. This directory may not be created by default, so create it if not.

 #mkdir -p /srv/http

lighttp also creates (or uses) the user account and group of http:http.

 #chown http:http /srv/http

All of these settings can be changed in the file

 /etc/lighttpd/lighttpd.conf

DokuWiki Notes

Some of the DocuWiki plugins look to the root of the webserver rather than the root of the DokuWiki folder, which can cause some problems. All of the default plugins work with the following installation method.

Installing lighttp

PHP, lighttp, and fastcgi

Install PHP Fastcgi and lighttpd

 #pacman -S lighttpd fcgi php

Add an entry to your rc.conf

 DAEMONS=(syslog-ng network netfs crond lighttpd)

Edit your /etc/hosts.allow (by adding the following line)

 lighttpd:    ALL

Start your webserver (sanity check)

 #/etc/rc.d/lighttpd start

Create a test document

 #echo "Testing lighttpd" > /srv/http/index.html

Open a web browser to http://127.0.0.1/, and you should see the test document.

If it didn't work try (and check again):

chown -R http:http /var/run/lighttpd/

Stop the webserver

 #/etc/rc.d/lighttpd stop

Configuration

Uncomment these lines in /etc/lighttpd/lighttpd.conf

"mod_fastcgi"
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/var/run/lighttpd/php-fastcgi.socket",
                                   "bin-path" => "/usr/bin/php-cgi"
                                 )
                               )
                            )

Installing DokuWiki

Downloading the Latest Version

Go to the DokuWiki download site and get the latest version

 #mv dokuwiki*.tar.gz /srv/http
 #cd /srv/http
 #tar zxf dokuwiki*.tar.gz
 #mv dokuwiki-DATE dokuwiki

Preparing the Installation Files

chown the DokuWiki files

 #chown -R http:http dokuwiki/

(http is the default user for lighttp, if you changed this, change the user:group to the lighttp user:group)

DokuWiki Specific lighttp Configuration

Edit the /etc/lighthttpd/lighttpd.conf file

Under the line:

 
$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable"
}

add this:

# subdir of dokuwiki
# comprised of the subdir of the root dir where dokuwiki is installed
# in this case the root dir is the basedir plus /htdocs/
# Note: be careful with trailing slashes when uniting strings.
# all content on this example server is served from htdocs/ up.
#var.dokudir = var.basedir + "/dokuwiki"
var.dokudir = server.document-root + "/dokuwiki"

# make sure those are always served through fastcgi and never as static files
# deny access completly to these
$HTTP["url"] =~ "/\.ht" { url.access-deny = ( "" ) }
$HTTP["url"] =~ "/_ht" { url.access-deny = ( "" ) }
$HTTP["url"] =~ "^" + var.dokudir + "/bin/"  { url.access-deny = ( "" ) }
$HTTP["url"] =~ "^" + var.dokudir + "/data/" { url.access-deny = ( "" ) }
$HTTP["url"] =~ "^" + var.dokudir + "/inc/"  { url.access-deny = ( "" ) }
$HTTP["url"] =~ "^" + var.dokudir + "/conf/" { url.access-deny = ( "" ) }

These entries give some basic security to docuwiki. lighttpd does not use .htaccess files like apache. You CAN install with out this, but I would NEVER recommend it.

For further (possibly updated) configuration, please see the DokuWiki lighttpd install guide

Restart lighttp

Start your webserver

 #/etc/rc.d/lighttpd start

Install DokuWiki

Open a webbrowser to

 http://127.0.0.1/dokuwiki/install.php

Post Installation

Cleaning Up

After configuring the server remove the install.php file!

 #rm /srv/http/dokuwiki/install.php

Installing Plugins

Many community created plugins can be found here

They can be added through the web interface (as well as updated) through the Admin menu.

Backing Up

It is very trivial to backup DokuWiki, since there is no database. All pages are in plain text, and require only a simple tar, or rsync.

A quick breakdown of the directories of interest in the current (2008-05-05) version:

 /dokuwiki/data/  =>  All User Created Data
 /dokuwiki/lib/plugins/  =>  All User Added Plugins

Further Reading

The DokuWiki main site has all of the information and help that you could possibly need.