Руководство:Установка MediaWiki на подсистеме Windows для Linux

This page is a translated version of the page Manual:Running MediaWiki on Windows Subsystem for Linux and the translation is 99% complete.
Other languages:
Installation guides
FreeBSD
GNU/Linux
- ALT Linux
- Arch Linux
- Debian or Ubuntu
- Fedora
- Gentoo
- Mandriva
- Red Hat Enterprise Linux or CentOS
- Slackware
macOS
NetWare
Solaris
- Solaris 11 / opensolaris
- Solaris 10
Windows
- Windows Server 2019
- Windows Server 2016
- Windows Subsystem for Linux
on a stick
- Uniform Server
- XAMPP
Sourceforge.net

Это руководство по установке и запуску MediaWiki на Windows 10 с подсистемой Windows для Linux (WSL). Для руководства по установке MediaWiki на Windows смотрите Руководство:Установка MediaWiki на Windows .

Общая информация

Windows 10 включает в себя слой совместимости с Linux, Подсистему Windows для Linux, созданную для веб-разработчиков, которым требуеттся окружение Linux/Unix на компьютере под управлением Windows. Ее можно использовать для запуска MediaWiki как на устройстве с Linux, с меньшими расходами и большей интеграцией по сравнению с установкой на виртуальной машине.

Это может стать неплохим решением для ноутбуков на Windows 10 с небольшими ресурсами RAM и CPU. Однако, WSL требуется 64-битная редакция Windows 10 (x64 или ARM64) и она не может быть запущена на 32-битных версиях системы.

Вопросы безопасности

MediaWiki - это веб приложение, а следовательно данные установки создадут веб сервер, запущенный с вашего компьютера и доступный другим компьютерам в сети. В частности, учтите, что PHP и другой код Linux, запущенный на веб сервере, имеет доступ к вашему диску C:\ и так же может изменять файлы или запускать программы Windows.

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

Версии WSL

На данный момент доступны две версии WSL: оригинальная, которая эмулирует ядро ABI Linux как драйвер Windows, и новая WSL 2, использующая специализированную виртуальную машину Hyper-V для запуска нативного ядра Linux. Хотя MediaWiki работает и на WSL1, майское обновление 2020 добавило WSL2 в качестве альтернативы. Между WSL1 и WSL2 можно свободно переключаться в любое время.

WSL2 совместима с большим количеством программ, но может несколько усложнить сценарии интеграции, так как у виртуальный машины свой IP адрес, отличный от localhost. (Серверва перенаправляют порты на localhost, чего достаточно для работы веб сервера.)

Необходимо учесть, что WSL2 требуется поддержка виртуализации аппаратным обеспечением и использует Hyper-V "под капотом", но доступна как на Windows 10 Pro так и на Windows 10 Home. WSL1 виртуализация не требуется. Это упрощает разработчикам процесс установки, так как не требуется улучшать систему до Pro версии, но может вызывать некоторые проблемы совместимости с другими виртуальными машинами, например VirtualBox (версия 6.0 - самая ранняя версия, совместимая с продуктами, основанными на Hyper-V).

Установка

  • Откройте Панель управления, Программы, Программы и компоненты, затем нажмите ссылку в левой части окна Включение или отключение компонентов Windows, либо запустите C:\Windows\System32\OptionalFeatures.exe.
    • Поставьте галочку у пункта "Подсистема Windows для Linux"
    • Установится обновление и будет выполнен перезапуск
  • Откройке 'Microsoft Store' и найдите в поиске последнюю версию дистрибутива Ubuntu Linux
    • Установите его!
    • Дистрибутив Debian так же доступен, но шаги установки могут несколько отличаться.
  • Нажмите иконку Ubuntu в меню Пуск или введите wsl в PowerShell (обратите внимение как командная строка изменится со стиля Windows на Linux).
    • Следуйте указаниям в терминале для создания пользователя и пароля Linux.
    • Дождитесь окончания установки.

Настройка WSL

Чтобы использовать WSL2, выйдите и в новом окне PowerShell введите:

  • wsl --set-version Ubuntu 2

Может потребоваться пара минут для конвертации файловых систем.

Чтобы узнать, какая версия WSL используется введите:

  • wsl -l -v

Установка зависимостей

Для начала, убедитесь, что система полностью обновлена: введите sudo apt update && sudo apt upgrade -y в терминале Ubuntu. Установка обновлений может занять пару минут после первого запуска.

Установите зависимости: sudo apt install apache2 composer git git-review imagemagick mysql-client mysql-server php php-apcu php-cli php-gd php-intl php-mbstring php-mysql php-xml zip.

Запуск сервисов

Возможно, потребуется запустить сервисы вручную:

  • sudo service mysql start
  • sudo service apache2 start
    • на WSL1 эта команда может вызвать окно брандмауэра Windows о прослушивании портов. Разрешите запрос, но ограничьте "частными" сетями для безопасности.

Для настройки пароля root пользователя в mysql потребуется выполнить несколько команд:

  • Запустите mysql от имени root:
    • sudo mysql
  • В терминале mysql введите:
    • use mysql;
    • alter user 'root'@'localhost' identified by 'your-password-here'; - Если возникнет ошибка, повробуйте ввести update user set authentication_string=password('your-password-here'), plugin='mysql_native_password' where user='root';.
    • create user 'your_name'@'localhost' identified by 'your-password-here';
    • create database 'database_name'; - Это название базы данных, которое будет вводиться при установке вики.
    • grant all on 'database_name'.* to 'your_name'@'localhost';
    • flush privileges;
    • exit
  • Теперь вы можете использовать пользователя root и указанный пароль для подключения из установщика.

Установка MediaWiki

Скопируйте данный git командами Linux server.

Apache на Ubuntu по умолчанию настроен на папку /var/www/html в качестве корневой, можно создать подпапку здесь, либо перенастроить Apache на другой путь. Рекомендуется использовать путь /var/www/html/w для соответствия конвенции, что /w/index.php - путь к файлу основного скрипта.

Если у git проблема с загрузкой по https, используйте логин разработчика ssh. Настройте ключ SSH в gerrit как в системе Linux и загрузите через:

  • git clone ssh://your-user-name@gerrit.wikimedia.org:29418/mediawiki/core.git .

Расширения

Например (для skins/):

Не забудьте запустить composer update --no-dev в папке MediaWiki и для всех папок расширений, для которых это требуется.

Запустить веб установщик в браузере по адресу http://localhost/w/; используйте ранее созданного пользователя mysql для подключения к базе данных.

Когда установщик предложит вам скачать LocalSettings.php в конце установки, сохраните его в папку \\wsl$\Ubuntu\var\www\html\w или указанной в Apache и вы получите доступ к вики!

Очередь задач

Возможно, вам потребуется вручную запуститьмастер очереди задач. В идеале это должен сделать веб сервер, но в случае необходимости можно сделать это в терминале Ubuntu:

  • cd /var/www/html/
  • php maintenance/runJobs.php

Дополнительные настройки

По большей части окружение WSL работает так же как другие системы Ubuntu или Debian, за исключением того, что сервисы не будут запускаться автоматические и должны быть запущены вручную после каждого запуска. Смотри Руководство по установке MediaWiki на Debian и Ubuntu для общих инструкций по управлению на этих операционных системах.

Редактирование файлов

Со стороны Windows можно получить доступ к файлам Linux в папке \\wsl$\Ubuntu, так текстовые редакторы Windows, работающие с Unix, можно использовать для работы с кодом и файлами конфиграции.

В Visual Studio Code так же имеется расширение для WSL, которое может интегрироваться напрямую с окружением WSL, что может использоваться для подсветки синтаксиса PHP.

Однако, обратите внимание на предупреждения не менять системные файлы Linus в Windows на даннной странице

Или можете использовать любой терминальный редактор.

Известные проблемы

  • is the process timeout issue in TimedMediaHandler a common prob or unique to ARM64? (test me)