Как установить mediawiki на windows
MediaWiki -- популярный бесплатный движок, на котором работает Википедия и другие проекты фонда WikiMedia. Легко устанавливается и расширяется.
Содержание
Установка MediaWiki
Для установки из командной строки (CLI) выполняем:
php ./maintenance/install.php --dbname Имя_БД --dbuser Пользователь_БД --dbpass Пароль_БД --dbprefix Префикс_Таблиц --pass Пароль_Участника_Админа Имя_Вики Участник_АдминСписок всех параметров установщика:
Подробно об установке можно узнать из официальной инструкции, и ещё одна здесь.
Вики движок лучше не размещать в корне сайта. Почему, кратко объяснено в спец. статье.
После установки хорошо бы ознакомиться с задачами администратора MediaWiki, где сказано что ещё можно доделать.
Как сделать (краткие ЧаВО)
Хорошие краткие инструкции (ЧаВО или FAQ) есть на официальном сайте MediaWiki как на русском языке, так и на английском.
Запрещаем редактирование не авторизованным пользователям:
Делаем ссылки короткими
где $wgScriptPath - каталог установки вики-сайта,
Затем, в корневом каталоге сайта (т.е. рядом с каталогом "w") нужно создать файл .htaccess:
Для лучшего понимания этого кода можно подробней ознакомиться с синтаксисом директивы RewriteRule.
и подключить модуль rewrite, после чего перезагрузить apache. В Debian это делается следующим образом:
Создаём пользователя из командной строки
Скрипт createAndPromote.php может создать пользователя, изменить его права (группу) и пароль.
Следующая команда создаёт пользователя NewUser с паролем UserPassword и добавляет его в группы бюрократоры и администраторы:
php createAndPromote.php --bureaucrat --sysop NewUser UserPasswordМеняем права пользователей
Права пользователя можно поменять на Special:Userrights. Подробно описано в официальном руководстве.
За изменение прав отвечает тип разрешения userrights. Дав это разрешение какой-либо группе в конфигурационном файле LocalSettings.php, мы позволяем участникам этой группы изменять права всех участников вики. Например, чтобы дать всем возможность управлять правами нужно добавить такую строчку:
В реальной жизни это опасно и нецелесообразно, но может понадобиться в тестовой среде, чтобы быстро проверять и настраивать уровень доступа разных групп к ресурсам сайта:загрузка файлов, редактирование интервики и других служебных страниц вроде Edittools, а также редактирование защищённых страниц и т.п.
Меняем пароль пользователя
1. Пользователь может запросить забытый пароль на странице Special:UserLogin
2. Администратор может поменять пароль любого пользователя следующими способами:
2.1) скриптом из каталога maintenance:
2.2) SQL командой:
2.3) на странице Special:PasswordReset. В этом случае пароль будет автоматически создан и отправлен на почтовый ящик участника.
Читайте подробней на официальном сайте. См также статью о MySQL.
Разрешаем включать страницы из других вики
Чтобы включить страницу или шаблон из другой вики, она должна быть описана в таблице интервики ссылок и в LocalSettings.php нужно добавить параметр $wgEnableScaryTranscluding:
Можно прочитать подбробней про включения (transclusion) вообще и про включения из других вики в частности.
Разрешаем загружать файлы
Последние два параметра разрешают загружать все файлы (что не безопасно). Если их не указывать, то по умолчанию будут разрешены только изображения.
Чтобы самостоятельно задать тип файлов указываем:
Для того, чтобы файлы могли быть загруженными, должен быть настроен и сам PHP. Максимальный размер загружаемого файла задаётся в php.ini (напр. /etc/php5/apache2/php.ini) параметром upload_max_filesize. Т.е. одной установки $wgMaxUploadSize будет мало.
Для повышения безопасности запретим выполнять скрипты из каталога изображений. Для этого в корне каталога images создадим файл .htaccess со следующими настройками (подробнее. ):
Подробней о настройке загрузки файлов см. официальную документацию.
Добавляем классы таблиц
По умолчанию в движке MediaWiki определён только один класс таблиц wikitable.
- Чтобы определить свои классы нужно отредактировать файл skins/common/shared.css. Вставьте в любое место приведённый справа код.
Пример классов таблиц:
Сортируем данные в колонках
Для добавления возможности сортировки данных в колонках достаточно в заголовке добавить к названию класса слово "sortable". Например:
См. подробнее на английском на официальном сайте.
Переносим статьи и шаблоны из другой вики
- Special:Export - выгружаем требуемую статью или шаблон в промежуточный XML файл
- Special:Import - загружаем на новой вики XML файл
Подробнее в официальной документации. Иногда, в случае со сложными зависимостями, когда шаблон использует несколько других (как часто бывает в Википедии, например), проще переносить шаблон вручную, отредактировав его и убрав зависимости, заменив их на более простые конструкции (облегчённые шаблоны или просто текст).
Скрываем большие и незначительные блоки текста
- Можно добавить возможность сворачивать таблицы и фрагменты текста.
- Начиная с 1.18 для всех элементов добавлен класс "mw-collapsible", который можно указать не только для таблиц, но и для любого текста. Подробней см. справку по редактированию
- До версии 1.18 в официальной инструкции рекомендуется создать в вики страницы MediaWiki:Common.js и MediaWiki:Common.css Такое решение имеет свой плюс (при обновлении движка настройка останется) и минус (в случае вики фермы - страницу нужно будет создавать в каждой вики). Для вики фермы можно добавить код в конец следующих файлов в каталоге skins/common/:
- код для Common.js добавил в ajax.js
- код для Common.css добавил в shared.css
- Сворачивать можно также разделы, таблицы, ячейки в таблицах и удалённые от кнопки сворачивания блоки. Примеры можно посмотреть на сайте тестирования MediaWiki
Перевод сайта в режим только для чтения
Перевести сайт в режим только для чтения можно определив переменную $wgReadOnly:
Меняем название заглавной страницы
Чтобы спрятать название страницы см. ниже.
Прячем название страницы
Для того, чтобы спрятать название определённой страницы (в примере ниже это "Заглавная_страница") добавляем на страницу MediaWiki:Common.css следующий код:
Также можно использовать магическое слово DISPLAYTITLE:
но для этого нужно отключить в LocalSettings.php ограничения на заголовки:
Включаем обработку подстраниц
При включенной обработке подстраниц, если в заголовке страницы встречается косая черта (/), то система начинает распознавать всё, что за ней как подстраницу. То есть если есть в названии страницы эта косая черта, то она считается подстраницей, если нет - то это корневая (родительская) страница. Сколько косых черт в заголовке - таков и уровень подстраницы.
При выключенной обработке подстраниц все страницы считаются корневыми.
Обработка включается и выключается для каждого пространства имён отдельно:
или для всех сразу:
При включенной обработке на подстраницах под заголовком появляется строка ссылок на все родительские страницы ("хлебные крошки" или BreadCrumbs). Также можно вывести список всех дочерних страниц (подстраниц) с помощью запроса:
- hideredirects=1 скрывает страницы с перенаправлением, а
- stripprefix=1 удаляет из полного названия страницы названия родительских страниц; 1 - удаляет только самого первого родителя, 2 - первого и второго и т.д.
Подробнее смотрите на официальных страницах:Добавление расширений
Резервное копирование
Чтобы узнать, как скачать дампы базы данных со статьями Википедии, см. статью Википедии
Для создания собственного дампа локального сайта, использующего MediaWiki, есть подробная инструкция.
Если кратко, то полная резервная копия - это дамп из СУБД (у меня MySQL) в виде SQL выражений, а частичная в виде xml файла. Особенности последней в том, что она не зависит от структуры базы данных и может быть перенесена, например, на нувую версию MediaWiki с изменнённой структурой БД, но в xml не выгружаются информация о логинаx пользователей, журналы и метаданные изображений.
- Для XML дампа используем скрипт dumpBackup.php, расположенный в каталоге maintenance:
Список параметров dumpBackup.php можно получить, вызвав его без параметров, однако, в исходном коде этого скрипта есть ещё несколько недокументированных опций.
Редактировние статей
Об этом можно подробно узнать из Справки по редактированию.
Поиск в Firefox по своей вики
В Firefox с помощью шаблона %s и "Краткого имени" (keyword) в закладке можно настроить быстрый доступ к любому сайту.
Отрываем Закладки - Управление закладками (Bookmark/Manage bookmarks), создаём отдельную папку для быстрого поиска, скажем "Быстрый поиск"; создаём новую закладку, где указываем:
Обратите внимание, что краткое имя может быть и на русском языке.
Теперь в адресной строке набираем: "св MediaWiki" и попадаем на эту страницу.
Если наберём просто "св", то попадём на начальную страницу сайта.
Почта
Разрешаем пересылку почты пользователям и устанавиваем ограничение на запрос напоминания пароля не чаще чем один в час.
Но в этом случае нам понадобиться установленный пакет Mail из репозитория PEAR. Ставится командой
Если же не установлен сам PEAR, то в Debian этом можно сделать так:
Отображение файлов SVG
Движок MediaWiki преобразует все изображения SVG (а также WMF, OpenEXR, DjVu и Graphviz) в формат PNG. Поэтому, для отображения файлов векторной графики в формате SVG необходимо доустановить утилиту конвертации графических файлов. На время выхода версии 1.27 поддерживаются следующие: ImageMagick, ImagickExt, sodipodi, inkscape, batik, rsvg, и imgserv.
Борьба со спамом
- Расширение UserMerge:
- Блокировать пользователя с помощью UserMerge на служебной странице (блокирует не надолго) или вручную.
- Удаление учётки - Объединение спамерской учётки с Anonymous и удаление (расширение UserMerge). (расширение Nuke)
- Отключить самостоятельную регистрацию пользователей и завоть их вручную.
Дополнительные настройки
- Описание переменных конфигурационного файла на английском.
-
(interwiki) - это ссылки, оформленные как внутренние ссылки с использованием специального префикса, но ведущие на страницы других проектов. Интервики-ссылки позволяют сделать ссылку на страницы других вики-проектов, например Википедии, Викиучебника, Викиновостей и т.д., или, к примеру, на разделы вашего вики-проекта на разных языках.
- расширение SpecialInterwiki позволяет редактировать таблицу интервики ссылок через веб-интерфейс
- расширение Interwiki позволяет редактировать таблицу интервики через текстовый файл.
- В поле Имя пользователя укажите - wikiuser
- Для поля Хост из выпадающего списка выберите Локальный или localhost
- В полях Пароль и Подтверждение укажите пароль пользователя (например 123456)
- Назначьте глобальные привилегии с помощью ссылки Отметить все
- Site name — Википедия
- Language — выберите Русский
- Sysop account name — укажите любое имя (это будет пользователь с правами администратора Википедии)
- Sysop account password — укажите пароль, в поле again его нужно повторить
- Database name — имя базы данных. Можно оставить значение по умолчанию wikidb
- DB username — имя пользователя для подключения к базе. Можно оставить значение по умолчанию wikiuser. Он понадобиться только в процессе настройки.
- DB password — пароль пользователя. Например 123456, в поле again его нужно повторить
- Super user — введите то же что и в DB username
- Password — введите то же что и в DB password
Для редактирования таблицы интервики группой администраторов (sysop) нужно в конфигурацию добавить строчку:
Работа над ошибками
Для вывода ошибок на экран, в конец конфигурационного файла LocalSettings.php дописываем.
Чтобы видеть в браузере вообще всё, что пишется в журнал ошибок (текст показывается поверх сайта), добавляем ещё ниже строки:Описанные шаги создают только основу для функционирования вики-движка. В других разделах описанно как добавить поддержку математических формул, установку необходимых расширений, загрузку данных из других вики-сайтов, а также представленна информация о вики-хостинге.
Замечание: После установки сервера приложений на компьютер, подключённый к общедоступной сети, любой человек может получить административный доступ к базе данных через firewall (брандмауэр) и закройте от внешнего доступа порты 80, 443 и 3306 перед началом установки. При использовании Windows XP SP2 можно просто включить встроенный брандмауэр — по умолчанию он запрещает любые соединения на любые порты.
Шаг 1. Установка сервера приложений
Перед непосредственной установкой MediaWiki вам необходимо установить на компьютер такие приложения как MySQL. Начинающие пользователи могут это сделать с помощью установки сервера этих приложений. В качестве сервера приложений можно выбрать STPServer 1.01 или XAMPP . Так как STPServer 1.01 обладает в отличии от XAMPP предпочтительнее установить его.
Скачайте сервер приложений STPServer 1.01. Установите его на ваш компьютер. На вашем компьютере появится дополнительный виртуальный диск. Как правило, это диск T:
Шаг 2. Создание базы данных и пользователя
В поле справа Язык - Language выберите язык Russian.
В поле Новая база данных впишите имя базы данных (wikidb).
В поле Сравнение выберите utf8_unicode_ci (как вариант utf8_general_ci).
Нажмите на Добавить нового пользователя.
Шаг 3. Установка программного обеспечения MediaWiki
Всё содержимое этой папки (все файлы и вложенные папки) скопируйте в папку T:\home\virtual\prime\. Перейдите в эту папку и удалите из неё файлы index.html и index.htm. Эти файлы были скопированы сервером приложений, но они нам уже не нужны.
Перейдите по ссылке set the wiki up.
В разделе Site config заполните поля:
В разделе Database config заполните поля:
Нажмите Install!.
Перенесите (именно перенесите, а не скопируйте!) файл T:\home\virtual\prime\config\LocalSettings.php в папку T:\home\virtual\prime\.
Удалите папку T:\home\virtual\prime\config\.
Вы увидите пустую Википедию. Поздравляем вас с удачной установкой MediaWiki!
Конфигурация настроек
Настройки PHP
Имеет смысл изменить файл конфигурации PHP. Находится в T:\usr\local\Apache\bin\php.ini
Подержка математических функций (Формулы LaTeX)
Добавления необходимых расширений
Для использования ряда шаблонов и возможностей необходимы определенные расширения, которые устанавливаются дополнительно. Наиболее часто употребимые:-
- синтаксический анализатор с логическими функциями - формы для создания страниц - Добавляет теги <ref[ name=id]> и для сносок
Загрузка статей из других Вики-сайтов
После установки MediaWiki вы можете скачать дамп Русской Википедии и получить работающую копию Википедии на своём компьютере. Аналогично можно загрузить статьи из других Вики-сайтов.Перейдём непосредственно к установке вашей энциклопедии. Для начала, напомню, нужно скачать свежий дистрибутив и распаковать его содержимое в будущую папку с энциклопедией. По старинке, это делают в папку /w/ в корне сайта. В последствии имя можно будет изменить на более привычное — /wiki и сделать ссылки читабельными и привычными, как в Википедии, например — wiki/Российский_флаг.
Второй шаг: создаём базу MySQL для вики. Если не знаете, как это сделать: в панели хостера ищем ссылку на phpMyAdmin, вводим имя пользователя, пароль и на основной странице в поле «Новая база данных» вводим имя базы. «Сравнение/Collation» можно пока оставить как есть.
Если вы скачали MediaWiki версии 1.17 и больше, в них уже встроен удобный установщик с подсказками, которые помогут вам сориентироваться в процессе. С версиями 1.16 и ранее чуть сложнее — там требуется самостоятельная настройка и немного знаний о БД, её установка описана в этой статье.
Если вы не разбираетесь в тонкостях настройки серверов и баз, то советую оставлять все пункты по умолчанию: двоичный набор символов, вместо UTF-8, отсутствие упоминания лицензии (т. к. иначе, если кто-то решит красть ваши статьи и копировать их в Википедию, это не будет запрещено согласно выбранной вами лицензии, а следовательно и удалять оттуда статью уже никто не станет).
А также советую в профиле прав пользователей указать Требуется создание учётной записи: во-первых, это оградит энциклопедию от массового вандализма и спама, во-вторых, поможет устанавливать настоящих авторов той или иной правки.
Ну и напоследок, я бы посоветовал использовать таблицы типа MyISAM, а не InnoDB. Второе больше пригодится для потенциально крупных проектов. Если же у вас выделенный сервер, а InnoDB вы НЕ используете, его стоит отключить в MySQL, чтобы снизить нагрузку и потребление памяти.
Запускаем MySQL
Поскольку здесь необходима база данных MySQL, нам нужно сначала создать контейнер MySQL. Я написал контейнер с помощью сценария оболочки. Сценарий создания выглядит следующим образом:
В приведенной выше команде его значение выглядит следующим образом:
Используйте MediaWiki для подключения к MySQL
После подтверждения того, что MySQL работает правильно, следующим шагом будет использование MediaWiki для подключения к MySQL, удаление только что созданного контейнера MediaWiki, а затем использование следующей команды для создания нового контейнера:
Щелкните ссылку на картинке выше, в это время мы можем увидеть следующую информацию:
Нажмите [Продолжить], чтобы перейти на следующую страницу:
Нажмите [Продолжить], мы переходим на следующую страницу конфигурации MySQL.Введите IP-адрес MySQL, имя базы данных (потому что я уже делал это раньше, поэтому база данных и данные в ней уже готовы) имя пользователя и пароль, нажмите [Продолжить] и войдите на следующую страницу:
Щелкните соединение [Regenerate LocalSettings.php] на рисунке выше, чтобы перейти на следующую страницу.
Нажмите [Продолжить], чтобы перейти на страницу конфигурации рабочего пространства вики.
Мы можем заполнить поля соответственно в соответствии с конфигурацией на рисунке выше. После заполнения нажмите [Продолжить], чтобы перейти на страницу загрузки LocalSettings.php.LocalSettings.php принадлежит конфигурационному файлу MediaWiki. Нам нужно только поместить файл конфигурации в рабочую область MediaWiki, чтобы конфигурация вступила в силу. Поскольку адрес рабочей области MediaWiki нам известен ранее, мы можем выполнить следующие команды:
После мы сможем посетить следующий адрес:
Интерфейс показан следующим образом:
Используйте docker-compose
Чтобы сохранить данные в MediaWiki на долгое время, чтобы они не были потеряны из-за удаления контейнера, нам необходимо скопировать рабочую область в контейнере MediaWiki в локальный каталог.
Поскольку я в основном устанавливаю через docker-compose, здесь я напрямую публикую локальный docker-compose следующим образом:
Читайте также: