Resolver o erro «laravel: command not found» no macOS

Resolver o erro «laravel: command not found» no macOS
Resposta rápida

Instala primeiro o instalador com composer global require laravel/installer, depois pergunta ao Composer onde coloca os seus executáveis: composer global config bin-dir --absolute. Acrescenta esse caminho à tua PATH no ~/.zshrc, depois source ~/.zshrc. Em macOS com bash, o ficheiro é o ~/.bash_profile, nunca o ~/.bashrc.

Escreves laravel new meu-projeto e o terminal responde:

code
zsh: command not found: laravel

O problema quase nunca é o Laravel. É que o executável instalado pelo Composer está numa pasta que a tua shell não consulta. É preciso, portanto, encontrar essa pasta e depois acrescentá-la à PATH.

Artigo do percurso Desenvolvimento web. Procedimento verificado a 2 de setembro de 2026 em macOS 26.5.1 com Composer 2.9.5 e zsh.

Primeiro: o instalador está instalado?

O comando laravel não vem com o Composer, instala-se à parte:

bash
composer global require laravel/installer

Se nunca o correste, nenhum acerto na PATH fará aparecer o comando. Repara que podes muito bem passar sem ele: composer create-project laravel/laravel meu-projeto faz o mesmo sem instalador global.

Encontrar a pasta certa, sem adivinhar

A maioria dos tutoriais manda-te copiar $HOME/.composer/vendor/bin. Muitas vezes está certo, mas nem sempre: o Composer escolhe a sua pasta pessoal consoante o sistema e as variáveis de ambiente presentes. Em vez de apostar, pergunta-lhe:

bash
composer global config bin-dir --absolute
code
/Users/gekkode/.composer/vendor/bin

É o resultado obtido em macOS 26.5.1. Numa instalação configurada para seguir as convenções XDG, o comando pode devolver ~/.config/composer/vendor/bin. Usa sempre o que o comando mostra na tua máquina, não o que diz um tutorial.

A pasta pode ainda não existir

Enquanto não houver um pacote global instalado, o caminho está correto mas a pasta não existe. Não tem consequências: acrescentar à PATH uma pasta inexistente não provoca qualquer erro, e ela será criada no primeiro composer global require.

Acrescentar a pasta à PATH com zsh

A zsh é a shell por omissão do macOS desde o Catalina. O ficheiro a alterar é o ~/.zshrc:

bash
echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Substitui o caminho por aquele que o comando anterior te devolveu. O source aplica a alteração à sessão atual, sem ele, só produzirá efeito num novo terminal.

Confirma:

bash
which laravel
laravel --version

E se usares a bash

Em macOS Mojave e anteriores, ou se mantiveste a bash de propósito, o ficheiro é o ~/.bash_profile:

bash
echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
O ~/.bashrc não é lido no arranque em macOS

É o erro clássico, e estava na versão anterior deste artigo. Em macOS, o Terminal abre uma login shell, que lê o ~/.bash_profile e não o ~/.bashrc. Uma linha acrescentada ao ~/.bashrc nunca será aplicada, o que dá a impressão de que a manobra não funciona.

Para saberes que shell estás a usar:

bash
echo $SHELL
# /bin/zsh  →  ~/.zshrc
# /bin/bash →  ~/.bash_profile

Se o comando continuar por encontrar

Três verificações, por esta ordem. Primeiro, a PATH contém mesmo a pasta:

bash
echo $PATH | tr ':' '\n' | grep composer

Depois, o executável está lá:

bash
ls "$(composer global config bin-dir --absolute)"

Se não estiver, a instalação global falhou. Volta a lançá-la e lê o que sai: um conflito de versão do PHP é a causa mais frequente.

Por fim, se for o próprio Composer que não aparece, é o mesmo problema um nível abaixo. Em macOS, a instalação mais simples passa pelo Homebrew:

bash
brew install composer

Num servidor, a questão não se coloca nos mesmos termos: vê a instalação do Composer em Debian.

A alternativa que faz o problema desaparecer

O Laravel Herd instala o PHP, o Composer e o instalador do Laravel num ambiente gerido, e trata ele próprio da PATH. Para uma máquina de desenvolvimento macOS montada de raiz, é o caminho mais curto: deixa de haver ficheiro de configuração da shell para mexer.

Se já trabalhas com uma instalação Homebrew que dominas, a manobra sobre a PATH descrita acima continua perfeitamente válida.

Erros frequentes

Escrever no ~/.bashrc em macOS O Terminal abre uma login shell, que lê o ~/.bash_profile. Uma linha acrescentada ao ~/.bashrc nunca é aplicada.
Copiar um caminho encontrado num tutorial O Composer escolhe a sua pasta consoante o sistema e as variáveis de ambiente. Só composer global config bin-dir --absolute dá o caminho certo na tua máquina.
Esquecer o composer global require laravel/installer O comando laravel não vem com o Composer. Sem ele, nenhum acerto na PATH o fará aparecer.
Alterar a PATH sem recarregar As alterações só se aplicam às novas sessões, a não ser que corras source sobre o ficheiro alterado.

ComposerLaravelmacOSPHP

Damien Flandrin Programador web desde 2010, criador da Gekkode e do Email Impact. Cada artigo é testado num projeto real antes de ser publicado. Contacto
Newsletter

Os novos testes, tutoriais e projetos, por e-mail.

Testes reproduzíveis, código versionado, resultados datados. Nunca spam.