Гид по технологиям

Установка VisualEditor и Parsoid на CentOS 7 для MediaWiki 1.30

• 6 min read • DevOps • Обновлено 18 Nov 2025
VisualEditor и Parsoid на CentOS 7 для MediaWiki 1.30
VisualEditor и Parsoid на CentOS 7 для MediaWiki 1.30

Важно: пример использует домен ‘http://wiki.hakase-labs.me’ и порт Parsoid 8000. Замените эти значения на свои.

Предисловие

VisualEditor — это визуальный редактор для MediaWiki. Он доступен как расширение и требует работающего сервиса Parsoid для преобразования между HTML и вики-разметкой.

Parsoid — парсер/сервис на Node.js. Он используется несколькими расширениями MediaWiki, включая VisualEditor, Flow и Content Translation.

Данная инструкция рассчитана на MediaWiki 1.30 и CentOS 7, где оба сервиса будут работать на одном сервере.

Кому будет полезно

  • Системным администраторам, разворачивающим MediaWiki в CentOS 7
  • DevOps-инженерам, которые настраивают визуальные расширения
  • Техническим редакторам, желающим понять архитектуру VisualEditor + Parsoid

Что потребуется

  • CentOS 7 с установленным MediaWiki
  • Права root или sudo
  • Доступ в интернет для клонирования репозиториев и установки пакетов

Что мы сделаем

  1. Проверим установку MediaWiki
  2. Установим зависимости: Node.js, npm и инструменты разработки
  3. Соберём и настроим Parsoid
  4. Установим и включим расширение VisualEditor
  5. Протестируем работоспособность

Шаг 1 — Проверка установки MediaWiki

Откройте ваш браузер и перейдите на URL MediaWiki. В примере это: ‘http://wiki.hakase-labs.me’. Если настроен редирект на HTTPS, используйте HTTPS.

Вы должны увидеть сайт MediaWiki с темой “Vector” и возможность авторизации.

Стартовая страница MediaWiki

Войдите под учётной записью администратора и нажмите вкладку ‘Edit’ для проверки редактора по умолчанию.

Страница редактирования в MediaWiki

Если редактор открылся и ошибок нет, можно переходить к установке Parsoid.

Шаг 2 — Установка зависимостей

На CentOS 7 установим Node.js и npm, а также vim и git для работы с исходниками.

Выполните:

yum -y install nodejs npm vim-enhanced git

После этого необходимые пакеты будут установлены.

Примечание: репозитории CentOS 7 могут содержать древние версии nodejs. При необходимости используйте официальный репозиторий NodeSource для более свежих версий.

Шаг 3 — Установка и настройка Parsoid

Parsoid можно запускать на отдельном сервере, но в этой инструкции он будет установлен на том же сервере, что и MediaWiki.

Официальные пакеты Parsoid доступны в основном для Debian/Ubuntu, поэтому для CentOS 7 мы будем собирать его из исходников.

Создайте каталог и клонируйте репозиторий Parsoid:

mkdir -p /opt/parsoid
git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid /opt/parsoid

Клонирование Parsoid

Перейдите в каталог и установите зависимости npm:

cd /opt/parsoid
npm install

Установка может занять несколько минут. В конце вы увидите лог установки зависимостей.

Результат установки parsoid

Далее скопируйте пример конфигурации и отредактируйте её:

cp localsettings.example.js localsettings.js
vim localsettings.js

Найдите и раскомментируйте вызов parsoidConfig.setMwApi, указав API вашего MediaWiki:

exports.setup = function(parsoidConfig) {
    // Do something dynamic with `parsoidConfig` like,
    parsoidConfig.setMwApi({
        uri: 'http://wiki.hakase-labs.me/api.php',
    });
};

Конфигурация parsoidConfig.setMwApi

Сохраните файл.

Теперь скопируйте YAML-конфигурацию и укажите API и домен MediaWiki:

cp config.example.yaml config.yaml
vim config.yaml

В секции mwApis укажите ‘uri’ и ‘domain’:

 mwApis:
     - # This is the only required parameter,
       # the URL of you MediaWiki API endpoint.
       uri: 'http://wiki.hakase-labs.me/api.php'
       # The "domain" is used for communication with Visual Editor
       # and RESTBase.  It defaults to the hostname portion of
       # the `uri` property above, but you can manually set it
       # to an arbitrary string. It must match the "domain" set
       # in $wgVirtualRestConfig.
       domain: 'wiki.hakase-labs.me'
       #optional

Сохраните и закройте.

Настройка systemd-сервиса для Parsoid

Создайте unit-файл systemd для запуска Parsoid как сервиса:

cd /etc/systemd/system/
vim parsoid.service

Вставьте следующее содержимое:

[Unit]
Description=Mediawiki Parsoid web service on node.js
Documentation=http://www.mediawiki.org/wiki/Parsoid
Wants=local-fs.target network.target
After=local-fs.target network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/parsoid
ExecStart=/usr/bin/node /opt/parsoid/bin/server.js
KillMode=process
Restart=on-success
PrivateTmp=true
StandardOutput=syslog

Сохраните, затем выполните:

systemctl daemon-reload
systemctl start parsoid
systemctl enable parsoid

Parsoid по умолчанию слушает порт 8000. Проверьте это командой:

netstat -plntu

В выводе вы должны увидеть процесс node, прослушивающий порт 8000.

Результат netstat

Если на сервере активен firewalld, добавьте порт 8000:

firewall-cmd --add-port=8000/tcp --permanent
firewall-cmd --reload

Настройка брандмауэра

