← Todas as anotações
LaravelPHPWSL

Baixando Laravel no Windows 11: instalação com WSL 2

Uma anotação passo a passo para preparar Ubuntu no WSL 2, instalar PHP 8.5, Composer e Node 24 e abrir seu primeiro projeto Laravel 13 no Windows 11.

Reuni aqui um roteiro para começar com Laravel no Windows 11 usando um ambiente Linux. A ideia é chegar a um projeto aberto no navegador e entender onde cada comando deve ser executado.

Nesta anotação, escolhi Laravel 13, PHP 8.5, Node 24 LTS e SQLite. O Windows continua sendo o sistema principal; Ubuntu, PHP e as ferramentas do projeto ficam dentro do WSL 2. Você não precisa instalar Docker ou um servidor MySQL para acompanhar.

Os comandos foram conferidos na documentação oficial indicada ao longo do texto. Este roteiro não representa um teste completo executado em uma instalação de Windows 11.

Antes de começar

Tenha Windows 11 atualizado, acesso de administrador para habilitar o WSL, conexão com a internet e espaço disponível para Ubuntu e as dependências. A virtualização precisa estar habilitada no computador. Se a instalação apontar esse problema, consulte o fabricante para habilitá-la no firmware.

Vou identificar os blocos com PowerShell · Windows ou Ubuntu · Bash. Copie apenas os comandos do bloco correspondente e espere cada etapa terminar antes de continuar. O terminal do Ubuntu também pode aparecer como uma aba no Windows Terminal.

O WSL permite executar ferramentas Linux junto dos aplicativos Windows. O procedimento inicial segue a instalação oficial do WSL.

Instalar e atualizar o WSL 2

Abra o menu Iniciar, procure PowerShell e escolha Executar como administrador. Instale o WSL com Ubuntu:

PowerShell · Windows (administrador)

wsl --install -d Ubuntu

Reinicie o Windows quando solicitado. Depois, abra novamente o PowerShell para atualizar e conferir a instalação:

PowerShell · Windows

wsl --update
wsl --status
wsl --list --verbose

Na lista, procure Ubuntu e confira se a coluna VERSION mostra 2. Essa coluna indica a geração do WSL, não a versão do Ubuntu. Se a distribuição já existia em WSL 1, faça a conversão:

PowerShell · Windows

wsl --set-version Ubuntu 2

Use o nome exato mostrado pela listagem caso ele seja diferente. A referência de comandos do WSL explica essas opções e a diferença entre versão padrão e versão de uma distribuição existente.

Abrir o Ubuntu e criar seu usuário

Abra Ubuntu pelo menu Iniciar. Na primeira inicialização, aguarde a preparação e crie um nome de usuário Linux e uma senha. Eles pertencem ao Ubuntu e podem ser diferentes do login do Windows. Ao digitar a senha, nenhum caractere aparece: isso é normal.

A partir daqui, os comandos de instalação das ferramentas são executados no Ubuntu. Atualize os pacotes e instale os utilitários básicos:

Ubuntu · Bash

sudo apt update
sudo apt upgrade -y
sudo apt install -y curl ca-certificates git unzip

sudo pede a senha Linux e executa essa operação com privilégios administrativos. Depois, prepare uma pasta de projetos dentro do seu diretório pessoal:

Ubuntu · Bash

mkdir -p ~/projetos
cd ~/projetos
pwd

O caminho deve começar com /home/ e incluir seu usuário. Mantenha este projeto ali: a Microsoft recomenda guardar arquivos no sistema de arquivos das ferramentas que os utilizam. Para ferramentas Linux, isso evita o custo de trabalhar atravessando a pasta Windows em /mnt/c. Veja a preparação do ambiente WSL.

Instalar PHP 8.5 e Composer

Laravel 13 exige PHP 8.3 ou superior; aqui adoto PHP 8.5, conforme a matriz de suporte do Laravel 13. PHP executa a aplicação, enquanto Composer resolve suas dependências.

A documentação Laravel fornece um instalador Linux para PHP, Composer e a ferramenta laravel. Execute a variante Linux dentro do Ubuntu:

