Установка и настройка MediaWiki c визуальным редактором VisualEditor на CentOS 7. Удобная работа с ресурсом как в локальной сети так и с интернета. Подключим сертификат SSL. Удобное добавление информации гарантия хорошего наполнения сайта.

Введение

Для меня работа с любым сайтом это прежде всего удобство добавления нужной информации. Стандартный редактор добавления статей в MwdiaWiki не удобный, так как всё отображение вносимого текста строится вводом определенных знаков. Добавление редактора WikiEditor немного улучшает вид самой панели но не решает проблему с отображением вводимой информации. Существует замечательное дополнение VisualEditor но при установки оно требует наличия на сервере сервиса Parsoid который необходим для работы. Готового решения для установки его на CentOS 7 из пакетов нет. В статье мы и рассмотрим как установить Parsoid и MediaWiki на одной машине с CentOS 7. Работать ресурс будет на базе Nginx в локальной сети. Для удобной работы с ресурсом как в локальной сети так и с интернета мы сделаем запись в DNS необходимого домена указав нужный статический IP.

Установка MediaWiki на Nginx

Нравится мне работать с Nginx поэтому и стараюсь везде его использовать где это возможно.

Для начала нам надо определиться с версиями которые мы будем устанавливать. На сайте из документации по расширению Extension:VisualEditor сказано что стабильная работа гарантирована на версии MediaWiki  1.28. Можно попробовать установить и на тестовых версиях, но я не сторонник такого подхода, поэтому будем прислушиваться к рекомендациям и устанавливать стабильные версии.

Из предыдущих статей вы можете узнать все необходимое перед установкой MediaWiki:

Ниже я лишь приведу некоторые моменты и необходимые настройки для работы MediaWiki на NGINX.

На сайте разработчика вы найдёте всю необходимую информацию.
Документация

Перейдем в необходимую папку на сервере.

cd /web/sites/wiki.sevo44.ru

Скачаем необходимую нам версию.

wget https://releases.wikimedia.org/mediawiki/1.28/mediawiki-1.28.2.tar.gz
= вывод команды =
--2017-09-10 14:30:11-- https://releases.wikimedia.org/mediawiki/1.28/mediawiki-1.28.2.tar.gz
Распознаётся releases.wikimedia.org (releases.wikimedia.org)... 91.198.174.217, 2620:0:862:ed1a::3:d
Подключение к releases.wikimedia.org (releases.wikimedia.org)|91.198.174.217|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 32965916 (31M) [application/x-gzip]
Сохранение в: «mediawiki-1.28.2.tar.gz»

100%[======================================>] 32 965 916 2,35MB/s за 11s

2017-09-10 14:30:23 (2,77 MB/s) - «mediawiki-1.28.2.tar.gz» сохранён [32965916/32965916]

Распаковываем архив.

tar -zxvf mediawiki-1.28.2.tar.gz

Переименовываем папку mediawiki-1.28.2 в www.

mv mediawiki-1.28.2 www

Дадим необходимые права для Nginx на все папки и файлы.

chown -R nginx:nginx /web/sites/wiki.sevo44.ru

Параметры настройки MediaWiki для Nginx c SSL

Создадим необходимые настройки для работы MediaWiki в Nginx c SSL сертификатом.

Как установить свободный сертификат на сайт вы можете из статьи SSL бесплатный для сайта Nginx.

