![Laravel Sail под Windows - 1 Laravel Sail под Windows - 1](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows.png)
WSL
Начиная с Windows 10 версии 2004 и выше для установки WSL нужно открыть консоль с правами администратора и ввести команду:
wsl --install
Эта команда позволяет включить необходимые компоненты, скачать последнюю версию ядра Linux, установить WSL 2 в качестве компонента по-умолчанию и установить дистрибутив Linux.
Приведённая выше команда работает только если WSL не установлена вообще.
Если Вы выполнили команду
wsl --install
и видите текст справки WSL, попробуйте выполнитьwsl --list --online
, чтобы просмотреть список доступных дистрибутивов. Затем выполнитеwsl --install -d <DistroName>
для установки дистрибутива.
Команда wsl --list
выводит список доступных дистрибутивов. Проверьте если нужный дистрибутив не установлен по-умолчанию, сделать это будет можно командой wsl --set-default <DistroName>
.
Более подробно о других способах установки WSL можно прочитать здесь.
Docker Desktop
Если в системе не установлен Docker Desktop, ставим его.
У него всё просто: "далее - далее - далее - готово".
Если во время установки не включили компоненты WSL 2 - не страшно, это можно сделать впоследствии.
После запуска Docker заходим в его настройки и на вкладке General
активируем Use the WSL 2 based engine
:
![Laravel Sail под Windows - 2 Laravel Sail под Windows - 2](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-2.png)
Затем переходим в раздел Resources > WSL Integration
и активируем добавленный раннее дистрибутив:
![Laravel Sail под Windows - 3 Laravel Sail под Windows - 3](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-3.png)
Laravel Sail
Laravel Sail возможно использовать как в новом проекте, так и подключать в существующий. Laravel Sail работает с PHP версии 7.4 и выше.
Обратите внимание, что в системе должен быть установлен PHP версии не ниже поддерживаемой Вашим приложением, а также Composer.
Удобнее всего первоначальные шаги выполнять именно из-под Windows, так как устанавливать и настраивать окружение значительно проще чем внутри wsl контейнера.
Мы будем использовать свежий проект используя инсталлятор, который установит Laravel 9 с зависимостью Sail:
laravel new blog
Так как все команды нужно начинать с vendor/bin/sail
, укажем алиас для упрощения. Для этого в файл %USERPROFILE%.bash_profile
добавим строку:
alias sail='vendor/bin/sail'
Перезапускаем консоль, переходим в папку с созданным проектом и инициализируем конфигурацию Sail:
php artisan sail:install
Через запятую указываем сервисы, необходимые для приложения. Например, 0,3
установит mysql и redis:
![Laravel Sail под Windows - 4 Laravel Sail под Windows - 4](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-4.png)
И жмём enter
.
Эта команда создаст файл docker-compose.yml
в корне проекта и пропишет конфиги redis и mysql в файле .env
.
При необходимости одновременного запуска нескольких проектов, в файле .env
можно задать ключ APP_PORT
с номером порта.
Например, со значением APP_PORT=1234
приложение будет доступно по адресу http://127.0.0.1:1234
.
Теперь можно переходить к запуску и здесь у нас есть два варианта:
sail up
sail up -d
Первый вариант, sail up
запустит контейнеры в "живом" режиме, то есть при закрытии консоли закроется и соединение, а sail up -d
запустит их в фоновом режиме и контейнеры будут работать до тех пор, пока не будет передана команда sail down
либо не будет выгружен сам докер.
Просто так в Windows нельзя запустить Sail, так как он использует компоненты Linux. Именно поэтому на этапе установки WSL устанавливался дистрибутив, например, Ubuntu.
![Laravel Sail под Windows - 5 Laravel Sail под Windows - 5](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-5.png)
Сперва необходимо войти в подсистему WSL выполнив команду:
wsl
![Laravel Sail под Windows - 6 Laravel Sail под Windows - 6](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-6.png)
Также стоит заметить, что алиас sail
мы устанавливали в Windows и он не распространяется на подсистему, поэтому зададим его и подсистеме.
Для этого выполните команду nano ~/.bashrc
и добавьте в конец файла строки:
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
alias sart='[ -f sail ] && bash sail artisan || bash vendor/bin/sail artisan'
Для применения изменений выйдем из подсистемы командой exit
и заново в неё войдем:
![Laravel Sail под Windows - 7 Laravel Sail под Windows - 7](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-7.png)
Запускаем контейнеры командой sail up
и ждём завершения компиляции:
![Laravel Sail под Windows - 8 Laravel Sail под Windows - 8](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-8.png)
Переходим на страницу http://127.0.0.1 и видим наше приложение.
![Laravel Sail под Windows - 9 Laravel Sail под Windows - 9](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-9.png)
В консоли также будет видно логирование запросов. Конечно, если запуск производился командой sail up
.
![Laravel Sail под Windows - 10 Laravel Sail под Windows - 10](https://www.pvsm.ru/images/2022/04/03/Laravel-Sail-pod-Windows-10.png)
Для вызова различных artisan-команд в контейнере можете пользоваться алиасом sart
. Например:
sart queue:work
Всё. Удачи в разработке 👋
Автор: Andrey Helldar