«ДокуВики» (DokuWiki) — это совместимая со стандартами и лёгкая в использовании вики, предназначенная в первую очередь для создания разного рода документации. Она ориентирована на команды разработчиков, рабочие группы и небольшие компании. Все данные хранятся в простых текстовых файлах, поэтому для работы не требуется СУБД). Простой, но мощный синтаксис облегчает создание структурированных текстов и позволяет при необходимости читать файлы данных даже за пределами вики.
Здесь описана работа с стандартным продуктом: www.dokuwiki.org, работа с программой из пакетной базы Debian GNU/Linux находится на этой странице.
Папка для установки: /opt/dokuwiki/
Нужно скачать актуальный архив с продуктом и распаковать его в папку для установки:
wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar -zxvf dokuwiki-stable.tgz -C /tmp/
Сначала нужно установить Apache и необходимые пакеты:
apt install php7.0 libapache2-mod-php7.0 php7.0-mcrypt php7.0-xml
apt install php libapache2-mod-php php
#!/bin/bash root_path=/opt/dokuwiki/ chown -R www-data:www-data $root_path find $root_path -type d -exec chmod -v 770 {} \; find $root_path -type f -exec chmod -v 660 {} \;
1. Нужно создать файл:
AliasMatch ^/dokuwiki/sites/[^/]+$ /opt/dokuwiki/ AliasMatch ^/dokuwiki/sites/[^/]+/(.*)$ /opt/dokuwiki/$1 Alias /dokuwiki /opt/dokuwiki/ <Directory /opt/dokuwiki/> Options +FollowSymLinks AllowOverride All order allow,deny Allow from all <IfModule mod_rewrite.c> # Uncomment to implement server-side URL rewriting # (cf. <http://www.dokuwiki.org/config:userewrite>). # Do *not* mix that with multisite! #RewriteEngine on #RewriteBase /dokuwiki #RewriteRule ^lib - [L] #RewriteRule ^doku.php - [L] #RewriteRule ^feed.php - [L] #RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L] #RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L] #RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L] #RewriteRule ^$ doku.php [L] #RewriteRule (.*) doku.php?id=$1 [QSA,L] </IfModule> </Directory> <Directory /opt/dokuwiki/bin> Deny from all </Directory> <Directory /opt/dokuwiki/data> Deny from all </Directory> <VirtualHost *:80> DocumentRoot /opt/dokuwiki/ ServerName wiki.domain.ru </VirtualHost>
2. Выполнить следующие действия:
#!/bin/bash # Создаем символическую ссылку ln -s /opt/dokuwiki/conf/apache.conf /etc/apache2/sites-available/dokuwiki.conf # Разрешаем сайт a2ensite dokuwiki # Перезапуск service apache2 reload
Начальная настройка: http://wiki/dokuwiki/install.php?l=ru
Папка с настройками | conf/ |
Основные настройки | conf/local.php |
Папка с данными | data/ |
Старые версии страниц | data/attic/ |
Страницы | data/pages/ |
Кэш (html) | data/cache/ |
Индексы | data/index/ |
Блокировки | data/locks/ |
Файлы | data/media/ |
Старые версии файлов | data/media_attic/ |
Временные файлы | data/tmp/ |
Авторизация через LDAP
Установка:
apt-get install php5-ldap
Пример для сервера OpenLDAP:
# Имя группы администраторов $conf['superuser'] = '@dokuwiki-admin'; # LDAP $conf['openregister']= 0; $conf['authtype'] = 'ldap'; $conf['auth']['ldap']['version'] = 3; $conf['auth']['ldap']['server'] = 'Сервер_LDAP'; $conf['auth']['ldap']['port'] = 389; $conf['auth']['ldap']['binddn'] = 'cn=admin,dc=domain'; $conf['auth']['ldap']['bindpw'] = 'ПАРОЛЬ'; $conf['auth']['ldap']['usertree'] = 'cn=%{user},ou=users,dc=domain'; $conf['auth']['ldap']['userfilter'] = '(&(cn=%{user})(objectClass=posixAccount))'; $conf['auth']['ldap']['grouptree'] = 'ou=groups,dc=domain'; $conf['auth']['ldap']['groupfilter'] = '(|(memberUid=%{user})(gidNumber=%{gid}))'; # $conf['auth']['ldap']['debug'] = 1;
Для того, чтобы привести URL к «красивому» виду можно включить Преобразование URL средствами веб-сервера
, более подробно описано по адресу: URL-преобразование
Добавить модуль в Apache
a2enmod rewrite service apache2 restart
Разрешить преобразование:
$conf['userewrite'] = '1';
Включить правила:
В файле dokuwiki/htaccess
нужно убрать символ комментария с следующих строк:
RewriteEngine on # Путь dokuwiki на веб сервере RewriteBase /dokuwiki RewriteCond %{HTTPS} !=on RewriteRule ^lib/exe/xmlrpc.php$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L] RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L] RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L] RewriteRule ^$ doku.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) doku.php?id=$1 [QSA,L] RewriteRule ^index.php$ doku.php
После этого URL будут выглядеть примерно так:
http://dokuwiki/start:1
При этом старые URL, например:
http://dokuwiki/doku.php?id=start:1
тоже будут работать.
Список папок:
/opt/dokuwiki/dokuwiki
Исключение:
/opt/dokuwiki/data/cache /opt/dokuwiki/data/locks /opt/dokuwiki/data/tmp
Дополнительно можно использовать расширение BackupTool for DokuWiki
При восстановлении данных из резервной копии необходимо создать папки:
mkdir /opt/dokuwiki/data/locks mkdir /opt/dokuwiki/data/tmp
Преобразование синтаксиса форматирования LibreOffice в формат DocuWiki: Расширение Writer2DokuWiki
Установка
В меню Сервис\Управление расширениями…\Добавить
, открыть Writer2DokuWiki.oxt, перезапустить LibreOffice
Выполнение
Выбрать меню Сервис\Дополнения\Writer2DokuWiki
Проблема возникает при попытке загрузить файл.
dokuwiki_0.0.20140505.a+dfsg-4+deb8u1_all.deb
2014-05-05a «Ponder Stibbons»
Решение проблемы: нужно применить заплатку: ajax.diff
cd /usr/share/dokuwiki/lib/exe patch ajax.php<ajax.diff
В общем случае нужна замена аргументов функций.
Образец:
Заменяем function register(&$c)
function register(Doku_Event_Handler $c) |
Declaration should be compatible with... | Andreas Gohr on Patreon
Error Messages for plugins after update to PHP7 - DokuWiki User Forum
В этом разделе описаны изменения таблиц стилей CSS.
В файл conf/userstyle.css
для примера внесены следующие изменения:
Таблицы: вертикальное выравнивание по середине ячейки
Заголовок 1 | Заголовок 2 |
---|---|
Заголовок 2/2 |
|
Строка 1 | Строка 2 |
Строка 1/2 |
/* Выравнивание текста */ /* Основной тест */ p { text-align: justify; /* text-indent: 1.5em; */ } /* Списки */ li { text-align: justify; /* text-indent: 0em; */ } /* Содержание */ #dw__toc li{ text-align: left; } /* Plugin WRAP */ .wrap_leftalign p{ text-align: left; } .wrap_centeralign p{ text-align: center; } .wrap_rightalign p{ text-align: right; } .wrap_justify p{ text-align: justify; } /* Таблицы */ td, th { vertical-align: middle; } /* CODE */ pre, code, samp, kbd { line-height: 15px; background-color: transparent; box-shadow: none; } /* Редактор */ .dokuwiki textarea.edit { font-family: monospace; font-size: 150% } /* Строка поиска */ form.search input { padding-left: 0.5em; }
lib/tpl/dokuwiki/images
apple-touch-icon.png
favicon.ico
logo.png
data/media
logo.png