vi /etc/nginx/conf.d/wiki.sevo44.conf
= необходимые параметры =
# wiki.sevo44.ru
server {
# Переводим на nttps. http2 - включит работу сайта по этому протоколу!
listen 443 ssl http2;
#listen 80;
server_name wiki.sevo44.ru www.wiki.sevo44.ru;
root /web/sites/wiki.sevo44.ru/www/;
index index.php index.html index.htm;
access_log /web/sites/wiki.sevo44.ru/log/access.log main;
error_log /web/sites/wiki.sevo44.ru/log/error.log;
# Для ssl
ssl_certificate /etc/letsencrypt/live/wiki.sevo44.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wiki.sevo44.ru/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#### ssl_ciphers "HIGH:!RC4:!aNULL:!MD5:!kEDH";
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_dhparam /etc/ssl/certs/dhparam.pem;
add_header Strict-Transport-Security 'max-age=604800';
#/ Для ssl
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?title=$1&$args;
}
location ^~ /maintenance/ {
return 403;
}
 
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
try_files $uri /index.php;
expires max;
log_not_found off;
}
location = /_.gif {
expires max;
empty_gif;
}
location ^~ /cache/ {
deny all;
}
#gzip on; #включаем сжатие gzip для ускорения отдачи страниц
#gzip_min_length 1000;
#gzip_proxied expired no-cache no-store private auth;
#gzip_types text/plain application/xml;
location ~ \.php$ {
#try_files $uri $uri/ /index.php?$args;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php-fpm/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /web/sites/wiki.sevo44.ru/www/;
fastcgi_param SCRIPT_FILENAME /web/sites/wiki.sevo44.ru/www$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /web/sites/wiki.sevo44.ru/www$fastcgi_script_name;
fastcgi_param PHP_VALUE "
max_execution_time = 30
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 32M
max_input_time = 60
date.timezone = Europe/Moscow
#always_populate_raw_post_data = -1
";
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
#fastcgi_param REQUEST_METHOD $request_method;
#fastcgi_param CONTENT_TYPE $content_type;
#fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_intercept_errors on;
#fastcgi_ignore_client_abort off;
#fastcgi_connect_timeout 60;
#fastcgi_send_timeout 180;
#fastcgi_read_timeout 180;
#fastcgi_buffer_size 128k;
#fastcgi_buffers 4 256k;
#fastcgi_busy_buffers_size 256k;
#fastcgi_temp_file_write_size 256k;
}
}
# Редирект с http
server {
listen 80;
server_name wiki.sevo44.ru www.wiki.sevo44.ru;
rewrite ^ https://wiki.sevo44.ru$request_uri? permanent;
}

Проверим правильность.

nginx -t
= вывод команды =
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Применим изменения.

systemctl reload nginx.service

Непосредственная установка MediaWiki

Теперь для начала установки нам надо либо добавить наш сайт на DNS сервер или прописать нужную строчку в необходимый файл на компьютере с которого будем работать с сайтом. Для систем с Linux надо сделать следующее:

cat /etc/hosts
= необходимое дополнение =
192.168.1.101 wiki.sevo44.ru

Запись необходимо добавлять если в локальной сети нет DNS сервера. В нашем случае DNS присутствует и все локальные компьютеры будут работать с сайтом в локальной сети без дополнительных настроек.

Набрав в браузере необходимый адрес wiki.sevo44.ru мы попадем на страницу установки MediaWiki.

Внимание! В случае появления ошибки при попытке установки
/wiki/mw-config/index.php MediaWiki\Services\ServiceDisabledException from line 340 of /storage/c/12/69/colegiovertice3/public_html/wiki/includes/services/ServiceContainer.php: Service disabled: DBLoadBalancer
Выполните действия

cd /var/lib/php/
chown nginx:nginx session/

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

Настройка файла LocalSettings.php для MediaWiki

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

Свой логотип на сайт MediaWiki

Файл должен иметь размер 160х160 пикселей.

vi /web/sites/wiki.sevo44.ru/www/LocalSettings.php 
= необходимое изминение =
$wgLogo = "https://wiki.sevo44.ru/wiki_sevo44.png";

Убираем index.php из URL

В настройках Nginx мы добавили нужный параметр осталось добавить нужный код в файл настройки MediaWiki.

vi /web/sites/wiki.sevo44.ru/www/LocalSettings.php
= необходимое дополнение =
# Скрываем index.php из url
$wgArticlePath = "/$1";
# /Скрываем index.php из url

Добавляем ico на сайт MediaWiki

Загружаем файл favicon.ico в корень сайта и добавляем строчку в файл настройки.

vi /web/sites/wiki.sevo44.ru/www/LocalSettings.php
= необходимое дополнение = 
$wgFavicon = "../favicon.ico";

Запрет редактирование не авторизованным пользователям

Добавим нужный код в файл настройки MediaWiki.

vi /web/sites/wiki.sevo44.ru/www/LocalSettings.php
= необходимое дополнение =
# Запрет редактирования не авторизованным
$wgGroupPermissions['*']['createaccount'] = true;
$wgGroupPermissions['*']['read'] = true;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;
# /Запрет редактирования не авторизованным

Установка дополнения WikiEdit

При установке я сознательно не выбирал установку расширений. Сделаем это вручную. Всю необходимую документацию вы можете найти на странице Extension:WikiEditor/ru.

Согласно документации нам необходимо добавить в файл настроек  LocalSettings.php небольшой код.

vi /web/sites/wiki.sevo44.ru/www/LocalSettings.php
= необходимое дополнение =
# Extension WikiEditor
wfLoadExtension( 'WikiEditor' );
# Расширение включено по умолчанию, однако пользователь может отключить его в настройках.
$wgDefaultUserOptions['usebetatoolbar'] = 1;

# Enables link and table wizards by default but still allows users to disable them in preferences
$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;

# Показывает вкладки «Предпросмотра» и «Изменений»
$wgDefaultUserOptions['wikieditor-preview'] = 1;

# Показывает кнопки «Публикации» и «Отмены» справа сверху
$wgDefaultUserOptions['wikieditor-publish'] = 1;
# / Extension WikiEditor

Я сознательно в коде который редактирую добавляю пометки для последующей удобной работы с ним как самому так и тем кто будет его смотреть после меня.

# Extension WikiEditor — говорит о начале правки кода.

# / Extension WikiEditor — говорит о конце добавляемого кода.

Установка дополнения VisualEditor

Вся документация по установке находится по ссылке Parsoid/Setup но к сожалению готового пакета для CentOS 7 нет. Мы будем использовать документацию Parsoid/Developer Setup в которой указаны варианты установки на другие системы. Все что надо для работы VisualEditor указано в документации по настройке Extension:VisualEditor. На мой взгляд документация немного не точна и размыта.

Установка Parsoid на CentOS 7

Работать Parsoid будет на той же машине что и MediaWiki. Не вижу смысла поднимать отдельно сервер на другой системе для которой есть готовые пакеты.

Установим все необходимые пакеты.

yum install nodejs npm vim-enhanced git policycoreutils-python
= вывод команды =
Ошибка: Пакет: 1:nodejs-6.11.1-1.el7.x86_64 (epel)
 Необходимо: http-parser >= 2.7.0
Ошибка: Пакет: 1:nodejs-6.11.1-1.el7.x86_64 (epel)
 Необходимо: libhttp_parser.so.2()(64bit)

Как видим установить не удалось из за того что http-parser должен быть >= 2.7.0.

Установим необходимый пакет.

yum install https://kojipkgs.fedoraproject.org//packages/http-parser/2.7.1/3.el7/x86_64/http-parser-2.7.1-3.el7.x86_64.rpm

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

yum -y install nodejs npm vim-enhanced git policycoreutils-python

После установки проверим необходимую версию node.

node --version
v6.11.1

Создадим папку opt в корне сервера куда и будем устанавливать.

mkdir /opt
cd /opt

Выполним клонирование.

git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid
= вывод команды =
Cloning into 'parsoid'...
remote: Counting objects: 502, done
remote: Finding sources: 100% (124/124)
remote: Getting sizes: 100% (69/69)
remote: Compressing objects: 100% (2232324/2232324)
remote: Total 49985 (delta 46), reused 49937 (delta 40)
Receiving objects: 100% (49985/49985), 12.28 MiB | 1.72 MiB/s, done.
Resolving deltas: 100% (40561/40561), done.

Запустим команду установки предварительно зайдя в эту папку с консоли.

cd /opt/parsoid
npm install
= вывод части команды =
npm WARN prefer global jshint@2.9.4 should be installed with -g

> dtrace-provider@0.8.5 install /opt/parsoid/node_modules/dtrace-provider
> node scripts/install.js

parsoid@0.7.1 /opt/parsoid
├── abbrev@1.0.9 
├── accepts@1.3.3 
├── acorn@5.0.3 

и тд. и тп.

Произведем тестирование.

npm test
= часть вывода команды =
Везде должно быть - No errors logged. 
В дальнейшем выводе везде должны стоять зелёные галочки!

В моем случае тестирование длилось 8 минут.

Перед тем как приступить к дальнейшей настройке скажем серверу где находится наш сайт.

vi /etc/hosts
192.168.1.101 wiki.sevo44.ru

Отредактируем файл localsettings.js для обратной совместимости, и поддержки не статическиx настроек. Сделаем копию и приведем файл к необходимому виду.

cp localsettings.example.js localsettings.js
vi localsettings.js
= вывод команды с необходимыми изменениями =
'use strict';

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

По пути wiki.sevo44.ru/api.php у вас обязательно должна открыться страница с заголовком «Справка MediaWiki API». Без открытия этой страницы работать Parsoid не будет.

Скопируем образец и настроим конфигурационный файл Parsoid.

cp config.example.yaml config.yaml
vi config.yaml
= вывод команды с необходимыми настройками =
worker_heartbeat_timeout: 300000

logging:
 level: info

services:
 - module: lib/index.js
 entrypoint: apiServiceWorker
 conf:
 # For backwards compatibility, and to continue to support non-static
 # configs for the time being, optionally provide a path to a
 # localsettings.js file. See localsettings.example.js
 localsettings: ./localsettings.js

# Set your own user-agent string
 # Otherwise, defaults to:
 # 'Parsoid/<current-version-defined-in-package.json>'
 #userAgent: 'My-User-Agent-String'

