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

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


service:dokuwiki

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:dokuwiki [01.04.2021 14:41] – [Kerberos + SSO] viacheslavservice:dokuwiki [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +==== Логотип, 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.
 +<code bash>
 +chown -R www-data:www-data /var/www/html
 +chmod -R 0700 /var/www/html
 +</code>
 +https://www.dokuwiki.org/install:permissions#which_permissions_to_set
 +
 +
 +
 +
 +==== "Красивые" ссылки ====
 +В консоли:
 +<code bash>
 +cd /var/www/html/wiki
 +cp .htaccess.dist .htaccess
 +nano .htaccess
 +</code>
 +Раскомментировать следующие строки:
 +<code>
 +## 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
 +</code>
 +Нижний параметр (RewriteBase /dokuwiki) исправить на нужное значение; если Dokuwiki стоит в корне, оставить только слэш. Выйти, записав файл.
 +
 +Далее:
 +<code bash>
 +chown -R www-data:www-data /var/www/html
 +service apache2 reload
 +</code>
 +
 +Зайти в Управление -> Настройки вики -> Блок "Тонкая настройка".\\
 +Изменить настройку "Удобочитаемые адреса (URL)" на .htaccess.\\
 +"Использовать слэш в URL" - поставить галку.\\
 +Внизу нажать кнопку "Сохранить".
 +
 +https://www.dokuwiki.org/rewrite#apache
 +
 +==== Перенос на другой хост ====
 +Необходимо сохранять даты файлов, чтобы в статьях правильно показывалась дата правки.
 +<code bash>
 +# С оригинального сервера
 +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
 +</code>
 +https://www.dokuwiki.org/faq:servermove
 +
 +==== Конвертер xlsx в таблицу Dokuwiki ====
 +<code powershell>
 +$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
 +</code>
 +
 +==== Конвертер CSV в таблицу Dokuwiki ====
 +<code powershell>
 +$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
 +</code>
 +==== 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-файл на контроллере домена (регистр важен):
 +<code dos>
 +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
 +</code>
 +Включить в свойствах учётки ''wiki-krb5'' (в данном случае) опцию "Данная учётная запись поддерживает 256-разрядное шифрование".\\
 +Перенести keytab на целевой сервер.\\
 +https://social.technet.microsoft.com/wiki/contents/articles/36470.active-directory-using-kerberos-keytabs-to-integrate-non-windows-systems.aspx
 +
 +<file bash /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
 +}
 +</file>
 +
 +
 +<file php /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;
 +</file>
 +
 +<file php /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;
 +</file>
 +
 +<code bash>
 +# Apache2 Kerberos module
 +apt install libapache2-mod-auth-gssapi
 +</code>
 +
 +<file bash /etc/apache2/apache2.conf>
 +<Directory "/var/www/html">
 +        AuthType GSSAPI
 +        AuthName "GSSAPI Wiki SSO"
 +        GssapiBasicAuth On
 +        Require valid-user
 +</Directory>
 +</file>
 +
 +Чтобы не переделывать на клиентах ссылки типа ''%%http://wiki%%'' на ''%%http://wiki.domain.ru%%'', сделать редирект.
 +<file bash /etc/apache2/sites-available/000-default.conf>
 +<If "%{HTTP_HOST} != 'wiki.domain.ru'">
 +    Redirect "/" "http://wiki.domain.ru/"
 +</If>
 +</file>
 +https://httpd.apache.org/docs/2.4/rewrite/remapping.html
 +==== Прочее ====
 +=== Дополнительные асширения файлов для загрузки ===
 +<code bash>
 +nano /var/www/html/conf/mime.local.conf
 +
 +vsd     application/vnd.visio
 +vsdx    application/vnd.visio
 +</code>
 +https://www.dokuwiki.org/mime#adding_additional_mime_types
 +
 +=== Ширина страницы ===
 +<code bash>
 +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
 +</code>
 +https://www.dokuwiki.org/template:dokuwiki#changing_the_width_and_other_styles
 +=== Техническая информация о странице ===
 +Добавить в конец ссылки
 +<code>
 +?do=check
 +</code>
 +https://www.dokuwiki.org/faq:version
 +==== Дополнительно ====
 +Обслуживание: https://www.dokuwiki.org/tips:maintenance\\
 +Best practice: https://www.dokuwiki.org/tips:tailorwikirules

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki