Организация аналога Викисклада для собственной Вики
Вики-движки широко распространились на просторах интернета. Вики-разметка и множество удобных расширений позволяют охватить широкий спектр задач: от создания странички для личных заметок до корпоративного центра знаний.
Предположим, что ваш путь — установка вики на виртуальном хостинге. Данное решение встречается достаточно часто — не требуется поднимать Apache и настраивать MySQL, а для отдельных хостингов и мучаться с ocaml и latex. Доступ к виртуальному серверу зачастую надежнее, чем к корпоративному.
Минусов в таком решении два:
- Вики сама провоцирует на написание документации, что приводит к достаточно быстрому её росту. Как следствие, мы наталкиваемся на ограничения по объему доступной дисковой памяти платного хостинга.
- Размещать на внешних серверах некоторые корпоративные файлы — не фен-шуй.
Решить наши проблемы можно, если хранить все прикладываемые к вики-страницам файлы (картинки, 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]]