Краудсорсинг
6 апреля 2011

Организация аналога Викисклада для собственной Вики

Из песочницы
Вики-движки широко распространились на просторах интернета. Вики-разметка и множество удобных расширений позволяют охватить широкий спектр задач: от создания странички для личных заметок до корпоративного центра знаний.

Предположим, что ваш путь — установка вики на виртуальном хостинге. Данное решение встречается достаточно часто — не требуется поднимать Apache и настраивать MySQL, а для отдельных хостингов и мучаться с ocaml и latex. Доступ к виртуальному серверу зачастую надежнее, чем к корпоративному.

Минусов в таком решении два:
1) Вики сама провоцирует на написание документации, что приводит к достаточно быстрому её росту. Как следствие, мы наталкиваемся на ограничения по объему доступной дисковой памяти платного хостинга.
2) Размещать на внешних серверах некоторые корпоративные файлы — не фен-шуй.

Решить наши проблемы можно, если хранить все прикладываемые к вики-страницам файлы (картинки, pdf, телеметрию измерений и прочее) на рабочем сервере.

MediaWiki позволяет реализацию этой концепции без дополнительных плясок с бубном.

Устанавливаем на рабочем сервере MediaWiki. В моем случае в качестве сервера выступал слабенький QNAP (сетевая система хранения данных (NAS)) с постоянным внешним IP. На нём с завода запущен Apache и MySQL, RAID из двух дисков. Но linux достаточно урезанный, что не позволяет быстро собрать полноценный latex, ocalm и т.д., а следовательно, полноценно использовать MediaWiki.

В MediaWiki на QNAP разрешаем закачивать файлы, для чего добавляем/изменяем в LocalSettings.php:
$wgEnableUploads = true;
$wgCheckFileExtensions = false;


Настраиваем права пользователей по своему усмотрению.

В MediaWiki на платном хосте в аналогичный файл добавляем:
$wgForeignFileRepos[] = array(
'class' => 'ForeignAPIRepo',
'name' => 'servercommon', # Как назовете, так и будет...
'apibase' => 'http://YOURFILESERVER/wiki/api.php', #Адрем к API сервера в QNAP
'hashLevels' => 2,
'fetchDescription' => true,
'descriptionCacheExpiry' => 43200, # Настройки кэширования файлов, если оно
'apiThumbCacheExpiry' => 86400, # у вас включено
);

$wgUploadNavigationUrl = "http://YOURFILESERVER.ru/wiki/index.php/Special:Upload"; # Теперь в первой вики "Загрузить файл" будет указывать на страницу загрузки в QNAP

$wgEnableUploads = true; # Делаем доступной "Загрузить файл"


Теперь вы можете использовать вторую вики (на рабочем сервере) так, как Википедия использует Викисклад — загружать файлы на вторую вики, а в первой использовать тот же синтаксис, что используете для её собственных файлов. Например,
[[File:MyPic.png]]

Вопрос знатокам: как организовать общий аккаунт для двух вики, стоящих на разных машинах?
+1
1,4k 10
Комментарии 3
Популярное за сутки