DokuWiki
Docker
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
Для локальной установки
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
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
После полной установки для 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)
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 -информационное электронное письмо со списком изменений для каждой страницы (каждый день)
Инструменты командной строки
Обновление индекса
Обновить индекс, перед обновлением очистить:
docker exec $(docker ps -q -f name=dokuwiki) /var/www/html/bin/indexer.php
Плагины
Перемещение и переименование страниц и пространств имен
Меню из индекса страниц
https://www.dokuwiki.org/plugin:indexmenu
Заходим Управление Настройки вики, делаем следующее:
Создаем страницу 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>
https://www.dokuwiki.org/plugin:tooltip
Нажмите, чтобы отобразить
<tooltip title=«Подсказка при наведении курсора» location=«bottom»>Тут подсказка</tooltip>, а тут продолжение …
<tooltip title="Подсказка при наведении курсора" location="bottom"></tooltip>, а тут продолжение ...
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 round important></WRAP>
<WRAP round left alert></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
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
Ссылки