Инструменты пользователя

Инструменты сайта


dokuwiki:dokuwiki

Это старая версия документа!


DokuWiki

«ДокуВики» (DokuWiki) — это совместимая со стандартами и лёгкая в использовании вики, предназначенная в первую очередь для создания разного рода документации. Она ориентирована на команды разработчиков, рабочие группы и небольшие компании. Все данные хранятся в простых текстовых файлах, поэтому для работы не требуется СУБД). Простой, но мощный синтаксис облегчает создание структурированных текстов и позволяет при необходимости читать файлы данных даже за пределами вики.

«ДокуВики» (DokuWiki)

Здесь описана работа с стандартным продуктом: www.dokuwiki.org

Работа с программой из пакетной базы Debian находится на отдельной странице

Установка

FIXME

Папка для установки: /opt/dokuwiki/

Нужно скачать актуальный архив с продуктом и распаковать его в папку для установки:

wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar -zxvf dokuwiki-stable.tgz -C /tmp/

Сначала нужно установить 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/

Стабильная версия

Настройка прав доступа к папкам и файлам

dokuwiki_permissions.sh
#!/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. Нужно создать файл:

/opt/dokuwiki/conf/apache.conf
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. Выполнить следующие действия:

dokuwiki_install.sh
#!/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

Назначение папок (EN)

Назначение папок

Папка с настройками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

https://www.dokuwiki.org/ru:auth:ldap

apt-get install php5-ldap

Пример для сервера OpenLDAP:

local.php
# Имя группы администраторов
$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;

PHP

Преобразование URL средствами веб-сервера

Для того, чтобы привести URL к «красивому» виду можно включить Преобразование URL средствами веб-сервера, более подробно описано по адресу: URL-преобразование

1. Добавить модуль в Apache

a2enmod rewrite
service apache2 restart

2. Разрешить преобразование:

dokuwiki/local.php
$conf['userewrite'] = '1';

3. Включить правила:

В файле dokuwiki/htaccess нужно убрать символ комментария с следующих строк:

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

Шаблоны

Расширения

Writer2DokuWiki

Преобразование синтаксиса форматирования LibreOffice в формат DocuWiki: Расширение Writer2DokuWiki

Установка

В меню Сервис\Управление расширениями…\Добавить, открыть Writer2DokuWiki.oxt, перезапустить 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»

Решение проблемы: нужно применить заплатку: ajax.diff

cd /usr/share/dokuwiki/lib/exe
patch ajax.php<ajax.diff

Ошибки расширений после перехода на PHP7

В общем случае нужна замена аргументов функций.

Образец:

Заменяем
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

В этом разделе описаны изменения таблиц стилей CSS.

https://www.dokuwiki.org/devel:css

userstyle.css

FIXME

Все изменения внесены в conf/userstyle.css - пока на тестировании.

Расширение hidden

conf/userstyle.css
/* Выравнивание текста */
/* Основной тест */
p {
text-align: justify;
}
/* Списки */
li {
text-align: justify;
}
/* Содкржание */
#dw__toc li{
text-align: left;
}
 
/* 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;
}
 
/* tables */
td {
    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%
}

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

DELETEME

  1. Таблицы, вертикальное выравнивание по середине ячейки.

    lib/tpl/dokuwiki/css/basic.less
    /*____________ tables ____________*/

    Закомментировать строку

    vertical-align: top;
  2. Увеличение размера шрифта в редакторе страниц В файл lib/tpl/dokuwiki/css/_edit.css нужно добавить строку:

    wiki__text {font-family: monospace; font-size: 150%}

    чтобы получилось так:

    lib/tpl/dokuwiki/css/_edit.css
    /* edit view
    ********************************************************************/
     
    .dokuwiki div.editBox {
    wiki__text {font-family: monospace; font-size: 150%}
    }
  3. FIXME Исправление межсточного интервала для блоков CODE
    lib/tpl/dokuwiki/css/basic.less
    pre,
    code,
    samp,
    kbd {
        font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New"
        /* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */
        font-size: 1em;

    Добавляем строку:

        line-height: 15px;
  4. Убираем фон из блоков CODE

    Комментируем или убираем строки с

    • background-color

    и

    • box-shadow
    lib/tpl/dokuwiki/css/basic.less
    pre,
    code,
    samp,
    kbd {
        font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New"
        /* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */
        font-size: 1em;
        line-height: 15px;
        direction: ltr;
        text-align: left;
    /*    background-color: @ini_background_site; */
        color: @ini_text;
    /*    box-shadow: inset 0 0 .3em @ini_border; */
        border-radius: 2px;
    }
  5. Выравнивание по ширине, «красная строка»

    conf/userstyle.css
    p {
    text-align: justify;
    text-indent: 1.5em;
    }
     
    li {
    text-align: justify;
    text-indent: 0em;
    }

    https://forum.dokuwiki.org/post/18792

Логотип

  1. lib/tpl/dokuwiki/images
    • apple-touch-icon.png
    • favicon.ico
    • logo.png
  2. data/media
    • logo.png

Ссылки

dokuwiki/dokuwiki.1585427615.txt.gz · Последние изменения: 2020-03-28 23:33 — GreyWolf