Достаточно много статей, включая официальную документацию, написано про WSL (Windows Sub Linux). Официально из документации Windows:
Подсистема Windows для Linux (WSL) — это функция Windows, которая позволяет запускать среду Linux на компьютере Windows без необходимости отдельной виртуальной машины или двойной загрузки. WSL предназначен для обеспечения простого и продуктивного взаимодействия для разработчиков, которые хотят одновременно использовать Windows и Linux.
WSL крайне полезный инструмент, когда не надо разворачивать отдельную виртуальную машину для создания локального веб-сервера для разработки (LEMP, LAMP, WAMP и т.п.). На что стоит обратить внимание и как устанавливать и удалять дистрибутивы.
Прежде, еще немного справки. WSL использует собственную файловую систему, отделённую от файловой системы Windows (так как в Linux дискам не присваиваются буквы, а предоставляются точки монтирования). Корень файловой системы - / - точка монтирования корневого раздела (или папки в случае с WSL). WSL использует файловую систему Windows как смонтированный диск, и доступ к какому-либо каталогу (к примеру, к диску D:\) в Windows из WSL можно получить по пути /mnt/d/.
Сначала нужно активировать (установить) подсистему. Сделать это можно разными способами под Windows 10/11. Изначально я бы посоветовал поставить неплохое приложение для работы с терминалами от Microsoft -> Terminal Windows (Open Source приложение!) : https://aka.ms/terminal. Для установки минимальные требования к ОС: Windows 10 2004 (build 19041) или старше.
Ну так вот, под администратором запускаем терминал и вводим команду:
wsl --install
Сразу рекомендую на сегодняшний день перевести версию WSL на последнюю, если по умолчанию она такой не установилась - 2. В ней для работы связки Linux-Windows гораздо удобнее и лучше, включая автоматический проброс сетевых адресов с localhost
на "виртуальный", получаемый по DHCP. В Windows можно получить доступ к приложениям, запущенным в Linux. Например, доступ к сайту можно получить как обычно - localhost:port
. Однако в некоторых случаях следует использовать IP-адрес для подключения (ip:port), который можно взять в файле /etc/resolv.conf
- из-за того, что в WSL 2 используется собственный виртуальный адаптер Ethernet со своим уникальным IP-адресом. В первой версии, если мне не изменяет память, придется это дело настраивать руками. Не стоит на это тратить время, как мне кажется, и сразу установить вторую версию.
Разобраться с версионностью можно командами:
//Просмотр версии и статуса работы подсистем
wsl -l -v
//ОТВЕТ:
NAME STATE VERSION
* Ubuntu-24.04 Stopped 2
//Изменить версию WSL для дистрибутива Ubuntu-20.04 можно командой где 2 в конце номер версии
wsl --set-version Ubuntu-20.04 2
Через установки версии WSL можно делать и апгрейд с 1 до 2 версии и даунгрейд в обратном случае.
Посмотреть все доступные дистрибутивы для установки можно командой:
wsl -l --online
//Ниже приведен список допустимых дистрибутивов, которые можно установить.
//Для установки воспользуйтесь командой "wsl.exe --install <Distro>".
//ОТВЕТ на начало 2024 года такой:
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed openSUSE Tumbleweed
Развернуть желаемый дистрибутив можно командой:
// Например установка Ubuntu 24.04 LTS
wsl.exe --install Ubuntu 24.04 LTS
После установки новая подсистема попросит вас ввести классическую пару логин/пароль для учетной записи с наследованием прав root
.
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
Вот и всё, теперь через команду sudo можно выполнить штатное обновление и апгрейд установленной подсистемы ОС:
sudo apt-get update && apt-get upgrade
Готовый набор LAMP сервера можно установить командой:
sudo apt-get install lamp-server^
Допустим у вас что-то пошло не так в части конфигурирования Linux и вам захотелось все начать с чистого листа, т.е. удалить полностью подсистему с Linux и заново запустить процесс. Можно это сделать командами (сначала просмотр, потом удаление по имени):
//Смотрим что у нас развернуто
wsl -l -v
//Удаляем развернутую подсистему начисто
wsl --unregister Ubuntu-24.04 LTS
//ОТВЕТ от исполнения команды
Отмена регистрации.
Операция успешно завершена.
Существует много разных вариантов настройки LAMP и в скором времени я поделюсь своим сценарием развертывания и настройки для работы с php-фреймворком Laravel. Важный момент - лучше разрабатывать проект в рамках файловой системы подсистемы Linux, нежели делать маппинг через "мягкие" ссылки на каталог проекта в файловой системы Windows, т.к. в дальнейшем гораздо меньше будет проблем с "деплоем в продакшн" на настоящий веб-сервер из-за разрешений и прав на файлы и каталоги.