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

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


how-to:dokuwiki

DokuWiki

Docker

docker-compose.yaml

docker-compose.yaml

volumes:
  storage: {}

services:
  dokuwiki:
    image: dokuwiki/dokuwiki:stable
    volumes:
      - storage:/storage:rw
    container_name: dokuwiki
    ports:
      - mode: host
        protocol: tcp
        published: 8080
        target: 8080
    restart: always
    deploy:
      replicas: 1
      resources:
        limits:
          memory: 50m

Завершить установку по адресу с wiki и пути /install.php, пример: http://wiki.domain.loc:8080/install.php

Пользователи

Добавить пользователя в группу admin:

echo loginadmin:$(mkpasswd -m md5crypt):fullNameAdmin:email@localhost:admin | sudo tee -a /www/dokuwiki/conf/users.auth.php

Nginx/Apache

Для локальной установки

Настроить Apache

Настроить Apache

sudo apt-get install apache2 libapache2-mod-php5

Подключаем модули:

sudo a2enmod userdir
sudo a2enmod rewrite

Перезагруpзить:

sudo service apache2 restart

Добавляем сайт wiki в apache /etc/apache2/sites-available/wiki.conf:

<VirtualHost *:80>

    ServerName wiki.domain.com

    DocumentRoot /var/www/dokuwiki
#    Alias /wiki /var/www/dokuwiki

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/dokuwiki>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride AuthConfig FileInfo Limit
    Order allow,deny
    allow from all
    </Directory>

    ErrorLog /var/log/apache2/wiki_error.log
    LogLevel warn
    CustomLog /var/log/apache2/wiki_access.log combined

</VirtualHost>

и подключаем сайт:

sudo a2ensite wiki
sudo service apache2 reload

Настроить Nginx

Настроить Nginx

sudo apt-get install nginx

Добавляем сайт wiki в nginx /etc/nginx/sites-available/wiki:

server {
    listen 80;
    server_name wiki.domain.com;

    root /var/www/dokuwiki;
    index index.html index.htm index.php doku.php;

    autoindex off;
    client_max_body_size 15M;
    client_body_buffer_size 128k;

    access_log  /var/log/nginx/wiki_access.log;
    error_log  /var/log/nginx/wiki_error.log;

    location / {
	try_files $uri $uri/ @dokuwiki;
    }

    location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
	expires 30d;
    }

    location = /robots.txt  { access_log off; log_not_found off; }
    location = /favicon.ico { access_log off; log_not_found off; }
    location ~ /\.          { access_log off; log_not_found off; deny all; }
    location ~ ~$           { access_log off; log_not_found off; deny all; }

    location @dokuwiki {
	rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
	rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
	rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
	rewrite ^/(.*) /doku.php?id=$1 last;
    }

    location ~ \.php$ {
	try_files $uri =404;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include /etc/nginx/fastcgi_params;
	fastcgi_param  QUERY_STRING     $query_string;
	fastcgi_param  REQUEST_METHOD   $request_method;
	fastcgi_param  CONTENT_TYPE     $content_type;
	fastcgi_param  CONTENT_LENGTH   $content_length;
	fastcgi_intercept_errors        on;
	fastcgi_ignore_client_abort     off;
	fastcgi_connect_timeout 60;
	fastcgi_send_timeout 180;
	fastcgi_read_timeout 180;
	fastcgi_buffer_size 128k;
	fastcgi_buffers 4 256k;
	fastcgi_busy_buffers_size 256k;
	fastcgi_temp_file_write_size 256k;
    }

    location ~ /(data|conf|bin|inc)/ {
	deny all;
    }

    location ~ /\.ht {
	deny  all;
    }
}

php5-fpm должен быть настроен на 9000 порт!

подключаем сайт:

sudo ln -s /etc/nginx/sites-available/wiki /etc/nginx/sites-enabled/
sudo service nginx reload

http://wiki.nginx.org/Dokuwiki
https://www.dokuwiki.org/rewrite#nginx

URL-преобразование

URL-преобразование

После полной установки для nginx или apache в /var/www/dokuwiki/conf/local.php устанавливаем:

$conf['userewrite'] = 1

и для apache раскомментируем в /var/www/dokuwiki/.htaccess:

RewriteEngine on

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

https://www.dokuwiki.org/ru:rewrite


Параметры ссылок

Открывать ссылки в новом окне: Управление > Настройки wiki > Параметры ссылок: Установить к необходимым типам ссылок: _blank

Шаблоны

Для установки шаблона распаковать архив с шаблоном (обычно .zip или .tgz) в /var/www/html/lib/tpl:

