Все статьи Дата обновления: 06.07.2025

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

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

Автор материала Артем Менченя
Автор материала

Артем Менченя

Co-founder | CTO. Руковожу технической командой и участвую на всех стадиях разработки продукта.
Установка локального WSL2 сервера (Ubuntu, Nginx, PHP, 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

Читайте также

Вопросы на собеседовании - Laravel

Laravel - один из самых популярных PHP-фреймворков, который широко используется для разработки веб-приложений. Если вы готовитесь к собеседованию на должность Laravel-разработчика, то, вероятно, ищете полезную информацию и советы для подготовки. В этой статье мы представляем несколько вопросов, которые могут быть заданы на собеседовании, и рассматриваем ответы на них. Мы покроем такие темы, как архитектура фреймворка, маршрутизация, ORM, миграции, тестирование и безопасность. Надеемся, что эта статья поможет вам подготовиться к собеседованию и получить работу, о которой вы мечтаете.

Установка Laravel Echo в Ubuntu 20.04 через Socket.io (без Pusher)

Уведомления о новых событиях, реализация чатов, обновление UI при изменении данных на сервере… С помощью Laravel Echo можно решать огромное количество задач. Но часто реализацию этих функций делают с помощью платных сервисов, таких как Pusher. Попробуем сделать это по-другому. В этой статье мы запустим Laravel Echo на локальной Windows машине (на WSL2) и на прод. сервере с Ubuntu 20.04. И все это без платного стороннего ПО.

Как не утонуть в правках: гайд по эффективной коммуникации с разработчиками

Эта статья - практический гайд по тому, как наладить эффективную коммуникацию между заказчиком и разработчиком. Вы узнаете, как избежать хаоса в правках, формулировать задачи понятно и проверяемо, минимизировать технический долг и сохранить фокус команды. Подходит для менеджеров, дизайнеров, контентщиков и всех, кто работает с IT-командами.