Mediawiki
Вступление
Довольно часто встречаешь в форуме вопрос по поводу выбора вики. Не так давно передо мной стал такой же вопрос.Сначала несколько слов о том – зачем я это все затеял. Небольшая предыстория: работая на предыдущем месте там была установлена вики в качестве knoledge base. Сперва я отнесся к этому нововедению скептически, но ошибся – оказалось очень удобно. Далее сменив место работы я обнаружил почти полное отсутствие документации, т.е кое-что было, но на разных машинах в сети, не всегда это был вордовский документ, да и не обновляли их по 3-4 года. Вобщем начал я думать (учитывая мой предыдущий опыт с knoledge base на базе вики) как бы это изменить. Соответственно меня интересовали следующие возможности:
- Веб интерфейс
- Поиск по документам
- Email нотификация
- Возможность устанавливать права на страницу (в моем случае просто запретить редактировать незарегистрированным пользователям)
- Подсветка кода (С\С++)
Так как времени мне на эту работу в рабочее время никто не выделял, то я мог заниматься этим только в свое свободное время, поэтому я делал все на виртуальной машине, которую потом перенес на отдельную машину подключенную в сеть.
Учитывая мою слабость к linux платфотмам я выбирал wiki которая бы без лишних телодвижений стала на linux платформу (на большинстве linux систем apache,MySQL,php стоят по умолчанию).
Обзор я начал с Wikimatrix для начала посмотрел на Bitweaver, но в нем мне не понравился UI и работа с картинками, а также подсветка кода. Это те проблемы с которыми я столкнулся и не смог от них быстро избавится, я отнють не хочу сказать что это плохо реализовано или не работает. Далее я посмотрел XWiki, я даже хотел на ней остановиться, есть свой сервер, есть даже инсталятор под Windows который позволяет сделать все в один клик, но здесь я терял мобильность и мне так и не удалось найти плаги для Email нотификации. Итак мой выбор остановился на mediawiki.
Инсталяция
Системные требования:
- web-server Apache
- PHP 5 или старше рекомендуется 5.1
- MySQL
С системными требованиями к mediawiki можна познакомиться на оффициальном сайте
- 1. Загрузить mediawiki можна здесь .Я брал версию mediawiki-1.10.1
- 2. Распаковать файл в папку вашего web-server-а (если Apache, то она указана в файле httpd.conf). На linux системе это можна сделать командой tar xvzf mediawiki-*.tar.gz
- 3. Установить права доступа для папки config. (chmod 755 config)
- 4. Создать базу данных. Я опишу процесс создания для MySQL для остальных СУБД можна посмотреть здесь.
Если у вас есть права администратора для MySQL, то эту процедуру можна пропустить. Инсталяционный скрипт сделает все сам.
Если прав нет,то запустите /usr/local/mysql/bin/mysql -u user_name -p mysql . Эта команда запустит командную строку клиента MySQL
CREATE DATABASE wikidb; GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, LOCK TABLES ON wikidb.* TO 'wikiuser'@'localhost' IDENTIFIED BY 'password'; FLUSH privileges;\q
Если ваш сервер запущен на другой машине
GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, ALTER, LOCK TABLES ON wikidb.* TO 'wikiuser'@'mediawiki.example.com' IDENTIFIED BY 'password';
Когда все эти шаги пройдены, можна запускать инсталяционный скрипт.Для этого необходимо написать в вашем браузере http:\\name_of_your_machine\wikifolder (я периименовал папку mediawiki-1.10.1 в wiki и т.о строка в браузере имеет вид http:\\slackware\wiki ). Далее вы получите предупреждение что, папка config (path_to_wiki\wiki\config) защищена от записи и предлагают вам выполнив команду
cd /path/to/wiki
chmod a+w config
запустить скрипт снова. После этого вам необходимо будет указать некоторые детали вашей вики (имя, тип СУБД и т.п). Для того чтобы закончить процесс инсталяции необходимо переместить файл config/LocalSettings.php на один уровень выше – именно переместить, не скопировать. Все ваша вики готова.
Настройка
Теперь вики необходимо настроить. Постараюсь описать самые важные (на мой взгляд), про остальные настройки можна прочитать здесь
Изменить название
Открываем файл LocalSettings.php, тот самый который мы переместили при инсталяции, ищем переменную $wgSitename и присваиваем ей необходимое значение.
$wgSitename = "RSDN Test";
Изменить лого
В мануале написано, что необходимо указать путь к новому лого-изображению (135х135)
$wgLogo = “The URL of the site logo.”
Что я только там не указывал, а лого так и не изменилось, может я что не так делал,может баг(не было времени заглянуть в багтрекер). Необходимо заменить изображение
/path_to_wiki/skins/commons/images/wiki.png на ваше изображение. (Изображение должно быть размером 135х135).
Настроить загрузку файлов
Для того чтобы загружать файлы на вики, необходимо установить
$wgEnableUploads = true;
и дальше заполнить массив , расширениями тех файлов, которые вы хотите разрешить загружать в вики. Например так,
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ppt', 'pdf', 'doc', 'psd', 'mp3','xls', 'zip');
Далее, необходимо иметь в виду, что ограничение на размер файла зависит от настроек php и по умолчанию это 2Мб. Нужно учесть что загрузка файлов, может быть вообще запрещена в php и это может быть причиной почему не загружаются файлы.
Настройка прав редактирования
Для того чтобы запретить незарегистрированным пользователям редактировать страницы необходимо установить
$wgGroupPermissions['*']['edit'] = false;
а для того, чтобы запретить чтение необходимо установить
$wgGroupPermissions['*']['read'] = false;
Про остальные настройки прав пользователей и групп можна почитать User rights
Встраиваемые картинки
Для того чтобы ваши картинки отображались на страничке необходимо установить переменную
$wgAllowExternalImages = true;
Плагины
Из плагинов я бв отметил SyntaxHighlight_GeSHi для расскраски кода, далее CategoryTree, показывает статьи категории в виде дерева.
Все полагины ставаться одинаково, необходимо положить файл плагина в папку /path/to/wiki и затем подключить в файле LocalSettings.php этот плагин
require_once("{$IP}/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php"); require_once("{$IP}/extensions/CategoryTree/CategoryTree.php" );
Нужно внимательно читать инструкцию по установке плагина, т.к они часто зависят либо от какого-то другого плагина, либо предполагают установку какой-то программы.
Заключение
Вики я поставил и доволен, всеми она активно не используется и врядли будет(если ребята за 7-8 лет разработки так и неудосужились написать документацию), но 2-3 пользователя ее используют активно :-). Одно из своих требований я так и не смог удовлетворить, а имеено Email нотификацию, вернее я ее сделал, но криво — через внешний mail server, а хотелось через родной mail server линукса, на котором стоит вики, но у меня не получилось настроить sendmail. Я нашел обходной путь в wiki есть рсс фид, подписавшись на который можна иметь точно такой же список измкнений как и при Email нотификации.
Полезные ссылки