# Configure Parsoid to point to your MediaWiki instances.
 mwApis:
 - # This is the only required parameter,
 # the URL of you MediaWiki API endpoint.
 uri: 'http://wiki.sevo44.ru/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.sevo44.ru' # optional

Запустим Parsoid выполнив команду из папки /opt/parsoid.

cd /opt/parsoid
npm start
= вывод команды =
> parsoid@0.7.1 start /opt/parsoid
> service-runner

{"name":"parsoid","hostname":"lemp.sevo44.loc","pid":3320,"level":30,"levelPath":"info/service-runner","msg":"master(3320) initializing 4 workers","time":"2017-09-10T15:14:18.866Z","v":0}
Domain should be unique in ParsoidConfig#setMwApi calls: wiki.sevo44.loc
(It doesn't have to be an actual domain, just a unique string.)
{"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid":3330,"level":30,"levelPath":"info","msg":"loading ...","time":"2017-09-10T15:14:22.615Z","v":0}
{"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid":3330,"level":30,"levelPath":"info","msg":"ready on :8000","time":"2017-09-10T15:14:22.711Z","v":0}
Domain should be unique in ParsoidConfig#setMwApi calls: wiki.sevo44.loc
(It doesn't have to be an actual domain, just a unique string.)
{"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid":3340,"level":30,"levelPath":"info","msg":"loading ...","time":"2017-09-10T15:14:26.381Z","v":0}
/
Domain should be unique in ParsoidConfig#setMwApi calls: wiki.sevo44.loc
(It doesn't have to be an actual domain, just a unique string.)
{"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid":3360,"level":30,"levelPath":"info","msg":"loading ...","time":"2017-09-10T15:14:34.026Z","v":0}
{"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid":3360,"level":30,"levelPath":"info","msg":"ready on :8000","time":"2017-09-10T15:14:34.108Z","v":0}
{"name":"parsoid","hostname":"lemp.sevo44.loc","pid":3320,"level":40,"levelPath":"warn/service-runner","msg":"Startup finished","time":"2017-09-10T15:14:34.111Z","v":0}

Самое главное в выводе это отсутствие ошибок и фраза Startup finished говорящая о том что Parsoid успешно запущен.

Оставляем эту консоль в покое и открываем новую где и будем устанавливать VisualEditor. При работе или ошибках в работе визуального редактора мы сможем увидеть всё в выводе консоли. При настройке такой способ очень удобный. В последствии мы настроим автоматический запуск в системе CentOS 7 создав юнита parsoid.service для работы в systemd.

Создание сервиса parsoid.service для работы в SystemD

Создадим файл с необходимыми настройками.

vi /etc/systemd/system/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=nobody
Group=nobody
WorkingDirectory=/opt/parsoid
#EnvironmentFile=-/etc/parsoid/parsoid.env
ExecStart=/usr/bin/node /opt/parsoid/bin/server.js
KillMode=process
Restart=on-success
PrivateTmp=true
StandardOutput=syslog

Добавим в автозагрузку и запустим.

systemctl enable parsoid.service
systemctl start parsoid.service

Проверим как работает сервис.

systemctl status parsoid.service
● parsoid.service - Mediawiki Parsoid web service on node.js
 Loaded: loaded (/etc/systemd/system/parsoid.service; enabled; vendor preset: disabled)
 Active: active (running) since Вс 2017-09-10 23:29:06 MSK; 1min 4s ago
 Docs: http://www.mediawiki.org/wiki/Parsoid
 Main PID: 908 (node)
 CGroup: /system.slice/parsoid.service
 ├─ 908 /usr/bin/node /opt/parsoid/bin/server.js
 ├─2324 /usr/bin/node /opt/parsoid/node_modules/service-runner/service-runner.js
 ├─2384 /usr/bin/node /opt/parsoid/node_modules/service-runner/service-runner.js
 ├─2394 /usr/bin/node /opt/parsoid/node_modules/service-runner/service-runner.js
 └─2409 /usr/bin/node /opt/parsoid/node_modules/service-runner/service-runner.js

сен 10 23:29:28 lemp.sevo44.loc node[908]: {"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid"...":0}
сен 10 23:29:32 lemp.sevo44.loc node[908]: Domain should be unique in ParsoidConfig#setMwApi calls: ....loc
сен 10 23:29:32 lemp.sevo44.loc node[908]: (It doesn't have to be an actual domain, just a unique string.)
сен 10 23:29:32 lemp.sevo44.loc node[908]: {"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid"...":0}
сен 10 23:29:32 lemp.sevo44.loc node[908]: {"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid"...":0}
сен 10 23:29:36 lemp.sevo44.loc node[908]: Domain should be unique in ParsoidConfig#setMwApi calls: ....loc
сен 10 23:29:36 lemp.sevo44.loc node[908]: (It doesn't have to be an actual domain, just a unique string.)
сен 10 23:29:36 lemp.sevo44.loc node[908]: {"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid"...":0}
сен 10 23:29:36 lemp.sevo44.loc node[908]: {"name":"lib/index.js","hostname":"lemp.sevo44.loc","pid"...":0}
сен 10 23:29:36 lemp.sevo44.loc node[908]: {"name":"parsoid","hostname":"lemp.sevo44.loc","pid":908,...":0}
Hint: Some lines were ellipsized, use -l to show in full.

Видим что все хорошо.

Установка и настройка VisualEditor

Переходим в папку с расширениями и клонируем себе версию которая стабильная для нашей версии MediaWiki.

cd /web/sites/wiki.sevo44.ru/www/extensions/
git clone -b REL1_28 https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git
= вывод команды =
Cloning into 'VisualEditor'...
remote: Counting objects: 2101, done
remote: Finding sources: 100% (109865/109865)
remote: Getting sizes: 100% (9091/9091)
remote: Compressing objects: 100% (368092/368092)
remote: Total 109865 (delta 87211), reused 109794 (delta 87171)
Receiving objects: 100% (109865/109865), 20.18 MiB | 1.18 MiB/s, done.
Resolving deltas: 100% (87211/87211), done.

Перейдем в папку VisualEditor и выполним важную команду без которой по заверению разработчиков визуальный редактор работать не будет!

cd ./VisualEditor
git submodule update --init
= вывод команды =
Submodule 'lib/ve' (https://gerrit.wikimedia.org/r/p/VisualEditor/VisualEditor.git) registered for path 'lib/ve'
Cloning into 'lib/ve'...
remote: Counting objects: 3549, done
remote: Finding sources: 100% (108614/108614)
remote: Getting sizes: 100% (5062/5062)
remote: Compressing objects: 100% (468795/468795)
remote: Total 108614 (delta 91819), reused 108561 (delta 91798)
Receiving objects: 100% (108614/108614), 20.37 MiB | 1.29 MiB/s, done.
Resolving deltas: 100% (91819/91819), done.
Submodule path 'lib/ve': checked out '5fc8c7f0fe9da80aa97c456fa323acb8685bb792'

На сайте разработчика сказано с какими версиями скинов визуальный редактор совместим. Мне нравится стандартный Vector его и будем использовать.

Добавим необходимые настройки в конфугационный файл.

vi /web/sites/wiki.sevo44.ru/www/LocalSettings.php
= Необходимое дополнение =
# Extension VisualEditor
wfLoadExtension ( 'VisualEditor' );

// Включение по умолчанию для всех , 
$wgDefaultUserOptions['visualeditor-enable'] = 1;

// Дополнительно: Набор VisualEditor по умолчанию для анонимных пользователей 
// в противном случае им придется перейти на VE 
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";

// Не позволяют пользователям отключить его 
$wgHiddenPrefs[] = 'visualeditor-enable';

// ВАРИАНТ: Включить экспериментальный код VisualEditor о функциях 
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;

# Для Parsoid
$wgVirtualRestConfig['modules']['parsoid'] = array(
 // URL to the Parsoid instance
 // Use port 8142 if you use the Debian package
 'url' => 'http://wiki.sevo44.ru:8000',
 // Parsoid "domain", see below (optional)
 'domain' => 'wiki.sevo44.ru',
 // Parsoid "prefix", see below (optional)
 'prefix' => 'wiki.sevo44'
);
# /Для Parsoid
# /Extension VisualEditor

После всех проделанных действий вы увидите напротив статьи две ссылки «Править» и «Править вики-текст». Дальше рассказывать нет смысла сами всё поймёте.

Доступ к локальному сайту из интернета

Для доступа с интернета необходимо сделать следующее:

  1. Иметь статический IP;
  2. Пробросить до локальной машины необходимый 443 порт;
  3. Сделать запись в DNS указав необходимый IP и доменное имя.

Предпочитаю использовать DNS для домена компании Yandex. Достаточно добавить запись «wiki — A — IP» и через несколько часов всё заработает.

Вывод

Каждый сайт создается для выполнения определенных задач. Ведение общей документации большого количества людей где всегда можно посмотреть всю историю работы с каждой страницей не зря завоевал большого количества пользователей этого ресурса. Упускаю количество дополнений и удобств которые могут сильно улучшить возможности сайта.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Хотите сказать денежное спасибо? Подарите денежку!