Ubuntu · Bash

/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.5)"

Esse comando baixa e executa o instalador indicado na documentação de instalação do Laravel. Confira a origem antes de executá-lo. Quando terminar, feche e abra novamente o terminal Ubuntu para carregar o caminho das ferramentas.

Verifique as versões:

Ubuntu · Bash

php -v
composer --version
laravel --version

Espere PHP 8.5.x. A versão exibida por laravel --version é a do instalador, não a do framework do projeto. Vamos conferir o framework depois de criar a aplicação.

Instalar Node 24 com NVM

Node e npm cuidam das ferramentas de frontend. Vou fixar a linha 24 LTS, indicada na tabela de versões do Node.js, em vez de deixar o tutorial depender da versão mais nova disponível.

Instale o NVM no Ubuntu com o comando publicado pelo projeto oficial nvm-sh:

Ubuntu · Bash

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash

O script configura o carregamento do NVM no shell. No Bash padrão do Ubuntu, recarregue essa configuração e instale Node:

Ubuntu · Bash

source ~/.bashrc
command -v nvm
nvm install 24
nvm alias default 24
nvm use 24
node --version
npm --version

O primeiro comando de verificação deve encontrar nvm; Node deve mostrar v24.x.x. npm acompanha essa instalação. Não use sudo para instalar pacotes npm dentro do projeto.

Criar o projeto Laravel 13

Para manter esta anotação reproduzível mesmo depois de um novo lançamento principal, vou criar a aplicação pelo Composer com a restrição ^13.0. A opção create-project é documentada no manual do Composer.

Ubuntu · Bash

cd ~/projetos
composer create-project laravel/laravel meu-primeiro-laravel "^13.0"
cd meu-primeiro-laravel
php artisan --version
composer check-platform-reqs

Use uma pasta nova: se meu-primeiro-laravel já existir e tiver arquivos, escolha outro nome. A instalação baixa o esqueleto e suas dependências. php artisan --version deve mostrar Laravel Framework 13.x; a última linha verifica PHP e extensões exigidas pelas dependências instaladas.

O arquivo composer.json descreve as dependências PHP e artisan é a interface de comandos da aplicação. Você encontrará as rotas em routes/web.php e a página inicial em resources/views/welcome.blade.php. Esses são bons primeiros arquivos para explorar depois que o ambiente estiver funcionando.

Usar SQLite no primeiro projeto

SQLite guarda o banco em um arquivo local e dispensa um servidor separado. O projeto Laravel novo usa essa opção por padrão. No editor, confira se o arquivo .env contém esta configuração:

Arquivo .env · configuração, não executar no terminal

DB_CONNECTION=sqlite

O arquivo esperado é database/database.sqlite. Você pode conferir as migrações e a extensão usada pelo PHP:

Ubuntu · Bash

php --ri pdo_sqlite
php artisan migrate:status

Se o banco ainda não tiver sido criado, prepare o arquivo e rode as migrações neste projeto novo:

Ubuntu · Bash

touch database/database.sqlite
php artisan migrate

As migrações criam as tabelas definidas pela aplicação. Não use comandos que apagam tabelas para resolver um erro de instalação. Se alterou .env depois de testar outra configuração, execute php artisan config:clear antes de tentar novamente.

O .env pode conter credenciais: mantenha-o fora do controle de versão e não publique seu conteúdo. A documentação de banco do Laravel detalha o SQLite; a documentação de configuração explica o ambiente e seu cache.

Executar e abrir no navegador

Dentro de ~/projetos/meu-primeiro-laravel, instale e compile os arquivos de frontend:

Ubuntu · Bash

npm install
npm run build

Agora inicie o ambiente de desenvolvimento:

Ubuntu · Bash

composer run dev

Mantenha esse terminal aberto. O script inicia os processos de desenvolvimento da aplicação. Abra http://localhost:8000 no navegador do Windows. Se o terminal informar outra porta, use o endereço efetivamente mostrado.

A página padrão do Laravel deve aparecer. O servidor do Vite atende os recursos de frontend durante o desenvolvimento; a porta dele não substitui o endereço da aplicação. A documentação do Vite no Laravel explica desenvolvimento e compilação. O acesso do Windows a serviços do WSL por localhost está descrito na documentação de rede do WSL.

Editar com VS Code e WSL

Instale o VS Code no Windows e a extensão WSL, da Microsoft. Na instalação do editor, mantenha habilitada a opção de adicionar o comando code ao PATH.

Em outra aba do Ubuntu, abra a pasta:

Ubuntu · Bash

cd ~/projetos/meu-primeiro-laravel
code .

Na primeira abertura, o editor prepara seu servidor no WSL. Confira o indicador WSL: Ubuntu na janela antes de trabalhar. Um novo terminal integrado nessa janela executará os comandos no Linux.

Se code não for encontrado, reabra o terminal após instalar o editor e confira a opção de PATH. Também é possível abrir a paleta de comandos do VS Code e usar WSL: Connect to WSL, depois abrir a pasta do projeto. Esses caminhos seguem a documentação do VS Code com WSL.

Encerrar e retomar o ambiente

Para parar a aplicação, volte ao terminal que executa composer run dev e pressione Ctrl+C. Para sair do shell Ubuntu, digite exit.

Quando quiser encerrar o WSL inteiro, salve os arquivos e pare as aplicações antes de executar:

PowerShell · Windows

wsl --shutdown

Esse comando encerra todas as distribuições em execução e pode interromper outras ferramentas que dependem do WSL. Para retomar, abra Ubuntu pelo menu Iniciar ou use:

PowerShell · Windows

wsl -d Ubuntu

Depois, no Ubuntu:

Ubuntu · Bash

cd ~/projetos/meu-primeiro-laravel
nvm use 24
composer run dev

Você não precisa reinstalar o projeto a cada sessão. Se as dependências não mudaram, basta iniciar os processos novamente.

Problemas frequentes

WSL não instala ou fica em 0%

Verifique atualizações do Windows, conexão e virtualização. Se o download pela loja ficar preso, a Microsoft documenta a alternativa wsl --install --web-download -d Ubuntu. Use-a no PowerShell como administrador. Para erros específicos, consulte a solução de problemas do WSL, sem desinstalar a distribuição ou apagar seus arquivos como primeiro recurso.

PHP, Composer ou NVM não são encontrados

Confirme que você está no Ubuntu, reabra o terminal e tente novamente. Para NVM no Bash, source ~/.bashrc recarrega sua configuração. Para verificar qual executável está sendo usado, execute command -v php e command -v composer. Um caminho sob /mnt/c indica uma ferramenta Windows; revise a instalação Linux antes de continuar.

“Could not open input file: artisan”

O comando foi executado fora da raiz da aplicação. Entre em ~/projetos/meu-primeiro-laravel e confira se o arquivo artisan está presente antes de repetir.

“Could not find driver” ao acessar o banco

Confira php --ri pdo_sqlite e composer check-platform-reqs. Se a extensão não aparecer, revise qual PHP está no PATH e a instalação indicada acima. Não instale pacotes de outra versão de PHP às cegas: a extensão precisa pertencer ao executável usado pelo projeto.

A página não abre ou a porta já está ocupada

Confira se composer run dev continua ativo e leia seu erro no terminal. Para isolar uma disputa pela porta 8000, pare o script com Ctrl+C e execute php artisan serve --port=8001; em uma segunda aba Ubuntu, dentro do projeto, execute npm run dev. Acesse http://localhost:8001. Ao terminar, pare os dois terminais com Ctrl+C.

“Vite manifest not found”

Na raiz do projeto, execute npm install e npm run build. Para continuar desenvolvendo com atualização automática, use composer run dev. Confira os erros do npm antes de recarregar a página.

Próximo passo e referências

Com a aplicação aberta, uma primeira experiência simples é alterar o texto de resources/views/welcome.blade.php e observar a mudança no navegador. Depois, explore rotas do Laravel e templates Blade.

Deixo reunidas as referências principais para consultar quando alguma versão ou tela mudar: