← Todas as anotações
LinuxAmbiente de desenvolvimentoLaravel

Configuração base para programação: Debian 12 e Ubuntu no WSL

Configurar Git, Zsh, Node, PHP, PhpStorm, Docker, MySQL, HeidiSQL e aliases no Debian 12 ou no Ubuntu do Windows 11.

Roteiro para preparar uma máquina nova. No Debian, usar o terminal Linux. No Windows 11, executar os comandos dentro do Ubuntu no WSL 2. Se necessário, começar pela instalação do WSL.

1. Instalar as ferramentas básicas

Terminal Linux · Debian ou Ubuntu

sudo apt update
sudo apt upgrade
sudo apt install -y curl ca-certificates git unzip nano zsh
mkdir -p ~/projetos

Configurar a autoria dos commits, substituindo os dados:

Terminal Linux

git config --global user.name "Seu nome"
git config --global user.email "seu-email@example.com"

2. Configurar Zsh e Oh My Zsh

Executar o instalador oficial e aceitar Zsh como shell padrão:

Terminal Linux

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Se a troca não acontecer, executar chsh -s "$(command -v zsh)" e entrar novamente na sessão. Abrir Zsh no terminal atual com zsh antes de continuar.

3. Instalar Node e npm

Instalar NVM e Node 24. npm já vem junto.

Terminal Linux · Zsh

curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | PROFILE="$HOME/.zshrc" bash
source ~/.zshrc
nvm install 24
nvm alias default 24
nvm use 24
node --version
npm --version

Em projetos com .nvmrc, usar a versão indicada pelo arquivo. Não usar sudo com npm.

4. Instalar PHP 8.4, extensões, Composer e Laravel

Usar o instalador indicado pelo Laravel, selecionando PHP 8.4. Ele instala o binário do Herd Lite, Composer e o comando global laravel, tanto no Debian quanto no Ubuntu do WSL:

Terminal Linux

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

Reabrir o terminal e conferir:

Terminal Linux

php -v
command -v php
php -m
composer --version
laravel --version

O resultado deve indicar PHP 8.4.x e o executável em ~/.config/herd-lite/bin/php.

Extensões da máquina de referência

Na máquina usada para este roteiro, o comando php utiliza PHP 8.4.1 do Herd Lite. Os módulos abaixo foram conferidos com php -m e também aparecem com php -n -m, que ignora o php.ini: eles já estão embutidos nesse binário. Assim, a instalação acima fornece PHP com extensões, sem precisar de um comando separado para cada uma.

bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, exif,
FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv,
igbinary, imagick, imap, intl, json, ldap, libxml, mbstring,
mongodb, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_mysql,
pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, random, readline,
redis, Reflection, session, shmop, SimpleXML, soap, sockets,
sodium, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm,
tokenizer, xml, xmlreader, xmlwriter, xsl, zip, zlib, zstd

Essa lista inclui as extensões exigidas pelo Laravel, como ctype, curl, dom, fileinfo, filter, hash, mbstring, openssl, pcre, PDO, session, tokenizer e xml. Também inclui drivers para MySQL, PostgreSQL e SQLite, além de Redis, MongoDB, GD, Imagick, Intl, BCMath e ZIP. As extensões adicionais dependem das necessidades de cada projeto.

A lista pode variar entre atualizações do binário. Conferir com php -m após instalar e, em um projeto com as dependências instaladas, executar composer check-platform-reqs para verificar os requisitos reais.

Se houver outra instalação de PHP via APT, conferir sempre command -v php: os pacotes php8.4-* do sistema não adicionam extensões ao binário do Herd Lite.

Se PHP e Composer já estiverem instalados, adicionar apenas o instalador Laravel com composer global require laravel/installer.

5. Instalar PhpStorm

Debian

Com Snap configurado:

Terminal do Debian

sudo snap install phpstorm --classic
snap run phpstorm

Verificar a compatibilidade da versão com Debian 12: os requisitos atuais do PhpStorm listam Debian 13.

Windows com WSL

