Содержание

Логотип, favicon

Загрузить картинку с названием logo в корень ($DokuWiki/data/media), она подхватится автоматически.
favicon.ico - так же.

favicon должен быть многослойным 8-bit PNG 16x16px, 32x32px и 48x48px.

Сделать такой favicon можно GIMP-ом, сначала подготовив отдельные картинки нужного разрешения, затем открыть самую большую и подгрузить оставшиеся как слои (ПКМ на картинке → File → Open as layers). Экспортировать как favicon.ico.

https://www.dokuwiki.org/tips:favicons

Права

If you have root (super user rights) you can change the owner of files and directories. This means you can change the owner of the DokuWiki files to the web server user (e.g. www-data or nobody) and set the permissions to webserver only access. E.g. 0600 for files and 0700 for directories.

chown -R www-data:www-data /var/www/html
chmod -R 0700 /var/www/html

https://www.dokuwiki.org/install:permissions#which_permissions_to_set

"Красивые" ссылки

В консоли:

cd /var/www/html/wiki
cp .htaccess.dist .htaccess
nano .htaccess

Раскомментировать следующие строки:

## Uncomment these rules if you want to have nice URLs using
## $conf['userewrite'] = 1 - not needed for rewrite mode 2
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

# Not all installations will require the following line.  If you do,
# change "/dokuwiki" to the path to your dokuwiki directory relative
# to your document root.
RewriteBase /dokuwiki

Нижний параметр (RewriteBase /dokuwiki) исправить на нужное значение; если Dokuwiki стоит в корне, оставить только слэш. Выйти, записав файл.

Далее:

chown -R www-data:www-data /var/www/html
service apache2 reload

Зайти в Управление → Настройки вики → Блок «Тонкая настройка».
Изменить настройку «Удобочитаемые адреса (URL)» на .htaccess.
«Использовать слэш в URL» - поставить галку.
Внизу нажать кнопку «Сохранить».

https://www.dokuwiki.org/rewrite#apache

Перенос на другой хост

Необходимо сохранять даты файлов, чтобы в статьях правильно показывалась дата правки.

