Laravel Sail под Windows

в 12:10, , рубрики: framework, laravel, laravel sail, php, sail, windows, Windows 10, windows 11, WSL, WSL2, руководство
Laravel Sail под Windows - 1

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

Затем переходим в раздел Resources > WSL Integration и активируем добавленный раннее дистрибутив:

Laravel Sail под Windows - 3

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

И жмём 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

Сперва необходимо войти в подсистему WSL выполнив команду:

wsl
Laravel Sail под Windows - 6

Также стоит заметить, что алиас 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

Запускаем контейнеры командой sail up и ждём завершения компиляции:

Laravel Sail под Windows - 8

Переходим на страницу http://127.0.0.1 и видим наше приложение.

Laravel Sail под Windows - 9

В консоли также будет видно логирование запросов. Конечно, если запуск производился командой sail up.

Laravel Sail под Windows - 10

Для вызова различных artisan-команд в контейнере можете пользоваться алиасом sart. Например:

sart queue:work

Всё. Удачи в разработке 👋

Автор: Andrey Helldar

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js