Ответ на вопрос
MediaWiki
MediaWiki — свободное программное обеспечение с открытым исходным кодом для организации вики-сайтов. Изначально разработан Магнусом Мансеке и выпущен для использования в Википедии 25 января 2002 года, впоследствии доработан Ли Дэниелом Крокером, а дальнейшая разработка координируется Фондом Викимедиа. MediaWiki используется для работы множества вики-сайтов в Интернете, включая большинство проектов Фонда Викимедиа, таких как Википедия, Викисловарь, Викисклад, Викицитатник, Мета-вики и Викиданные, которые формируют основные требования к программному обеспечению[4]. Помимо проектов Викимедиа, MediaWiki применяется как система управления знаниями и контентом на таких сайтах, как Fandom, wikiHow, а также во внутренних корпоративных вики, например Intellipedia и Diplopedia.
Общие сведения
Что важно знать
| MediaWiki | |
|---|---|
| Тип | Вики-движок |
| Авторы | Магнус Мансеке; Ли Дэниел Крокер |
| Разработчик | Фонд Викимедиа |
| Написана на | PHP |
| Операционные системы | Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris |
| Первый выпуск | 25 января 2002 |
| Аппаратная платформа | кроссплатформенность |
| Последняя версия | |
| Репозиторий | gerrit.wikimedia.org/g/m… |
| Лицензия | GPLv2+[2] |
| Сайт | mediawiki.org |
Описание
MediaWiki написан на языке программирования PHP и хранит весь текстовый контент в базе данных. Программное обеспечение оптимизировано для эффективной работы с крупными проектами, которые могут содержать терабайты данных и обслуживать сотни тысяч просмотров страниц в секунду[4]. Поскольку Википедия является одним из крупнейших и наиболее посещаемых сайтов в мире, масштабируемость с помощью многоуровневого кэширования и репликации баз данных была одной из главных задач разработчиков. Важной особенностью MediaWiki является интернационализация: интерфейс доступен более чем на 400 языках. Программное обеспечение поддерживает сотни параметров конфигурации. По состоянию на октябрь 2026 года в каталоге MediaWiki.org зарегистрировано 1558 расширений[5]. Версия MediaWiki 1.43 относится к выпускам с длительной поддержкой (LTS); её поддержка запланирована до 31 декабря 2027 года[6].
Ключевые особенности
MediaWiki предоставляет богатый набор базовых функций и механизм для подключения расширений, обеспечивающих дополнительную функциональность. Расширения регистрируются с помощью файла extension.json, в котором задаются их параметры и точки подключения к MediaWiki[7].
С версии 1.35 в стандартную поставку входит расширение VisualEditor, позволяющее редактировать страницы, таблицы, ссылки и сноски без непосредственной работы с вики-разметкой[8]. Расширение DiscussionTools, входящее в поставку с версии 1.40, предоставляет инструменты для ответа в обсуждениях и создания новых тем[9]. Ранее использовавшееся для структурированных обсуждений расширение Structured Discussions (Flow) признано устаревшим; вместо него применяется DiscussionTools[10]. Для использования файлов Викисклада в MediaWiki предусмотрена встроенная функция InstantCommons, включаемая через настройки сайта[11].
Интернационализация и локализация
Благодаря акценту на многоязычность в проектах Викимедиа, интернационализация и локализация получили значительное внимание со стороны разработчиков. Пользовательский интерфейс полностью или частично переведён более чем на 400 языков на translatewiki.net, и может быть дополнительно настроен администраторами сайта (весь интерфейс редактируется через вики).
Существуют расширения, предназначенные для расширения возможностей многоязычия и интернационализации MediaWiki. В состав набора MediaWiki Language Extension Bundle входят расширения Translate, UniversalLanguageSelector, Babel и CLDR[12].
Установка и настройка
Для установки MediaWiki требуется наличие административных прав на сервере с поддержкой PHP и совместимой базы данных SQL. Некоторые пользователи считают полезным создание виртуального хоста, если основной сайт работает на фреймворке, например, Zope или Ruby on Rails, несовместимом с MediaWiki[13]. Облачный хостинг может избавить от необходимости развертывания нового сервера.
Для локальной разработки предусмотрена среда MediaWiki-Docker на основе Docker Compose[14]. Образ MediaWiki в Docker Hub считается официальным со стороны Docker, но не самого проекта MediaWiki[15].
Для ветки MediaWiki 1.46 требуется PHP не ниже версии 8.3.0; поддерживаются версии PHP до 8.5.x[16]. Для этой ветки поддерживаются MariaDB начиная с версии 10.3.0, MySQL — с 5.7.0, PostgreSQL — с 10.0 и SQLite — с 3.31.0[17]. Поддержка IBM DB2 удалена из ядра после версии 1.21[18], а поддержка Oracle прекращена с версии 1.34[19].
Установка производится через PHP-скрипт, запускаемый в веб-браузере, который инициализирует настройки вики. Скрипт запрашивает минимальный набор параметров, а дальнейшие изменения, например, включение загрузки файлов[20], добавление логотипа сайта[21], установка расширений, производятся путём редактирования файла LocalSettings.php[22]. Некоторые параметры можно настраивать через специальные страницы или редактируя определённые страницы; например, фильтры злоупотреблений настраиваются через специальную страницу[23], а гаджеты добавляются созданием JavaScript-страниц в пространстве имён MediaWiki. Сообщество MediaWiki публикует подробное руководство по установке[24].
Наряду с веб-установщиком MediaWiki имеет установщик командной строки install.php. Начиная с версии 1.44 для установки с уже подготовленным файлом LocalSettings.php предусмотрен скрипт installPreConfigured.php[25]. При установке из официального архива Composer не требуется: PHP-зависимости уже включены в поставку; при установке из репозитория Git зависимости устанавливают с его помощью[26]. Расширения можно устанавливать вручную, поместив их файлы в каталог extensions и подключив в LocalSettings.php[27].
Разметка
Одним из первых отличий MediaWiki и его предшественника UseModWiki от других вики-движков стало использование «свободных ссылок» вместо CamelCase. Для создания ссылки в MediaWiki слова заключаются в двойные квадратные скобки, а пробелы сохраняются, например, World Wide Web. Это было логичным для энциклопедии, где важна точность заголовков.
MediaWiki использует расширяемую[28] облегчённую вики-разметку, более простую для изучения, чем HTML. Существуют инструменты для конвертации, например, таблиц между разметкой MediaWiki и HTML[29]. Попытки создать формальную спецификацию разметки MediaWiki показали, что вики-код требует контекстно-зависимых грамматических правил[30][31].
По состоянию на 2026 год официальная формальная спецификация викитекста не принята[32].
С версии 1.35 в поставку MediaWiki входит парсер Parsoid, обеспечивающий преобразование викитекста в HTML и обратно[33].
| Синтаксис MediaWiki (код «за кулисами», используемый для форматирования текста) |
Эквивалент в HTML (другой тип кода для форматирования текста) |
Отображаемый результат (видимый посетителю сайта) |
|---|---|---|
==== Диалог ====
«Возьмите ещё [[чай]],» — сказал Мартовский Заяц Алисе очень серьёзно.
«Я ещё ничего не брала», — обиженно ответила Алиса, — «так что не могу взять больше».
«Вы хотите сказать, что не можете взять ''меньше'',» — сказал Шляпник, — «очень легко взять '''больше''', чем ничего». |
<h4>Диалог</h4>
<p>«Возьмите ещё <a href="/wiki/Tea" title="Tea">чай</a>», — сказал Мартовский Заяц Алисе очень серьёзно.</p> <br>
<p>«Я ещё ничего не брала», — обиженно ответила Алиса, — «так что не могу взять больше».</p> <br>
<p>«Вы хотите сказать, что не можете взять <i>меньше</i>», — сказал Шляпник, — «очень легко взять <b>больше</b>, чем ничего».</p>
|
Диалог
«Возьмите ещё чай,» — сказал Мартовский Заяц Алисе очень серьёзно. «Я ещё ничего не брала», — обиженно ответила Алиса, — «так что не могу взять больше». «Вы хотите сказать, что не можете взять меньше,» — сказал Шляпник, — «очень легко взять больше, чем ничего». |