# С оригинального сервера
scp -rp /var/www/html/* user@docker.domain.ru:/home/user/wiki
# На новом сервере
cp -r --preserve=timestamps /home/user/wiki/* /var/lib/docker/volumes/home_wiki/_data/wiki
chown -R www-data:www-data /var/lib/docker/volumes/home_wiki/_data/wiki

https://www.dokuwiki.org/faq:servermove

Конвертер xlsx в таблицу Dokuwiki

$xlsx = Import-Excel "D:\temp\San switches.xlsx"
$headers = $xlsx[0].psobject.Properties.name -join "^" -replace "^|$","^"
$data = $xlsx |% {
$_.psobject.Properties.value -join "|" -replace "^|$","|"
}
 
# для сортируемых таблиц, нужен плагин https://www.dokuwiki.org/plugin:sortablejs
"<sortable 1>`n" + "$headers`n" + ($data -join "`n") + "`n</sortable>" |clip
 
# обычные таблицы
# "$headers`n" + ($data -join "`n") |clip

Конвертер CSV в таблицу Dokuwiki

$delim = ';'
$file = 'D:\temp\Сервера физ выведенные из экспл.csv'
 
$first = (gc $file)[0]
$rest = gc $file |select -Skip 1
 
$first = $first -replace '^','^' -replace "$delim|$",' ^'
$rest = $rest -replace '^','|' -replace "$delim|$",' |'
 
$first, $rest |Set-Clipboard

Kerberos + SSO

https://www.dokuwiki.org/auth:ad

Важно:

Сделать keytab-файл на контроллере домена (регистр важен):

ktpass -out wiki.keytab -mapUser wiki-krb5@DOMAIN.RU +rndPass -mapOp set -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -princ HTTP/wiki.domain.ru@DOMAIN.RU

Включить в свойствах учётки wiki-krb5 (в данном случае) опцию «Данная учётная запись поддерживает 256-разрядное шифрование».
Перенести keytab на целевой сервер.
https://social.technet.microsoft.com/wiki/contents/articles/36470.active-directory-using-kerberos-keytabs-to-integrate-non-windows-systems.aspx

/etc/krb5.conf
[logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmind.log
 
[libdefaults]
        default_realm = DOMAIN.RU
        default_keytab_name = /etc/apache2/wiki.keytab
        ticket_lifetime = 24h
        forwardable = yes
 
# The following krb5.conf variables are only for MIT Kerberos.
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
 
# The following libdefaults parameters are only for Heimdal Kerberos.
        fcc-mit-ticketflags = true
 
[realms]
        DOMAIN.RU = {
        kdc = dc1.domain.ru
        kdc = dc2.domain.ru
        kdc = dc3.domain.ru
        admin_server = dc3.domain.ru
        default_domain = domain.ru
        }
 
[domain_realm]
        wiki = DOMAIN.RU
        wiki.domain.ru = DOMAIN.RU
        .domain.ru = DOMAIN.RU
        domain.ru = DOMAIN.RU
 
[appdefaults]
        pam = {
        debug = false
        ticket_lifetime = 36000
        renew_lifetime = 36000
        forwardable = true
        krb4_convert = false
}
/var/www/html/conf/local.php
<?php
 
$conf['title'] = 'Wiki';
$conf['lang'] = 'ru';
$conf['license'] = '0';
// группа админов wiki
$conf['superuser'] = '@wiki-admins';
$conf['target']['interwiki'] = '_blank';
$conf['target']['extern'] = '_blank';
$conf['userewrite'] = '1';
$conf['useslash'] = 1;
/var/www/html/conf/local.protected.php
<?php
 
$conf['useacl']         = 1;
$conf['authtype'] = 'authad';
$conf['disableactions'] = 'register';
 
$conf['plugin']['authad']['account_suffix'] = '@domain.ru';
$conf['plugin']['authad']['base_dn'] = 'DC=domain,DC=ru';
$conf['plugin']['authad']['domain_controllers'] = 'DC1.domain.ru,DC2.domain.ru,DC3.domain.ru';
$conf['plugin']['authad']['domain'] = 'domain.ru';
$conf['plugin']['authad']['recursive_groups']   = 1;
$conf['plugin']['authad']['sso'] = 1;
// Пользователь AD wiki-admin должен входить в группу wiki-admins
$conf['plugin']['authad']['ad_username'] = 'wiki-admin';
$conf['plugin']['authad']['ad_password'] = 'P@ssw0rd';
// $conf['plugin']['authad']['debug'] = 1;
# Apache2 Kerberos module
apt install libapache2-mod-auth-gssapi
/etc/apache2/apache2.conf
<Directory "/var/www/html">
        AuthType GSSAPI
        AuthName "GSSAPI Wiki SSO"
        GssapiBasicAuth On
        Require valid-user
</Directory>

Чтобы не переделывать на клиентах ссылки типа http://wiki на http://wiki.domain.ru, сделать редирект.

/etc/apache2/sites-available/000-default.conf
<If "%{HTTP_HOST} != 'wiki.domain.ru'">
    Redirect "/" "http://wiki.domain.ru/"
</If>

https://httpd.apache.org/docs/2.4/rewrite/remapping.html

Прочее

Дополнительные асширения файлов для загрузки

nano /var/www/html/conf/mime.local.conf
 
vsd     application/vnd.visio
vsdx    application/vnd.visio

https://www.dokuwiki.org/mime#adding_additional_mime_types

Ширина страницы

mkdir /var/www/html/conf/tpl/dokuwiki --parents
echo '[replacements]' > /var/www/html/conf/tpl/dokuwiki/style.ini
echo '__site_width__  = "100%"' >> /var/www/html/conf/tpl/dokuwiki/style.ini

https://www.dokuwiki.org/template:dokuwiki#changing_the_width_and_other_styles

Техническая информация о странице

Добавить в конец ссылки

?do=check

https://www.dokuwiki.org/faq:version

Дополнительно

Обслуживание: https://www.dokuwiki.org/tips:maintenance
Best practice: https://www.dokuwiki.org/tips:tailorwikirules