Starting with Windows 10 version 2004 and above, to install WSL, you need to open the console with administrator rights and enter the command:
This command allows you to enable the required components, download the latest Linux kernel, set WSL 2 as the default component, and install the Linux distribution.
The above command only works if WSL is not installed at all.
If you have run the command
wsl --installand see the WSL help text, try executing
wsl --list --onlineto view a list of available distributions. Then do
wsl --install -d <DistroName>to install the distribution.
wsl --list displays a list of available distributions. Check if the required distribution is not installed by default, you can do this with the command
wsl --set-default <DistroName>.
For more information on other ways to install WSL, see here.
If the system does not have docker desktopwe put it.
Everything is simple for him: “further – further – further – ready.”
If you didn’t enable WSL 2 components during installation, don’t worry, you can do it later.
After starting Docker, go to its settings and on the tab
Use the WSL 2 based engine:
Then we go to the section
Resources > WSL Integration and activate the distribution added earlier:
Laravel Sail can be used both in a new project and connected to an existing one. Laravel Sail works with PHP version 7.4 and up.
We will use a fresh project using installerwhich will install Laravel 9 with the Sail dependency:
laravel new blog
Since all commands must start with
vendor/bin/sail, specify an alias for simplicity. To do this, in a file
%USERPROFILE%\.bash_profile let’s add a line:
Restart the console, go to the folder with the created project and initialize the Sail configuration:
php artisan sail:install
Separate by commas, specify the services required for the application. For example,
0,3 install mysql and redis:
And we press
This command will create a file
docker-compose.yml in the root of the project and write the redis and mysql configs in the file
If you need to run several projects at the same time, in the file
.env you can set the key
APP_PORT with port number.
For example, with the value
APP_PORT=1234 application will be available at
Now you can proceed to the launch and here we have two options:
sail up sail up -d
sail up will start the containers in “live” mode, that is, when the console is closed, the connection will also be closed, and
sail up -d will run them in the background and the containers will run until the command is given
sail down or the docker itself will not be unloaded.
You can’t just run Sail on Windows because it uses Linux components. That is why during the installation phase of WSL, a distribution kit was installed, for example, Ubuntu.
First you need to log into the WSL subsystem by running the command:
It is also worth noting that the alias
sail we installed it on Windows and it does not apply to the subsystem, so we will set it to the subsystem as well.
To do this, run the command
nano ~/.bashrc and add the following lines to the end of the file:
alias sail="[ -f sail ] && bash sail || bash vendor/bin/sail" alias sart="[ -f sail ] && bash sail artisan || bash vendor/bin/sail artisan"
To apply the changes, exit the subsystem with the command
exit and re-enter it:
Launch containers with the command
sail up and wait for the compilation to complete:
Let’s go to the page http://127.0.0.1 and see our application.
The console will also show the logging of requests. Of course, if the launch was performed by the command
To call various artisan-commands in container you can use alias
sart. For example:
Everything. Good luck with development 👋