„laravel: command not found” na macOS – jak to naprawić

„laravel: command not found” na macOS — jak to naprawić
Szybka odpowiedź

Najpierw zainstaluj instalator poleceniem composer global require laravel/installer, a potem zapytaj Composera, gdzie trzyma pliki wykonywalne: composer global config bin-dir --absolute. Dopisz tę ścieżkę do PATH w ~/.zshrc, a następnie wykonaj source ~/.zshrc. Na macOS z bashem plikiem jest ~/.bash_profile, nigdy ~/.bashrc.

Wpisujesz laravel new mon-projet, a terminal odpowiada:

code
zsh: command not found: laravel

Problem prawie nigdy nie leży po stronie Laravela. Rzecz w tym, że plik wykonywalny zainstalowany przez Composera leży w katalogu, do którego twój shell nie zagląda. Trzeba więc znaleźć ten katalog i dopisać go do PATH.

Artykuł ze ścieżki Programowanie webowe. Procedura sprawdzona 2 września 2026 roku na macOS 26.5.1 z Composerem 2.9.5 i zsh.

Najpierw: czy instalator w ogóle jest zainstalowany?

Polecenie laravel nie przychodzi razem z Composerem, instaluje się je osobno:

bash
composer global require laravel/installer

Jeśli nigdy go nie uruchomiłeś, żadne ustawienie PATH nie sprawi, że polecenie się pojawi. Zauważ, że spokojnie możesz się bez niego obejść: composer create-project laravel/laravel mon-projet robi to samo bez globalnego instalatora.

Znajdź właściwy katalog, bez zgadywania

Większość poradników każe skopiować $HOME/.composer/vendor/bin. Często się to zgadza, ale nie zawsze: Composer wybiera swój katalog domowy zależnie od systemu i od obecnych zmiennych środowiskowych. Zamiast obstawiać, zapytaj go:

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

Taki wynik daje macOS 26.5.1. Na instalacji ustawionej pod konwencje XDG polecenie może zwrócić ~/.config/composer/vendor/bin. Zawsze używaj tego, co polecenie wypisze u ciebie, a nie tego, co mówi poradnik.

Katalogu może jeszcze nie być

Dopóki nie zainstalujesz żadnego pakietu globalnie, ścieżka jest poprawna, ale katalog nie istnieje. To bez konsekwencji: dopisanie nieistniejącego katalogu do PATH nie powoduje błędu, a sam katalog powstanie przy pierwszym composer global require.

Dopisanie katalogu do PATH w zsh

zsh jest domyślnym shellem macOS od czasów Cataliny. Plik do zmiany to ~/.zshrc:

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

Podmień ścieżkę na tę, którą zwróciło poprzednie polecenie. source stosuje zmianę do bieżącej sesji, bez niego zadziała dopiero w nowym terminalu.

Sprawdź:

bash
which laravel
laravel --version

A jeśli używasz bash

Na macOS Mojave i starszych, albo jeśli świadomie zostałeś przy bashu, plikiem jest ~/.bash_profile:

bash
echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
~/.bashrc nie jest czytany przy starcie na macOS

To klasyczny błąd i figurował w poprzedniej wersji tego artykułu. Na macOS Terminal otwiera login shell, który czyta ~/.bash_profile, a nie ~/.bashrc. Linia dopisana do ~/.bashrc nigdy się nie zastosuje, przez co wygląda to tak, jakby cała operacja nie działała.

Żeby sprawdzić, jakiego shella używasz:

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

Jeśli polecenia nadal nie widać

Trzy sprawdzenia po kolei. Najpierw: czy PATH naprawdę zawiera ten katalog:

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

Potem: czy plik wykonywalny w ogóle tam jest:

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

Jeśli go nie ma, instalacja globalna się nie powiodła. Uruchom ją ponownie i przeczytaj wynik: najczęstszą przyczyną jest konflikt wersji PHP.

Wreszcie, jeśli to sam Composer jest nie do znalezienia, masz ten sam problem o poziom niżej. Na macOS najprościej zainstalować go przez Homebrew:

bash
brew install composer

Na serwerze pytanie stawia się inaczej: zobacz instalację Composera na Debianie.

Alternatywa, która usuwa problem

Laravel Herd instaluje PHP, Composera i instalator Laravela w zarządzanym środowisku i sam zajmuje się PATH. Na stanowisku deweloperskim macOS stawianym od zera to najkrótsza droga: nie ma już żadnego pliku konfiguracyjnego shella do ruszania.

Jeśli pracujesz już na instalacji z Homebrew, którą masz pod kontrolą, opisana wyżej operacja na PATH pozostaje w pełni aktualna.

Częste błędy

Zapis do ~/.bashrc na macOS Terminal otwiera login shell, który czyta ~/.bash_profile. Linia dopisana do ~/.bashrc nigdy się nie zastosuje.
Przepisanie ścieżki z poradnika Composer wybiera swój katalog zależnie od systemu i zmiennych środowiskowych. Właściwą ścieżkę na twoim stanowisku daje tylko composer global config bin-dir --absolute.
Pominięcie composer global require laravel/installer Polecenie laravel nie jest dostarczane z Composerem. Bez niego żadne ustawienie PATH go nie przywoła.
Zmiana PATH bez przeładowania Zmiany działają dopiero w nowych sesjach, chyba że uruchomisz source na zmienionym pliku.

ComposerLaravelmacOSPHP

Damien Flandrin Web developer od 2010 roku, twórca Gekkode i Email Impact. Każdy artykuł jest sprawdzany na prawdziwym projekcie przed publikacją. Kontakt
Newsletter

Nowe testy, poradniki i projekty, e-mailem.

Powtarzalne testy, wersjonowany kod, datowane wyniki. Nigdy spamu.