====== DokuWiki ======
«ДокуВики» (DokuWiki) — это совместимая со стандартами и лёгкая в использовании вики, предназначенная в первую очередь для создания разного рода документации. Она ориентирована на команды разработчиков, рабочие группы и небольшие компании. Все данные хранятся в простых текстовых файлах, поэтому для работы не требуется СУБД). Простой, но мощный синтаксис облегчает создание структурированных текстов и позволяет при необходимости читать файлы данных даже за пределами вики.
[[https://www.dokuwiki.org/start?id=ru:dokuwiki|«ДокуВики» (DokuWiki)]]
[[https://www.dokuwiki.org/devel:releases|Информация о версиях]]
Здесь описана работа с стандартным продуктом: [[https://www.dokuwiki.org|www.dokuwiki.org]], работа с программой из пакетной базы [[debian:debian|]] находится на [[debian:dokuwiki|этой]] странице.
====== Установка ======
Папка для установки: ''/opt/dokuwiki/''
Нужно скачать актуальный архив с продуктом и распаковать его в папку для установки:
wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar -zxvf dokuwiki-stable.tgz -C /tmp/
Сначала нужно установить [[apache:apache|Apache]] и необходимые пакеты:
* в Debian 9 (stretch): apt install php7.0 libapache2-mod-php7.0 php7.0-mcrypt php7.0-xml
* в Debian 10 (buster): apt install php libapache2-mod-php php
http://download.dokuwiki.org/
[[http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz|Стабильная версия]]
===== Настройка прав доступа к папкам и файлам =====
#!/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 {} \;
===== Настройка HTTP сервера =====
1. Нужно создать файл:
AliasMatch ^/dokuwiki/sites/[^/]+$ /opt/dokuwiki/
AliasMatch ^/dokuwiki/sites/[^/]+/(.*)$ /opt/dokuwiki/$1
Alias /dokuwiki /opt/dokuwiki/
Options +FollowSymLinks
AllowOverride All
order allow,deny
Allow from all
# Uncomment to implement server-side URL rewriting
# (cf. ).
# 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]
Deny from all
Deny from all
DocumentRoot /opt/dokuwiki/
ServerName wiki.domain.ru
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
===== Назначение папок и файлов =====
FIXME
[[https://www.dokuwiki.org/start?id=devel:dirlayout|Назначение папок (EN)]]
[[https://www.dokuwiki.org/ru:devel:dirlayout|Назначение папок]]
|**Папка с настройками**|''conf/''|
|Основные настройки|''conf/local.php''|
|**Папка с данными**|''data/''|
|Старые версии страниц|''data/attic/''|
|Страницы|''data/pages/''|
|Кэш (html)|''data/cache/''|
|Индексы|''data/index/''|
|Блокировки|''data/locks/''|
|Файлы|''data/media/''|
|Старые версии файлов|''data/media_attic/''|
|Временные файлы|''data/tmp/''|
===== LDAP =====
Авторизация через [[ldap:ldap|LDAP]]
Установка:
apt-get install php5-ldap
Пример для сервера [[openldap:openldap|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;
----
https://www.dokuwiki.org/ru:auth:ldap
===== PHP =====
[[php:php#Настройка|Настройка PHP]]
====== Преобразование URL средствами веб-сервера ======
Для того, чтобы привести URL к "красивому" виду можно включить ''Преобразование URL средствами веб-сервера'', более подробно описано по адресу: [[https://www.dokuwiki.org/ru:rewrite|URL-преобразование]]
- Добавить модуль в [[apache:apache|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
Дополнительно можно использовать расширение [[https://www.dokuwiki.org/plugin:backup|BackupTool for DokuWiki]]
===== Восстановление =====
При восстановлении данных из резервной копии необходимо создать папки:
mkdir /opt/dokuwiki/data/locks
mkdir /opt/dokuwiki/data/tmp
====== Шаблоны ======
[[https://www.dokuwiki.org/template:default|Old default template]]
====== Расширения ======
[[dokuwiki:plugins|Расширения]]
===== Writer2DokuWiki =====
Преобразование синтаксиса форматирования [[libreoffice:libreoffice|LibreOffice]] в формат DocuWiki: [[http://www.ooowiki.de/Writer2DokuWiki.html|Расширение Writer2DokuWiki]]
**Установка**
В меню ''Сервис\Управление расширениями…\Добавить'', открыть Writer2DokuWiki.oxt, перезапустить [[libreoffice:libreoffice|LibreOffice]]
**Выполнение**
Выбрать меню ''Сервис\Дополнения\Writer2DokuWiki''
====== Проблема в версии 0.0.20140505.a+dfsg-4+deb8u1 ======
Проблема возникает при попытке загрузить файл.
* Пакет: ''dokuwiki_0.0.20140505.a+dfsg-4+deb8u1_all.deb''
* DokuWiki: ''2014-05-05a "Ponder Stibbons"''
Решение проблемы: нужно применить заплатку:
{{:dokuwiki:ajax.diff|}}
cd /usr/share/dokuwiki/lib/exe
patch ajax.php
====== Ошибки расширений после перехода на PHP7 ======
В общем случае нужна замена аргументов функций.
Образец:
|Заменяем function register(&$c)
\\ на \\ function register(Doku_Event_Handler $c)
|
[[https://www.patreon.com/posts/declaration-be-20638123|Declaration should be compatible with... | Andreas Gohr on Patreon]]
[[https://forum.dokuwiki.org/thread/15046|Error Messages for plugins after update to PHP7 - DokuWiki User Forum]]
====== CSS ======
В этом разделе описаны изменения таблиц стилей CSS.
https://www.dokuwiki.org/devel:css
===== userstyle.css =====
В файл ''conf/userstyle.css'' для примера внесены следующие изменения:
- Выравнивание по ширине и "красная строка" для основного текста
- Исправление после изменений "для основного текста" для расширения [[plugins#WRAP|WRAP]]
- Таблицы: вертикальное выравнивание по середине ячейки
^ Заголовок \\ 1 ^ Заголовок \\ 2 ^
^:::^ Заголовок \\ 2/2 ^
| Строка \\ 1 | Строка \\ 2 |
| Строка \\ 1/2 |:::|
- Увеличение размера шрифта в редакторе страниц
- Отключение фона из блоков CODE
- Расширение [[plugins#hidden-css|Hidden]]
/* Выравнивание текста */
/* Основной тест */
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''
====== Ссылки ======
**[[https://www.dokuwiki.org/ru:manual|Руководство пользователя]]**
**[[https://www.dokuwiki.org/ru:wiki:syntax|Синтаксис форматирования]]**
[[https://www.dokuwiki.org/start?id=ru:install|Установка]]
[[https://www.dokuwiki.org/ru:install:upgrade|Обновление]]
[[https://www.dokuwiki.org/faq:forgotten_password|Forgotten Password]]
[[https://www.dokuwiki.org/start?id=ru:install:dokuwiki_on_a_stick|«ДокуВики» на флешке]]
[[https://www.dokuwiki.org/start?id=ru:search|Синтаксис поиска]]
[[http://nikita.melnichenko.name/projects/dokuwiki-diagram/index.php?lang=ru|Модуль Диаграмма]]
[[http://www.w3.org/TR/CSS2/syndata.html#value-def-color|Значения цвета в стиле CSS2]]
[[http://www.w3.org/TR/2003/CR-css3-color-20030514/#svg-color|Набор ключевых слов SVG для цветов]]
[[https://www.dokuwiki.org/plugin:wrap|Wrap Plugin]]
http://wiki.dieg.info/dokuwiki
**[[https://www.dokuwiki.org/tips:favicons|Favicons]]**
**[[https://www.dokuwiki.org/start?id=ru:tips:httpslogin|Принудительное использование HTTPS при авторизации]]**
{{tag>Documentation HTTP Dokuwiki}}