Pit:
отличная информация. по-моему очень полезная и нужная.
22 May 2008, 2:59 pmСанеkk:
Довольно интересно написано. А вообще, поздравляю автора блога и всех его читателей с сегодняшним праздником - Днем России. Ура, товарищи!
12 June 2008, 7:48 pmленя:
ты просто молодец, очень редко встретишь человека, который так хорошо разбирается в столь сложных вещах. статья получилась очень занимательная и полезная.
16 June 2008, 5:26 pmOlly:
Статья помогла при установке и настройке вики,
2 July 2008, 10:15 amспасибо автору )))
Pit:
респект и уважуха автору. инструкция просто пошаговая. довольно легко все настроил.
8 July 2008, 8:42 pmдима:
у вас такое четкое и понятное описание и характеристики плагинов - просто и все понятно.
9 July 2008, 7:32 amI am OK:
Инструкцию по установке Mediawiki и закачки в нее базы Википедии можно посмотреть здесь:
10 July 2008, 2:16 amhttp://ru.wikipedia.org/wiki/Википедия:Как_сделать_копию_Википедии
лариса:
спасибо за подсказки. обязательно воспользуюсь, как только разберусь со всей информацией.
10 July 2008, 12:28 pmмиша:
отличная и полезная информация.теперь как я понимаю Вику можно установить и себе.
14 July 2008, 2:09 pmстас:
у меня не получается загрузить mediawiki? что делать?
22 July 2008, 4:36 pmadmin:
to стас: поконкретнее плз. куда зугрузить (или откуда)
22 July 2008, 7:27 pmмарат:
У Вас отличный обзор. кстати эти плагины я искал, попал прямо в точку:) приятно:)добавлю Вас в избранное.
29 July 2008, 4:36 pmАнна К:
Хорошая статья. Буду ждать продолжения. Эта тема безусловно интересна всем.
29 July 2008, 7:51 pm