Содержание
Логотип, favicon
Загрузить картинку с названием logo в корень ($DokuWiki/data/media), она подхватится автоматически.
favicon.ico - так же.
favicon должен быть многослойным 8-bit PNG 16x16px, 32x32px и 48x48px.
Сделать такой favicon можно GIMP-ом, сначала подготовив отдельные картинки нужного разрешения, затем открыть самую большую и подгрузить оставшиеся как слои (ПКМ на картинке → File → Open as layers). Экспортировать как favicon.ico.
Права
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» - поставить галку.
Внизу нажать кнопку «Сохранить».
Перенос на другой хост
Необходимо сохранять даты файлов, чтобы в статьях правильно показывалась дата правки.
# С оригинального сервера 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
Конвертер 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
Важно:
- Для корректной работы SSO A-запись DNS должна совпадать с основной частью SPN, т. е. если SPN
HTTP/wiki.domain.ru@DOMAIN.RU
, то А-запись -wiki.domain.ru
. Алиасы (CNAME) могут быть любые, они роли не играют. - Адрес входа тоже должен быть полным (опять же, совпадающим с SPN). Т. е., при входе на
http://wiki.domain.ru
SSO работать будет, но наhttp://wiki
- нет (решается редиректом на веб-сервере). - Практичнее keytab делать со случайным паролем, нет никакого смысла в его задавании извне.
Сделать 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>
Прочее
Дополнительные асширения файлов для загрузки
nano /var/www/html/conf/mime.local.conf vsd application/vnd.visio vsdx application/vnd.visio
Ширина страницы
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
Техническая информация о странице
Дополнительно
Обслуживание: https://www.dokuwiki.org/tips:maintenance
Best practice: https://www.dokuwiki.org/tips:tailorwikirules