wget -P /tmp/tpl <url>
sudo unzip  -d /var/www/dokuwiki/lib/tpl/ /tmp/*.zip
sudo tar -C /var/www/dokuwiki/lib/tpl -xvzf /tmp/*.tgz

И в настройках вики выберать установленный шаблон.

https://www.dokuwiki.org/start?id=ru:template

Ширина шаблона dokuwiki

В меню Управление > Настройки стилей шаблона > Ширина всего сайта: 98%

Пример установки ширины 98% через консоль, заменить в lib/tpl/dokuwiki/style.ini:

__site_width__      = "75em"

на

__site_width__      = "98%"

командой:

sed -i '/__site_width__/s/= ".*"/= "98%"/g' lib/tpl/dokuwiki/style.ini

Новые типы файлов

Добавить определения новых типов файлов (.mpp, .vsd, .mp3, .rar, .djvu)

  • В conf/mime.confдописать следующие строки:
mpp     application/vnd.ms-project
vsd     application/vnd.visio
mp3     audio/mpeg
rar     application/x-rar-compressed
djvu    application/x.djvu
djv     application/x.djvu

если установить плагин plugin:txtconf, то добавить эти строки в mime.conf можно с помощью этого плагина.

  • Скопировать файлы , , , , в директорию lib/images/fileicons

http://www.dokuwiki.ru/installjacija_dokuwiki#installjacija_dokuwiki

Подписка

Список кому и как посылать уведомления об изменениях страниц хранится в директории meta (/var/www/dokuwiki/data/meta) файл имя_статьи.mlist или для категории имя_категории/.mlist

Формат: login порядок_получения unixtime, например:

login every 1406105193

Порядок получения:
every - уведомлять о каждом изменении
digest -информационное электронное письмо со списком изменений для каждой страницы (каждый день)

Инструменты командной строки

https://www.dokuwiki.org/ru:cli

bin/plugin.php extension list - список плагинов

Обновление индекса

Обновить индекс, перед обновлением очистить:

docker exec $(docker ps -q -f name=dokuwiki) /var/www/html/bin/indexer.php

Плагины

Перемещение и переименование страниц и пространств имен

Меню из индекса страниц

https://www.dokuwiki.org/plugin:indexmenu

Заходим Управление Настройки вики, делаем следующее:

  • Шаблон: dokuwiki
  • Боковая панель, пустое поле отключает боковую панель: sidebar

Создаем страницуƒ sidebar с содержимым:

~~NOCACHE~~
{{indexmenu>:#1|js#phoenity.png tsort}}

Значения перед «|»

ns Главное имя пространств имен '.' - относится к текущему пространству имен. '..' или пустой значение - относится к корневому пространству имен.
#n n - кол-во уровней для отображения от установленного пространства имен Например€: '#2' раскроет 'кореньŒ:myns1:myns2', при этом 'myns2' останется закрытым, скрывая 'кореньŒ:myns1:myns2:myns3'. Необязательный параметр€.
ns1[#n]
… nsn[#n]
Список дополнительных пространств имен внутри основного пространства имени. Каждое пространство имен будет раскрыто до уровня n. Если n не определен, то все пространства имен раскрыты, 0 - закрыты‹. '.' - относится к текущему пространству имен. '..' или пустой значение - относится к корневому пространству имен. Необязательный параметр€.

Значения после «|»

js Использовать JavaScript для отображения Без n - все узлы открыты‹, с n - открыты до уровня n
#theme Тема иконок indexmenu Тема состоим из набора иконок внутри каталога image. Она работает только с js, например€: js#tango

Следующие опции используются независимо с или без js:

tsort Сортировка страниц по названию Полезно, когда useheading включен. Пространство имен по умолчанию не сортируются, необходимо для этого опцию nsort.


Список страниц

https://www.dokuwiki.org/plugin:catlist

Для создания списка страниц текущего пространства имен, добавить:

<catlist -noHead>
~~NOCACHE~~

Синтаксис:

-noLinkStartHead Не создавать ссылку на заголовке пространства имен
-noHead Не показывать заголовок пространства имен
-sortAscending Сортировать по возрастанию (в алфавитном порядке)
-sortDescending Сортировать по возрастанию (в алфавитном порядке)


Очистка кэша и старых версий страниц

fcgk

WYSIWYG редактор

Если не включается - снять галочку с:
plugin»fckg»dw_priority Make Dokuwiki editor the default editor

Hidden

Скрыть часть текста с возможностью развернуть и показать.
Обрамить наш текст в тег: **<hidden>**...**</hidden>**
Сменить подпись поля: **<hidden Подпись>**...**</hidden>**

Пример:

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

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

Это скрытый текст!

#!/bin/bash
$code=in hide

Подпись

Подпись

Это скрытый текст!

https://www.dokuwiki.org/plugin:hidden

Bootstrap Wrapper Plugin

Добавить в вики различные элементы, часть из них:

Alert

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

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

<alert type=«info» icon=«glyphicon glyphicon-pushpin»>Text <alert type="info" icon="glyphicon glyphicon-pushpin">Text</alert></alert>
<alert type=«warning» icon=«glyphicon glyphicon-paperclip»>Text <alert type="warning" icon="glyphicon glyphicon-paperclip">Text</alert></alert>
<alert type=«danger» icon=«glyphicon glyphicon-exclamation-sign»>Text <alert type="danger" icon="glyphicon glyphicon-exclamation-sign">Text</alert></alert>
<alert type=«success» icon=«glyphicon glyphicon-ok»>Text <alert type="success" icon="glyphicon glyphicon-ok">Text</alert></alert>

Добавить возможность закрытия данной области, вставить параметр dismiss=«true»:

<alert type=«success» icon=«glyphicon glyphicon-ok» dismiss=«true»>Text <alert type="success" icon="glyphicon glyphicon-pushpin" dismiss="true">Text</alert></alert>


Text

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

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

  • <text type=«muted»>Text * <text type="muted">Text </text></text>
  • <text type=«primary»>Text * <text type="primary">Text </text></text>
  • <text type=«success»>Text * <text type="success">Text </text></text>
  • <text type=«info»>Text * <text type="info">Text </text></text>
  • <text type=«warning»>Text * <text type="warning">Text </text></text>
  • <text type=«danger»>Text * <text type="danger">Text </text></text>


Tooltip

https://www.dokuwiki.org/plugin:tooltip

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

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

<tooltip title=«Подсказка при наведении курсора» location=«bottom»>Тут подсказка</tooltip>, а тут продолжение …
<tooltip title="Подсказка при наведении курсора" location="bottom"></tooltip>, а тут продолжение ...


WRAP

https://www.dokuwiki.org/plugin:wrap

Добавить в вики различные элементы, часть из них:

Boxes and Notes

С иконками: info, tip, important, alert, help, download, todo
Без иконок: danger, warning, caution, notice, safety
Отдельным блоком: WRAP (заглавными)
В тексте: wrap (прописными)
С закругленными краями: добавляем round
С размером блока: добавляем box 200px
Размещение блока: добавляем left, center, right

С иконками:

текстом

текстом

<WRAP round box 420px left info></WRAP>
<WRAP tip></WRAP>
<WRAP round important></WRAP>
<WRAP round left alert></WRAP>
<WRAP help></WRAP>
<WRAP download></WRAP>
<WRAP box 420px center todo></WRAP>


Без иконок:

текстом

текстом

<WRAP round danger></WRAP>
<WRAP left warning></WRAP>
<WRAP right caution></WRAP>
<WRAP round notice></WRAP>
<WRAP box 420px center safety></WRAP>


В тексте с иконками: или в тексте без иконок:

текстом

текстом

<wrap info>info</wrap>, <wrap tip>tip</wrap>, <wrap important>important</wrap>, <wrap alert>alert</wrap>, <wrap help>help</wrap>, <wrap download>download</wrap>, <wrap todo>todo</wrap>
<wrap danger>danger</wrap>, <wrap warning>warning</wrap>, <wrap caution>caution</wrap>, <wrap notice>notice</wrap>, <wrap safety>safety</wrap>


Spoiler

https://www.dokuwiki.org/plugin:wrap

Скрыть текст за spoiler: <wrap spoiler>Password</wrap>

Демо плагина - http://demo.selfthinker.org/plugin:wrap

SMTP

https://www.dokuwiki.org/plugin:smtp

Плагин настройки почтового сервера для почтовых уведомлений.

Bootstrap Wrapper Plugin

Backup / Restore

Резервная копия:

tar czf wiki_backup.tgz /var/www/dokuwiki/data --exclude /var/www/dokuwiki/data/cache /var/www/dokuwiki/.htaccess /var/www/dokuwiki/conf/local.php /var/www/dokuwiki/conf/acl.auth.php /var/www/dokuwiki/conf/users.auth.php /var/www/dokuwiki/conf/mime.local.conf /var/www/dokuwiki/lib/plugins/

Восстановить на только что установленную wiki:

sudo tar xzf wiki_backup.tgz --skip-old-files -C /
sudo chown www-data:www-data /var/www/dokuwiki

Ссылки

how-to/dokuwiki.txt · Последнее изменение: lioncub