Установка 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
- Доступ в интернет для клонирования репозиториев и установки пакетов
Что мы сделаем
- Проверим установку MediaWiki
- Установим зависимости: Node.js, npm и инструменты разработки
- Соберём и настроим Parsoid
- Установим и включим расширение VisualEditor
- Протестируем работоспособность
Шаг 1 — Проверка установки MediaWiki
Откройте ваш браузер и перейдите на URL MediaWiki. В примере это: ‘http://wiki.hakase-labs.me’. Если настроен редирект на HTTPS, используйте HTTPS.
Вы должны увидеть сайт MediaWiki с темой “Vector” и возможность авторизации.

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

Если редактор открылся и ошибок нет, можно переходить к установке 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
Перейдите в каталог и установите зависимости npm:
cd /opt/parsoid
npm installУстановка может занять несколько минут. В конце вы увидите лог установки зависимостей.

Далее скопируйте пример конфигурации и отредактируйте её:
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',
});
};
Сохраните файл.
Теперь скопируйте 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 parsoidParsoid по умолчанию слушает порт 8000. Проверьте это командой:
netstat -plntuВ выводе вы должны увидеть процесс node, прослушивающий порт 8000.

Если на сервере активен 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
Затем добавьте подключение расширения в файл 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’

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

Если редактор открылся и вы можете редактировать страницы с сохранением, интеграция выполнена успешно.
Типичные проблемы и способы решения
- Парсоид не запускается или падает при старте: проверьте логи 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
Краткая методология отката
- Остановить сервис parsoid: ‘systemctl stop parsoid’
- Вернуть изменения в LocalSettings.php, убрав блок VisualEditor
- Восстановить файловые права, если было изменено
- При необходимости откатить каталоги /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 для редактирования страниц
Источники и ссылки
Важно: замените примеры доменов и путей на реальные значения вашей установки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента