Manual:Running MediaWiki on Windows Subsystem for Linux/ru

Это руководство по установке и запуску на Windows 10 с подсистемой Windows для Linux (WSL). Для руководства по установке 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, запущенный на веб сервере, имеет доступ к вашему диску  и так же может изменять файлы или запускать программы Windows.

It is strongly recommended to use this for development purposes only, not for server deployments, and to limit network access to the web server to avoid accidentally opening anything to the network. Only run MediaWiki and extensions that you trust.

WSL versions
There are two major versions of WSL available: the original which emulates the Linux kernel ABI as a Windows driver, and the newer WSL2 which uses a specialized Hyper-V virtual machine to run a native Linux kernel. While MediaWiki should work with WSL1, the May 2020 Update introduces WSL 2 as an alternative. It is possible to freely upgrade/downgrade from WSL1 and WSL2.

WSL2 is compatible with more software, but can complicate some integration scenarios a little as the VM has its own IP address separate from. (Servers are port-forwarded to, so this mostly works ok for setting up a web server.)

Note that WSL2 requires hardware support for virtualization and uses Hyper-V under the hood, but is available on Windows 10 Home as well as Windows 10 Pro. WSL1 doesn't require virtualization. This will make it easier for developers to install on existing machines without spending money on a Pro upgrade, but may have compatibility problems with other VM software like VirtualBox (v6.0 is the earliest version that can coexist with Hyper-V based products).

Setup

 * Go to Control Panel, Programs and Features, then the link on the left side Turn Windows features on or off, or run.
 * Check "Windows Subsystem for Linux" and, for WSL2, "Virtual Machine Platform"
 * let it install and reboot
 * Go to 'Microsoft Store' and search for the latest "Ubuntu" Linux distribution
 * install it!
 * Debian is also available, but might be slightly different in some respects.
 * Click on the "Ubuntu" icon in Start menu or enter  from a PowerShell session, (notice how the prompt changes from Windows to Linux style).
 * follow the on-screen prompts about setting up a Linux username and password
 * let it extract

WSL Setup
To use WSL2 mode, exit and run in a PowerShell session:



This may take a few minutes to convert filesystems.

To verify which version of WSL is in use do:



Dependency setup
First, ensure the system image is up to date: run  in the Ubuntu terminal. This may take a few minutes after first installation.

Install deps:

Running services
You may have to manually start up services:


 * on WSL1 this may prompt Windows Firewall about the listening port. Allow it, but consider limiting to "private" networks for safety.
 * on WSL1 this may prompt Windows Firewall about the listening port. Allow it, but consider limiting to "private" networks for safety.
 * on WSL1 this may prompt Windows Firewall about the listening port. Allow it, but consider limiting to "private" networks for safety.

You may have to jump through some hoops to set the root password on mysql:


 * Run mysql as root:
 * In the mysql terminal run:
 * - If that fails try  instead.
 * - This must match with the wiki database in the install process
 * Now you can use username 'root', password 'your-password-here' when logging in from the installer
 * - This must match with the wiki database in the install process
 * Now you can use username 'root', password 'your-password-here' when logging in from the installer
 * Now you can use username 'root', password 'your-password-here' when logging in from the installer
 * Now you can use username 'root', password 'your-password-here' when logging in from the installer
 * Now you can use username 'root', password 'your-password-here' when logging in from the installer
 * Now you can use username 'root', password 'your-password-here' when logging in from the installer

MediaWiki setup
Clone things from git as you would on a Linux server.

Apache on Ubuntu is set by default to point at  for the docroot, you can create a dir under there to check out or reconfigure Apache with a custom path. I recommend  for consistency with convention that   is the main script path.


 * - Don't miss the dot at the end.
 * - Don't miss the dot at the end.
 * - Don't miss the dot at the end.
 * - Don't miss the dot at the end.
 * - Don't miss the dot at the end.

If git has trouble checking out over https, use a ssh developer login. Set up your SSH key in gerrit as with a Linux system, and check out as:



Extensions
For example (from skins/):



Don't forget to run  in the MW directory, and for any extension dirs that require it.

Run the web installer in a browser at ; use your name and database here for installation.

When the installer prompts you to download  at the end, save it into   or equivalent and you will be able to access your wiki!

Job queue
You may want or need to manually run the job queue runner. Ideally this should be done via the web server, but in a pinch you can fire up the Ubuntu terminal and run:



Other configuration
For the most part the WSL environment will look like any other Ubuntu or Debian system, except that services won't automatically start and must be manually run on every boot. See Running MediaWiki on Debian or Ubuntu for general instructions on running on these operation systems.

Editing files
From the Windows side you can access Linux files in, so Windows text editors that are ok with Unix line endings can be used to work with your code and config.

Visual Studio Code also has a WSL remoting extension which can integrate more directly with the WSL environment, which might be good for using PHP linting in the editor.

However note the warnings at Do not change Linux files using Windows apps and tools

Or, you can use your favorite terminal-based editors.

Open issues

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