Важно: если на сервере включён SELinux, проверьте контексты и правила для node и nginx/Apache. Иногда SELinux блокирует доступ к порту или запуск процесса в нестандартных каталогах.

Шаг 4 — Установка и настройка VisualEditor

Перейдите в каталог расширений вашей установки MediaWiki и клонируйте VisualEditor:

cd /var/www/mediawiki/extensions
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git

Инициализируйте сабмодули:

cd VisualEditor/
git submodule update --init

Установка VisualEditor

Затем добавьте подключение расширения в файл LocalSettings.php в корне установки MediaWiki:

cd /var/www/mediawiki
vim LocalSettings.php

Вставьте ближе к концу файла:

wfLoadExtension( 'VisualEditor' );

// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;

// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";

// Don't allow users to disable it
$wgHiddenPrefs[] = 'visualeditor-enable';

// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;


$wgVirtualRestConfig['modules']['parsoid'] = array(
    // URL to the Parsoid instance
    // Use port 8142 if you use the Debian package
    'url' => 'http://wiki.hakase-labs.me:8000',
    // Parsoid "domain", see below (optional)
    'domain' => 'wiki.hakase-labs.me',
    // Parsoid "prefix", see below (optional)
    'prefix' => 'wiki.hakase-labs.me'
);

Сохраните файл LocalSettings.php.

После этого приведите права на файлы веб-сервера. В примере используется пользователь nginx:

chown -R nginx:nginx /var/www/mediawiki

Если вы используете Apache, замените nginx на apache или httpd, в зависимости от вашей конфигурации.

Шаг 5 — Тестирование

Откройте сайт MediaWiki в браузере и войдите как администратор: ‘http://wiki.hakase-labs.me’

Открытие MediaWiki

Нажмите вкладку ‘Edit’ на главной странице — вы должны увидеть визуальный редактор VisualEditor.

VisualEditor в MediaWiki

Если редактор открылся и вы можете редактировать страницы с сохранением, интеграция выполнена успешно.

Типичные проблемы и способы решения

  • Парсоид не запускается или падает при старте: проверьте логи systemd командой ‘journalctl -u parsoid’ и логи npm. Убедитесь, что все зависимости установлены.
  • Неправильный URL API в localsettings.js или config.yaml: проверьте, что uri указывает на корректный путь ‘api.php’ вашего MediaWiki и что домен совпадает с $wgVirtualRestConfig.
  • Брандмауэр блокирует порт 8000: откройте порт в firewalld или используйте обратный прокси (nginx/Apache) для проксирования запросов Parsoid на порт 80/443.
  • SELinux мешает доступу: временно поставьте SELinux в permissive для проверки ‘setenforce 0’ и при подтверждении проблемы настройте правильные контексты.
  • Версия Node.js слишком старая: используйте NodeSource для установки актуальной версии Node.js на CentOS 7.

Альтернативные подходы

  • Развёртывание Parsoid на отдельном сервере или в контейнере Docker для изоляции и масштабирования.
  • Использование официальных пакетов Parsoid на Debian/Ubuntu вместо сборки из исходников.
  • Проксирование Parsoid через nginx с TLS, чтобы обслуживать Parsoid по HTTPS и не раскрывать нестандартные порты.

Критерии приёмки

  • Parsoid запущен как сервис systemd и прослушивает порт 8000
  • VisualEditor загружается в браузере для авторизованного пользователя
  • Правильный обмен между VisualEditor и Parsoid: редактирование и сохранение страницы проходят без ошибок
  • Логи Parsoid и веб-сервера не содержат критических ошибок при выполнении сценариев редактирования

Роль‑ориентированные чеклисты

Для администратора MediaWiki:

  • Проверить корректность $wgVirtualRestConfig в LocalSettings.php
  • Проверить доступность MediaWiki API

Для системного администратора:

  • Убедиться, что service parsoid активен и включён
  • Проверить firewall и SELinux
  • Настроить права доступа веб-каталога

Для DevOps:

  • Автоматизировать установку Parsoid через Ansible/Terraform/CI
  • Запустить Parsoid в контейнере и подключить мониторинг

Рекомендации по безопасности

  • Не экспонируйте Parsoid напрямую в интернет без обратного проксирования и TLS
  • Ограничьте доступ по IP или настройте аутентификацию, если Parsoid доступен из внешней сети
  • Следите за обновлениями Node.js и зависимостей Parsoid

Краткая методология отката

  1. Остановить сервис parsoid: ‘systemctl stop parsoid’
  2. Вернуть изменения в LocalSettings.php, убрав блок VisualEditor
  3. Восстановить файловые права, если было изменено
  4. При необходимости откатить каталоги /opt/parsoid и /var/www/mediawiki/extensions/VisualEditor из бэкапа

Сопутствующие заметки и совместимость

  • Инструкция проверялась на CentOS 7 и MediaWiki 1.30. Для более новых версий MediaWiki и Parsoid могут потребоваться другие версии Node.js и иные настройки.
  • Для Debian/Ubuntu доступны пакеты Parsoid: в таком случае предпочтительнее использовать системные пакеты.

Заключение

Вы установили и настроили Parsoid и VisualEditor для MediaWiki на CentOS 7. Основные шаги: установка зависимостей, сборка Parsoid, настройка systemd, подключение расширения и тестирование. В случае ошибок следуйте секции типичных проблем и используйте чек-листы по ролям.

Краткая справка:

  • Parsoid отвечает за преобразование HTML <-> вики-разметки
  • VisualEditor предоставляет UI для редактирования страниц

Источники и ссылки

Важно: замените примеры доменов и путей на реальные значения вашей установки.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро