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

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


dokuwiki:dokuwiki

DokuWiki

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

«ДокуВики» (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 и необходимые пакеты:

  • в 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

Установка:

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;

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

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

В файл conf/userstyle.css для примера внесены следующие изменения:

  1. Выравнивание по ширине и «красная строка» для основного текста
  2. Исправление после изменений «для основного текста» для расширения WRAP
  3. Таблицы: вертикальное выравнивание по середине ячейки

    Заголовок
    1
    Заголовок
    2
    Заголовок
    2/2
    Строка
    1
    Строка
    2
    Строка
    1/2
  4. Увеличение размера шрифта в редакторе страниц
  5. Отключение фона из блоков CODE
  6. Расширение Hidden
conf/userstyle.css
/* Выравнивание текста */
/* Основной тест */
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;
}

Логотип

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

Ссылки

dokuwiki/dokuwiki.txt · Последние изменения: 2020-08-17 17:00 — GreyWolf