Instalar PhpStorm no Windows pelo JetBrains Toolbox. Abrir a pasta do projeto no Ubuntu e configurar o interpretador PHP via WSL.

6. Instalar Docker

Debian

Para um ambiente novo de desenvolvimento, usar o script oficial do Docker. Conferir o script baixado antes de executá-lo:

Terminal do Debian

curl -fsSL https://get.docker.com -o /tmp/get-docker.sh

Depois de conferir o arquivo:

Terminal do Debian

sudo sh /tmp/get-docker.sh
sudo docker version

Windows com WSL

Instalar Docker Desktop, ativar o backend WSL 2 e habilitar Ubuntu em Settings → Resources → WSL Integration. Manter Docker Desktop aberto. Não instalar outro Docker Engine dentro do Ubuntu.

Terminal do Ubuntu no WSL

docker version

O resultado deve mostrar Client e Server. Nos próximos comandos, adicionar sudo antes de docker se o Debian exigir essa permissão.

7. Criar MySQL no Docker

Se mysql_dev já existir, reutilizar a configuração existente. Para um container novo, criar um arquivo local com as senhas:

Terminal Linux

nano ~/mysql-dev.env

Colar o conteúdo abaixo e substituir os valores por senhas próprias:

Arquivo ~/mysql-dev.env

MYSQL_ROOT_PASSWORD=SUA_SENHA_ROOT
MYSQL_PASSWORD=SUA_SENHA_DEV

Salvar no Nano com Ctrl+O → Enter e sair com Ctrl+X. Manter esse arquivo fora do Git.

Criar o container usando a imagem oficial MySQL:

Terminal Linux · no Debian, usar sudo se necessário

docker run -d \
  --name mysql_dev \
  --restart unless-stopped \
  -p 127.0.0.1:3306:3306 \
  --env-file "$HOME/mysql-dev.env" \
  -e MYSQL_DATABASE=desenvolvimento \
  -e MYSQL_USER=dev \
  -v mysql_dev_data:/var/lib/mysql \
  mysql:8.4

docker logs --tail=40 mysql_dev

Aguardar ready for connections. O volume mysql_dev_data guarda os dados; não apagá-lo para corrigir erros de conexão. As senhas só são aplicadas na primeira inicialização de um volume vazio.

8. Instalar HeidiSQL e conectar

Baixar pela página oficial: versão Windows no Windows ou pacote Linux compatível com Debian 12 no Debian.

Criar uma sessão MySQL / MariaDB por TCP/IP:

  • Host: 127.0.0.1
  • Porta: 3306
  • Usuário: dev
  • Senha: o valor definido em MYSQL_PASSWORD
  • Banco: desenvolvimento

Conectar e conferir se o banco aparece.

9. Configurar os aliases

Terminal Linux · Zsh

nano ~/.zshrc

Acrescentar ao final do arquivo, depois do carregamento do Oh My Zsh. Preservar as configurações existentes de NVM e PHP:

Arquivo ~/.zshrc

# PhpStorm: apenas para instalação Linux via Snap
alias pstorm='snap run phpstorm'

# npm
alias ni='npm install'
alias nrd='npm run dev'
alias nrb='npm run build'

# Laravel
alias pa='php artisan'
alias pas='php artisan serve'
alias pak='php artisan key:generate'
alias pam='php artisan migrate'
alias pamf='php artisan migrate:fresh'
alias pamfs='php artisan migrate:fresh --seed'

# Git
alias g='git'
alias go='git checkout'
alias pull='git pull'
alias push='git push'
alias gf='git fetch --all'

# Composer e Docker
alias ci='composer install'
alias d='docker'

Salvar e recarregar:

Terminal Linux · Zsh

source ~/.zshrc

Usar os atalhos na pasta do projeto. pamf e pamfs apagam as tabelas do banco configurado; reservar para bancos locais descartáveis. pak gera a chave da aplicação e não deve ser executado a cada início de trabalho.

Os comandos foram revisados na documentação indicada. A instalação completa não foi testada nas duas plataformas.