Как правильно настроить установку расширения Visual Editor в MediaWiki (V1.38) с помощью docker-compose и Ubuntu 20.04?
поэтому я объясняю свою проблему.
У меня есть экземпляр MediaWiki версии 1.38 , который отлично работает локально. Этот экземпляр работает с помощью docker-compose. Вот мой YAML- файл:
version: '3.7'
services:
mediawiki:
image: myImageMediawiki:1.38.2
restart: always
ports:
- 8090:80
links:
- database
- memcached
volumes:
- /home/path/mediawiki/volumes/extensions/PluggableAuth:/var/www/html/extensions/PluggableAuth
- /home/path/mediawiki/volumes/extensions/LDAPAuthentication2:/var/www/html/extensions/LDAPAuthentication2
- /home/path/mediawiki/volumes/extensions/LDAPProvider:/var/www/html/extensions/LDAPProvider
- /home/path/mediawiki/volumes/extensions/LDAPAuthorization:/var/www/html/extensions/LDAPAuthorization
- /home/path/mediawiki/volumes/extensions/Babel:/var/www/html/extensions/Babel
- /home/path/mediawiki/volumes/extensions/VisualEditor:/var/www/html/extensions/VisualEditor
- /home/path/mediawiki/volumes/images:/var/www/html/images
- /home/path/mediawiki/volumes/LocalSettings.php:/var/www/html/LocalSettings.php
- /home/path/mediawiki/volumes/ldapprovider.json:/var/www/html/ldapprovider.json
- /home/path/mediawiki/volumes/php.ini:/usr/local/etc/php/php.ini
- /home/path/mediawiki/volumes/logo/logo.png:/var/www/html/resources/assets/logo.png
memcached:
image: memcached:1.6-alpine
restart: always
database:
image: mariadb:10.5
restart: always
volumes:
- /home/path/mediawiki/volumes/db:/var/lib/mysql
- /home/path/mediawiki/volumes/initdb:/docker-entrypoint-initdb.d
environment:
MYSQL_DATABASE: myDB
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
Все мои контейнеры работают отлично, без каких-либо особых ошибок.
Я хочу установить плагин VisualEditor версии 1.38 . Для этого я скачал плагин с официального сайта и следовал инструкциям по установке на официальном сайте MediaWiki . Я добавляю свое расширение в папку расширений (как и другие расширения) и добавляю следующие строки в файл LocalSettings.php :
wfLoadExtension( 'VisualEditor' );
$wgDefaultUserOptions['visualeditor-enable'] = 1;
$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
$wgHiddenPrefs[] = 'visualeditor-enable';
$wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
$wgGroupPermissions['user']['writeapi'] = true;
После установки плагина у меня появляется кнопка VisualEditor. Однако, как только я нажимаю кнопку «Изменить», я получаю эту ошибку:
Я также посмотрел на сторону API. Этот хорошо доступен по ссылке http://localhost:8091/api.php.
Но когда я смотрю на вызов функции конечной точки для редактирования страницы с помощью VisualEditor, у меня есть этот вызов:
И получаю такой ответ:
{
"error": {
"code": "apierror-visualeditor-docserver-http-error",
"info": "Error contacting the Parsoid/RESTBase server: (curl error: 7) Couldn't connect to server",
"docref": "See http://localhost:8091/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
}
}
Если необходима дополнительная информация, не стесняйтесь спрашивать меня.
1 ответ
Я нашел решение своей проблемы.
Я обновил версию MediaWiki с 1.38 до 1.39 , а также версию PHP. Конечно, я обновил свою версию VisualEditor до 1.39 . Однако при переходе с Php 7.3 на Php 7.4 мне пришлось удалить пакет Mb-string, который несовместим с Php 7.4 .
Затем я последовал официальному руководству Mediawiki по обновлению базы данных (с помощью веб-браузера ). Однако некоторые файлы препятствовали обновлению базы данных.
Поэтому я закомментировал содержимое этих файлов и смонтировал их в свой контейнер. (не удалено, на всякий случай)
- /var/www/html/maintenance/archives/patch-archive-MCR.sql _
- /var/www/html/maintenance/archives/patch-revision-actor-comment-MCR.sql
Эти файлы создают индексы, удаляют несуществующие индексы или создают уже существующие столбцы или индексы.
Затем я добавил расширение VisualEditor в LocalSettings.php, и служба Parsoid/Restbase уже настроена: нет необходимости настраивать ее самостоятельно!
Все работает идеально.