Инсталляция DokuWiki [Устарело]
Информация устарела
Все нижеописанное весьма устарело и рекомендуется для очень старых версий, имейте это ввиду.Для новых версий Dokuwiki используйте вот этот способ: Делаем Dokuwiki красивой и удобной
Для того, чтобы развернуть на своей площадке такой же сайт необходимо установить и настроить ядро DokuWiki, установить и настроить тему, установить и настроить необходимые плагины.
Ниже представлен примерный перечень шагов с описаниями, которые может быть необходимо выполнить:
- Работать в соответствии с инструкцией по установке Install:
- Скачать с сайта DokuWiki последний стабильный релиз
- Распаковать архив, загрузить через FTP или SSH содержимое архива на сервер в целевую директорию (например, в корень WWW)
- Либо web dokuwiki installer → тут
- Создать пустой файл changes.log в папке data (либо командой touch data/changes.log, либо копированием пустого файла через FTP)
- Установить папкам data и conf и подпапкам атрибуты 755 или 777
- Установить всем файлам в data и conf атрибуты 644 или 666
- Копировать conf/users.auth.php.dist в conf/users.auth.php и установить атрибуты 644 или 666
- Копировать conf/acl.auth.php.dist в conf/acl.auth.php и установить атрибуты 644 или 666
- Копировать conf/dokuwiki.php в conf/local.php и установить атрибуты 644 или 666
- Создать первую страницу - средствами DokuWiki (кнопка Create Page)
- В соответствии с руководством по улучшению безопасности security
- Переименовать папку data в другое имя, например data21) и внести соответствующее изменение в conf/local.php
$conf['savedir'] = '/data2';
- Включить поддержку авторизации в соответствии с acl
- Исправить
conf/local.php
$conf['useacl'] = 1; // this enables the ACL feature $conf['superuser'] = '@admin'; // admin group is superuser
- Зарегистрировать в системе пользователя - средствами DokuWiki
- В файле conf/users.auth.php исправить группу у пользователя на группу суперюзера (указать после последнего двоеточия admin) - пользователь приобретёт администраторские права
- На первой странице (start) зайти в Admin/Access Control List Management и исправить права доступа для пространства имён, группа ALL оставить только чтение, нажать «Обновить»
- Настроить DokuWiki в соответствии с config
- Зайти в DokuWiki под админским логином в раздел Admin/Configuration Manager (кнопка снизу) и поставить language=ru, применить настройки
- В «Управление/Настройки Вики» (бывшее Admin/Configuration Manager):
- Права для создаваемых директорий - 0777 (чтобы не было проблем с бэкапом и управлением через FTP)
- Права для создаваемых файлов - 0666 (чтобы не было проблем с бэкапом и управлением через FTP)
- Включить отладку (отключите!) - убрать флажок
- Транслитерация в именах страниц - полная транслитерация (чтобы не было ссылок с %D0%A4…)
- Разрешить подписку на изменения - да
- Удобочитаемые адреса (URL) - Средствами DokuWiki
- установить плагин plugin:txtconf и добавить ссылки на yandex.ru и google.ru:
- Вставить в conf/interwiki.conf строки:
ya http://www.yandex.ru/yandsearch?text= google.ru http://www.google.ru/search?q=
- Настроить дату сервера в соответствии с tips:timezone, ниже приведён пример для Московского времени:
- Исправить файл conf/local.protected.php, добавив после <?php строку
putenv("TZ=Europe/Moscow");// - для PHP4 date_default_timezone_set("Europe/Moscow"); // - для PHP5
-
- В conf/mime.conf дописать следующие строки2):
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 можно с помощью этого плагина.
Темы
Better Navigation Template - тема, в которой название сайта помещено в левый угол, сделана подсветка активной страницы в списке посещённых, добавлено боковое меню для разделов сайта. Либо тут → http://www.jandecaluwe.com/testwiki/doku.php/navigation:sidebar_install
После установки темы необходимо скопировать в папку темы из папки стандартной темы lib\tpl\default\ файлы _admin.css
и _linkwiz.css
, а также добавить пару строк в файл style.ini
в раздел [stylesheets]
:
_admin.css = screen _linkwiz.css = screen
Дополнительные плагины
Эта программа вставляет тройку символов в самое начало файла (EF BB BF), по которым определяет, что это UTF-8 кодировка, что иногда приводит к сбоям в PHP скриптах и порче разметки сайтов.
Конечно, эти символы не есть личная придумка Microsoft - это один из способов отмечать UTF-8 документы. Но MS Notepad не умеет сохранять документы без этого префикса.
Используйте редакторы, умеющие правильно работать с UTF-84).
Google Analitycs
Плагин для подключения статистики от Google Analytics.
Надо модифицировать шаблон, вставив в файл lib/tpl/…./main.php
следующие строки:
было: </body> </html> стало: </body> <?php if (file_exists(DOKU_PLUGIN.'googleanalytics/code.php')) include_once(DOKU_PLUGIN.'googleanalytics/code.php'); if (function_exists('ga_google_analytics_code')) ga_google_analytics_code(); ?> </html>
BookmarkMe
Вставляет блок кнопок для создания закладок на публичных серверах типа http://del.icio.us
ActionLink
Вставляет ссылки на служебные функции/специальные страницы DokuWiki. Например, index.
- plugin:actionlink - страница о плагине
{{actionlink>[action]|[title]}}
Элемент action может принимать следующие значения:
- edit - редактировать/создать/показать страницу
- history - история страницы
- recent - недавние изменения
- login - войти/выйти
- index - все страницы
- admin - управление DokuWiki
- top - ссылка «перейти к началу»
- back - ссылка «вернуться назад»
- backlink - список обратных ссылок
Элемент title является необязательным. Он позволяет вставить другой текст вместо стандартного 'Редактировать страницу', 'Старые версии', 'Недавние изменения', и т.д.
Search Index Manager
Перестраивает индекс для полнотекстового поиска
- Страница о плагине - plugin:searchindex_manager
- Загрузить исправленную версию плагина searchindex.zip (добавлен русскоязычный интерфейс)
- Разархивировать плагин в папку /lib/plugins/searchindex
- Использование плагина - в панели управления выбрать строку «Менеджер индекса полнотекстового поиска»
Иногда плагин не работает и выдаёт ошибку
Warning: array_keys(): The first argument should be an array in ...\inc\indexer.php on line 56 Warning: join(): Bad arguments in ...\inc\indexer.php on line 56
В таком случае может помочь исправление в файле inc\indexer.php:
// добавить следующую строку if (!is_array($links)) { $links = Array($links); } // перед строчкой $tmp = join(' ',array_keys($links));
Note
Оформляет текст как заметку ( Выглядит по-разному в Explorer'е и Firefox'е)
- Страница о плагине - plugin:note
- Загрузить исправленную версию плагина :note.rar (изменён стиль обычной заметки)
- Разархивировать плагин в папку /lib/plugins/note
- Использование плагина -
<note>обычная заметка</note> <note tip>заметка-подсказка</note> <note important>важная заметка</note> <note warning>заметка-предупреждение</note>
PageMove
Переименовывает и переносит страницы между разными пространствами имён
- Страница о плагине - plugin:rename
- Загрузить версию плагина с официальной страницы
- Разархивировать плагин в папку /lib/plugins/pagemove
- Использование - администраторский плагин - «Управление»/«Перемещение/Переименование страницы…»
Discussion
Добавляет форму отправки комментариев к странице, фактически позволяет разместить на странице ветку форума. Пример смотри в конце этой страницы.
- Страница о плагине - plugin:discussion
- Установка - разархивировать плагин в папку /lib/plugins/discussion
- Использование плагина - вставить в конец текста страницы
~~DISCUSSION~~
- До конца переведённый файл поддержки русского языка discussion_ru.rar
ICQ
Выводит номер ICQ с отображением текущего статуса пользователя (запрашивает картинку с сервера ICQ): 123456789
- Страница о плагине - plugin:icq
- Загрузить исправленую версию плагина:icq.zip (добавлена строка с номером ICQ)
- Разархивировать плагин в папку
/lib/plugins/icq
- Использование плагина -
[[icq>123456789]]
Highlight
Выделяет текст цветом: <hi>выделение по умолчанию</hi> <hi red>выделение нужным цветом (red)</hi>
- Страница о плагине - plugin:highlight
- Загрузить исправленную версию плагина (исправлена уязвимость XSS) - highlight.zip
- Разархивировать плагин в папку
/lib/plugins/highlight
- Использование плагина:
<hi>текст</hi> <hi red>текст</hi> <hi #A8F1F2>текст</hi> <hi rgb(255,34,123)>текст</hi>
<hi>текст</hi>
<hi red>текст</hi>
<hi #A8F1F2>текст</hi>
<hi rgb(255,34,123)>текст</hi>
FreeMind
Выводит файлы сделанные в FreeMind в виде интерактивного Flash или Java.
- Страница о плагине - plugin:freemind
- Требует установки плагина plugin:command
- Разархивировать плагин в папку
lib/plugins/command/ext
- Добавить в
conf/mime.conf
строчку:mm text/xml
Пример использования:
#freemind?type=flash(dokuwiki.mm)#
#freemind?type=flash(dokuwiki.mm)#
BackupTool
Позволяет делать архивную копию страниц, предыдущих версий, meta-данных, media-файлов, файлов конфигурации, тем и плагинов.
- Страница о плагине - BackupTool (на английском)
- Скачать дистрибутив - backuptool-current.tar.gz
- Разархивировать плагин в папку
lib/plugins/backup
Инфа на будущее
- tips:pdfexport - о том, как настроить экспорт в PDF
- tips:htmltowiki - конвертор из HTML в WIKI
Миграция со старых версий
Когда обновляется DokuWiki со старой версии, которая ещё не поддерживала функцию «транслитерация» сталкиваешься с проблемой, что получается практически нечитабельная структура файлов и директорий.
Например : «%D0%BA%D1%8B%D1%80%D0%B3%D1%8B%D0%B7%D1%81%D1%82%D0%B0%D0%BD.txt» это тоже самое, что «кыргызстан.txt»
Это происходит потому что имена файлов в UTF-8 подвергаются url-кодированию.
В последних версиях DokuWiki есть опция «транслитерация» для того, чтобы изменить такое поведение. Однако простая смена настроек DokuWiki недостаточна - все старые файлы переименованы не будут.
Для того, чтобы конвертировать нечитабельную файловую структуру в «транслитерированный формат» был написан следующий скрипт:
<?php if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/'); require_once(DOKU_INC.'inc/utf8.php'); /** * Copy a file, or recursively copy a folder and its contents, and clean up the filenames according to the dokuwiki UTF-8 * * @original_author Aidan Lister <[email protected]> * @link http://aidanlister.com/repos/v/function.copyr.php * @param string $source Source path * @param string $dest Destination path * @return bool Returns TRUE on success, FALSE on failure */ function copyr($source, $dest) { $dest2=cleanID($dest); echo $source."->".$dest." ->$dest2<br/>"; // Simple copy for a file if (is_file($source)) { return copy($source, $dest2); } // Make destination directory if (!is_dir($dest)) { mkdir($dest2); } // Loop through the folder $dir = dir($source); while (false !== $entry = $dir->read()) { // Skip pointers if ($entry == '.' || $entry == '..') { continue; } // Deep copy directories if ($dest !== "$source/$entry") { copyr("$source/$entry", "$dest/$entry"); } } // Clean up $dir->close(); return true; } copyr("/srv/www/htdocs/data/","/srv/www/htdocs/datanew/"); // пути к папкам на сервере (исходный и конечный) function cleanID($id,$ascii=false){ $id = trim(urldecode($id)); $id = utf8_strtolower($id); $id = utf8_romanize($id); utf8_deaccent($id,-1); $id = preg_replace('#\'+#','_',$id); return($id); } ?>
В скрипте надо исправить путь к директории с данными, поместить его в папку bin и запустить из браузера www.yoursite.ru/bin/convert.php
После этого будет создана папка с копией данных но в транслитерированном формате. Теперь осталось только зайти в настройки DokuWiki, исправить путь к папке с данными на datanew и выбрать вариант «Полная транслитерация в именах страниц», а также «Использовать первый заголовок вместо имени».
Также может потребоваться чистка кэша DokuWiki (для этого можно использовать соответствующий плагин).
Также не помешает проверить структуру созданных папок и файлов на корректность — в именах файлов могут появиться символы типа «'» (если в названии страницы был твёрдый знак).
~~DISCUSSION~~
image/x.djvu
, однако в таком случае они будут переданы на обработку в графическую библиотеку, которая попытается (безуспешно) сделать иконку. С типом application/x.djvu
DokuWiki поступает проще - делает для таких файлов ссылку на скачивание и даёт стандартную иконку.