Установка и настройка dokuwiki

На этот раз я опишу настройку dokuwiki - небольшой wiki-системы на PHP, не использующей базы данных SQL. Поскольку не так давно я начал использовать вместо Lighttpd веб-сервер nginx, я опишу два варианта настройки.

1. Настройка веб-сервера и сервера приложений

1.1. Вариант 1 - настройка Lighttpd

Установим веб-сервер Lighttpd и PHP:

# apt-get install lighttpd php5-cgi

Для того, чтобы dokuwiki работала на отдельном домене, нужно исправить файл конфигурации /etc/lighttpd/conf-available/50-dokuwiki.conf до следующего состояния:

$HTTP["host"] == "wiki.domain.tld" {
  server.document-root = "/usr/share/dokuwiki"

  $HTTP["url"] =~ "^/" {
    server.follow-symlink = "enable"
  }

  $HTTP["url"] =~ "/(\.|_)ht" {
    url.access-deny = ( "" )
  }

  $HTTP["url"] =~ "^/(bin|data|inc|conf)" {
    url.access-deny = ( "" )
  }
}

В случае, если dokuwiki должна работать из каталога сайта, можно создать такой файл конфигурации /etc/lighttpd/conf-available/50-dokuwiki.conf:

$HTTP["host"] == "domain.tld" {
  $HTTP["url"] =~ "^/wiki" {
    server.document-root = "/usr/share/dokuwiki"

    $HTTP["url"] =~ "^/" {
      server.follow-symlink = "enable"
    }

    $HTTP["url"] =~ "/(\.|_)ht" {
      url.access-deny = ( "" )
    }

    $HTTP["url"] =~ "^/(bin|data|inc|conf)" {
      url.access-deny = ( "" )
    }
  }
}

Осталось включить поддержку fastcgi, PHP в fastcgi и только что созданный файл конфигурации:

# lighty-enable-mod fastcgi
# lighty-enable-mod fastcgi-php
# lighty-enable-mod dokuwiki

Чтобы настройки веб-сервера вступили в силу, нужно его перезапустить:

# /etc/init.d/lighttpd restart

1.2. Вариант 2 - настройка nginx и php5-fpm

Установим веб-сервер и менеджер управления FastCGI-процессами PHP:

# apt-get install nginx-light php5-fpm

php5-fpm устанавливается с преднастроенным пулом процессов в файле /etc/php/fpm/pool.d/www.conf, так что дополнительные настройки не требуются. Но при желании можно настроить имеющийся пул или создать отдельный пул.

Теперь добавим файл /etc/nginx/sites-available/dokuwiki с настройками для dokuwiki, если нужно настроить её на отдельном домене:

server {
  listen 80;

  server_name wiki.domain.tld;

  root /usr/share/dokuwiki;
  index index.php;

  location /bin/ {
    deny all;
  }

  location /data/ {
    deny all;
  }

  location /inc/ {
    deny all;
  }

  location /conf/ {
    deny all;
  }

  location ~ \.ht {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/var/run/dokuwiki.sock;
    fastcgi_index index.php;

    include fastcgi_params;
  }
}

Или, если dokuwiki должна работать из отдельного каталога на имеющемся сайте, можно добавить в файл конфигурации этого сайта следующие настройки:

location /wiki/bin/ {
  deny all;
}

location /wiki/data/ {
  deny all;
}

location /wiki/inc/ {
  deny all;
}

location /wiki/conf/ {
  deny all;
}

location /wiki {
  alias /usr/share/dokuwiki;
  index index.php;

  location ~ \.ht {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;

    include fastcgi_params;
  }
}

Осталось включить использование конфигурации сайта, если вы настраивали dokuwiki на отдельном домене:

# cd /etc/nginx/sites-enabled
# ln -s /etc/nginx/sites-available/dokuwiki .

И перезапустить nginx, чтобы его новые настройки вступили в силу:

# /etc/init.d/nginx restart

Можно было бы написать ещё и третий вариант настройки - для использования Lighttpd совместно с php5-fpm, но я не стану этого делать. Кому понадобится такой вариант - тот разберётся в нём сам.

2. Установка dokuwiki

Установка dokuwiki проста - нужно лишь установить соответствующий пакет:

# apt-get install dokuwiki

В процессе установки будет задано несколько вопросов:

После установки можно зайти в веб-интерфейс с паролем администратора, который мы указали при установке:

Я также пользуюсь темой arctic для dokuwiki. Пакет с этой темой можно взять у меня: dokuwiki-arctic-theme_0.0.20081104_all.deb

3. Настройка dokuwiki

3.1. Вариант 1 - настройка dokuwiki через файлы конфигурации

dokuwiki можно настраивать как прямым редактированием конфигурационных файлов, так и через веб-интерфейс. Если вам не хочется тратить время на ручную правку файлов, можете перейти к следующему разделу.

Для первичной настройки достаточно лишь прописать в файл /etc/dokuwiki/local.php несколько настроек:

$conf['title'] = 'wiki.domain.tld'; # Название wiki, которое будет на ней отображаться
$conf['license'] = '';              # Название лицензии, под которой выкладываются материалы
$conf['lang'] = 'ru';               # Язык интерфейса
$conf['useacl'] = 1;                # Включает использование списков ограничения доступом
$conf['superuser'] = '@admin';      # Группа для администраторов
$conf['template'] = 'arctic';       # Используемая тема

Любую из настроек можно не вписывать - у них у всех есть значения по умолчанию.

В файле /etc/dokuwiki/plugins.local.php я отключил использование плагина, отсылающего разработчикам статистику использования dokuwiki:

<?php
$plugins['popularity']      = 0;
?>

В файле acl.auth.php можно настраивать права доступа к определённым разделам wiki. Например, вот так можно ограничить доступ к разделу private для незарегистрированных пользователей:

*               @ALL          1
*               @user         8
private:*       @ALL          0

В теме arctic, которую я использую, в файле /etc/dokuwiki2/themes/arctic/default.php я удаляю из настроек всех правых и левых панелей страницу index, поскольку для каждого раздела я создаю вручную страницу sidebar, которая и выполняет роль оглавления раздела.

3.2. Вариант 2 - настройка dokuwiki через веб

Для того, чтобы можно было менять настройки из самой DokuWiki, нужно назначить права доступа веб-сервера к каталогу /etc/dokuwiki:

# chgrp www-data /etc/dokuwiki
# chmod ug=rwx,o=rx /etc/dokuwiki

Также нужно поменять права доступа веб-сервера к файлу /etc/dokuwiki/local.php и, по желанию, к другим файлам в этом каталоге:

# chown www-data /etc/dokuwiki/local.php
# chmod u=rw,go=r /etc/dokuwiki/local.php

После этих манипуляций можно настраивать dokuwiki через меню "Управление".

Вот так выглядит настроенная мной dokuwiki с темой arctic:

Написать автору