ilavista
Все статьи

Установка локального WSL2 сервера (Ubuntu 20.04, Nginx, PHP8, MySQL)

В этой статье мы настроим рабочее окружение для разработки веб-проектов на основе Windows Subsystem for Linux (WSL2). Данный подход намного более гибкий, чем установка готовых пакетов, например WAMP или Open Server. Он также проще и не так сильно нагружает систему, как Docker или создание отдельных виртуальных машин.

Установка локального WSL2 сервера (Ubuntu 20.04, Nginx, PHP8, MySQL)

Привет. В этой статье мы настроим рабочее окружение для разработки веб-проектов на основе Windows Subsystem for Linux (WSL2). Данный подход намного более гибкий, чем установка готовых пакетов, например WAMP или Open Server. Он также проще и не так сильно нагружает систему, как Docker или создание отдельных виртуальных машин. Вообщем, одни плюсы. Давайте приступать.

Системные требования

Для корректной работы WSL2 необходимо, чтобы ваша система отвечала некоторым требованиям:

1. На устройстве должна быть установлена Windows 10 (сборки не ниже 19041) или Windows 11. Версию системы можно посмотреть по пути:

en: Start > Settings > System > About

ru: Пуск > Параметры > Система > О системе

Версия Windows для работы с WSL

2. Устройство должно поддерживать виртуализацию Hyper-V и функция должна быть включена. Для того, чтобы проверить, есть ли в системе Hyper-V и включена ли эта функция, найдите в Пуск следующий пункт:

en: Turn windows features on or off

ru: Включение или отключение компонентов Windows

Настройки Windows для работы с WSL

3. Должны быть включены компоненты WSL. Активировать их нужно также в этой панели.

Дополнительные настройки Windows для работы с WSL

Если вы включали какие-либо компоненты, стоит перезагрузить компьютер. Если все требования выполнены мы можем приступать к установке.

Установка

Для установки и настройки компонентов мы будем использовать Windows PowerShell. Найдите программу в меню Пуск и запустите от имени Администратора.

Windows PowerShell

Команда для установки следующая:

wsl --install - пока не выполняйте эту команду

Команда включит функционал для запуска WSL и установки дистрибутива Ubuntu. Дистрибутив по умолчанию можно изменить, в таком случае команда будет выглядеть так:

wsl --install -d Distribution_Name

Чтобы узнать список возможных дистрибутивов, выполните команду

wsl --list --online

И уже после этого установите WSL для необходимой версии. Мы как правило устанавливаем Ubuntu 20.04 LTS

wsl --install -d Ubuntu-20.04

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

Использование

Для запуска и взаимодействия с образом на повседневной основе удобнее всего пользоваться программой Windows Terminal. Для запуска компонентов WSL2 и работы с образом после установки в выпадающем списке возможных программ выберите установленный вами образ:

Windows Terminal для работы с WSL2

Также в настройках программы можно выставить программу, которая будет запускаться по умолчанию при запуске Windows Terminal:

Настройки Windows Terminal для работы с WSL2

Далее нам необходимо установить все компоненты, необходимые нам для локальной разработки. Сделать это можно, руководствуясь нашей статьей Развертывание Laravel проекта на сервере Ubuntu 20.04. Здесь нужно сделать несколько важных замечаний:

1. WSL образ не запускает установленные пакеты после установки. Например, после установки mysql вам нужно запустить этот пакет командой sudo service mysql start. И так с любым другим пакетом.

2. WSL не запускает установленные пакеты при запуске системы.. После перезагрузки компьютера и старта WSL образа вам нужно запустить все необходимые для вас пакеты. Чтобы не писать каждый раз все эти команды, проще в корневой папке (папке ~), откуда стартует ваш образ, создать файл start.sh:

#!/bin/bash
service nginx start
service mysql start
service php8.0-fpm start
service php8.1-fpm start
service php7.4-fpm start
service redis-server start
service cron start

Далее сохраняем этот файл. Теперь после старта WSL для того, чтобы выполнить все команды из этого файла, нам нужно выполнить команду:

sudo sh start.sh

Все, мы готовы к работе.

Последнее, что нам осталось - прописать нужный нам домен (домены) в файле C:\Windows\System32\drivers\etc\hosts (не забывайте открывать от имени Администратора) следующим образом:

127.0.0.1    ilavista.test
::1                 ilavista.test

После этого домен ilavista.test будет вести на локальную машину, таким образом его можно будет обработать Nginx (или Apache) вашего WSL образа.

Полезные команды

Немедленно завершает работу всех запущенных дистрибутивов и утилиты виртуальной машины WSL 2. Эта команда может потребоваться в случаях, когда требуется перезапустить среду виртуальной машины WSL 2, например, для изменения ограничений использования памяти или внесения изменений в ваш файл .wslconfig.

wsl --shutdown

Завершить указанный дистрибутив или остановить его запуск.

wsl --terminate Distribution_Name

Экспортирует дистрибутив в tar-файл.

wsl --export Distribution_Name FileName

Импортирует указанный tar-файл в качестве нового дистрибутива.

wsl --import Distribution_Name Install_Location FileName

Список дистрибутивов Linux, установленных на вашем компьютере с Windows, включая состояние (запущен дистрибутив или остановлен) и версию WSL, на которой запущен дистрибутив (WSL 1 или WSL 2).

wsl --list --verbose

Общая информация о вашей конфигурации WSL, такую как тип дистрибутива по умолчанию, дистрибутив по умолчанию и версия ядра.

wsl --status

Вручную обновите версию вашего ядра WSL Linux. Вы также можете использовать команду: wsl --update rollback для отката к предыдущей версии ядра WSL Linux.

wsl --update