218

I have installed Laravel using composer without problems, but when I try to execute "laravel" in my terminal I have this typical error:

-bash: laravel: command not found

If I read the documentation of the official site I need to do that:

Make sure to place the ~/.composer/vendor/bin directory in your PATH so the laravel executable is found when you run the laravel command in your terminal.

But I don't know how to do (I'm new on terminal console commands).

Can you help me with that? Thanks!!

chemitaxis
  • 12,721
  • 16
  • 70
  • 122
  • What is your PATH variable value? – Raptor Oct 15 '14 at 07:11
  • How can I obtain that? With echo $PATH? – chemitaxis Oct 15 '14 at 07:12
  • 1
    type `echo $PATH` in Terminal / bash , etc. – Raptor Oct 15 '14 at 07:14
  • /Users/chema/google-cloud-sdk/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/Eclipse/sdk/platform-tools:/Applications/Eclipse/sdk/tools – chemitaxis Oct 15 '14 at 07:15
  • 2
    Possible duplicate of [Laravel installation: How to place the ~/.composer/vendor/bin directory in your PATH?](https://stackoverflow.com/questions/25373188/laravel-installation-how-to-place-the-composer-vendor-bin-directory-in-your) – MrTux Feb 12 '18 at 14:27

20 Answers20

347

Ok, I did that and it works:

nano ~/.bash_profile 

And paste

export PATH=~/.composer/vendor/bin:$PATH

do source ~/.bash_profile and enjoy ;)

Important: If you want to know the difference between bash_profile and bashrc please check this link

Note: For Ubuntu 16.04 running laravel 5.1, the path is: ~/.config/composer/vendor/bin

On other platforms: To check where your Composer global directory is, run composer global about. Add /vendor/bin to the directory that gets listed after "Changed current directory to ..." to get the path you should add to your PATH.

D Malan
  • 8,902
  • 3
  • 22
  • 41
chemitaxis
  • 12,721
  • 16
  • 70
  • 122
  • 5
    restart the terminal doesn't work in my case. I need to source ~/.bash_profile as well – Naing Lin Aung Sep 16 '15 at 02:52
  • 17
    this is not the correct answer >> .bashrc file (not .bash_profile). – Asis Nov 05 '15 at 10:55
  • Thank you, this worked for me. I didn't have any `.bashrc` file and I do not want to create one with dependency to `.bask_profile` –  Feb 26 '17 at 04:54
  • @NaingLinAung great tip , It won`t work without that tip .. But why if i close the terminal after working , it restop working ?? – mercury Sep 04 '17 at 18:59
  • 4
    For anyone coming here, make sure you have laravel installer installed globally also: `composer global require "laravel/installer"` – Connor Leech Jan 17 '18 at 22:59
  • Would be great to make the note about Ubuntu 16.04 (well i'm on 18.04) super bold and super red and super large font. – John Jan 18 '20 at 05:49
  • PATH=~/.composer/vendor/bin:$PATH in ~/.profile on ubuntu16.04 did the trick for me – Itachi Sama Feb 13 '20 at 11:37
239

Add the following to .bashrc file (not .bash_profile).

export PATH="~/.composer/vendor/bin:$PATH" 

at the end of the file and then in terminal run source ~/.bashrc

To verify that:

echo $PATH

(Restart the terminal, Check & Confirm the path is there)

Run the laravel command!

Note: For Ubuntu 16 and above use below:

export PATH="~/.config/composer/vendor/bin:$PATH" 
R T
  • 4,129
  • 3
  • 35
  • 46
  • You can find more information about the differences between these hidden files: http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html – chemitaxis Jan 10 '17 at 21:32
  • 1
    late reply. hope it helps someone. check this https://apple.stackexchange.com/questions/42537/why-must-i-source-bashrc-every-time-i-open-terminal-for-aliases-to-work. if you use .bahrc you need to reload every time. so add that in .bash_profile – Sibiraj May 09 '17 at 18:47
  • 1
    I had to add ~/.config to the path.. depends on where the binary is – f_i Nov 25 '17 at 14:13
  • 4
    It might be the '/root/.config/composer/vendor/bin' for linux distros – cagcak Feb 20 '18 at 17:32
  • 2
    `export PATH="~/.config/composer/vendor/bin:$PATH" ` - the life saver on Ubuntu 18.04! :) – Subrata Sarkar Mar 23 '21 at 14:13
96

When using MacBook, refer to the snippets below;

For zsh:

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

For Bash:

echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
nyedidikeke
  • 5,992
  • 7
  • 40
  • 52
Chweng Mega
  • 1,437
  • 10
  • 21
85

Solution on link http://tutsnare.com/laravel-command-not-found-ubuntu-mac/

In terminal

# download installer
composer global require "laravel/installer=~1.1"
#setting up path
export PATH="~/.composer/vendor/bin:$PATH" 
# check laravel command
laravel 

# download installer
composer global require "laravel/installer=~1.1"

nano ~/.bashrc

#add

alias laravel='~/.composer/vendor/bin/laravel'

source ~/.bashrc

laravel

# going to html dir to create project there
cd /var/www/html/
# install project in blog dir.
laravel new blog
gilcierweb
  • 2,498
  • 1
  • 15
  • 15
  • Thanks, I was missing the alias on my virtual machine, adding the folder to the PATH didn't help for some reason. – parrker9 Jun 10 '16 at 03:13
  • 1
    you can use ``composer global require "laravel/installer" `` too – TuGordoBello Aug 08 '16 at 02:18
  • In Homestead I needed to set the laravel alias folder to this one instead `/home/vagrant/.config/composer/vendor /bin/laravel` – lucgenti Aug 25 '16 at 10:43
  • 2
    Ubuntu 16.04. I also added the alias at ~/.bashrc `alias laravel='~/.config/composer/vendor/bin/laravel'` – Matiss Dec 29 '16 at 20:09
  • This works for me. Exporting the path to `~/.profile` does not do it. That step with `~/.bashrc` is necessary. – J. Doe Oct 03 '18 at 06:03
  • In Ubuntu 20.04 just adding `alias laravel='~/.composer/vendor/bin/laravel'` was enough – YTZ Oct 05 '20 at 23:26
38

If you're using Ubuntu 16.04.

  1. You need to find the composer config files in my case is :
    ~/.config/composer or in other cases ~/.composer/
    you can see the dir after this command
    composer global require "laravel/installer"

  2. after Laravel Installed you can find your laravel in ~/.config/composer/vendor/laravel/installer/.
    and you will find the Laravel shortcut command in here :
    ~/.config/composer/vendor/bin/

  3. set your .bashrc using nano ~/.bashrc and export your composer config file :

    export PATH="$PATH:$HOME/.config/composer/vendor/bin"

    or you can use allias. but above solution is recommended.

    alias laravel='~/.config/composer/vendor/laravel/installer/laravel'

  4. Now refresh your bashrc using source ~/.bashrc and then laravel is ready!!

above steps works with me in Ubuntu 16.04

Gujarat Santana
  • 8,851
  • 16
  • 49
  • 73
  • 1
    Why is it I need to type in source ~./bashrc everytime I want to use laravel new etc?? – Paul 501 Feb 12 '17 at 17:14
  • @Paul501 `source ~/.bashrc` is used to refresh the new setup in the file. So you can't have the new setup running in the current user session if you don't use `source` – Gujarat Santana Feb 12 '17 at 22:25
  • for more info you can read it here : http://stackoverflow.com/questions/2518127/how-do-i-reload-bashrc-without-logging-out-and-back-in – Gujarat Santana Feb 12 '17 at 22:25
  • 2
    `alias laravel='~/.config/composer/vendor/laravel/installer/laravel'` did the trick for me! – davejal Apr 23 '17 at 22:59
34

Type on terminal:

 composer global require "laravel/installer"

When composer finish, type:

vi ~/.bashrc

Paste and save:

export PATH="~/.config/composer/vendor/bin:$PATH"

Type on terminal:

source ~/.bashrc

Open another terminal window and type: laravel

MuriloReinert
  • 441
  • 4
  • 3
  • this one not working for me. But this worked : `export PATH="$PATH:$HOME/.composer/vendor/bin"` – Emre Doğan Nov 18 '16 at 10:12
  • 1
    Looks like some composer versions use .config and other .composer. This was the answer that worked for me, without needed to add an alias or anything. Thanks! – Gerardo Rosciano Sep 12 '17 at 14:46
  • 2
    Cheers!! This finally worked! for easy placement `echo 'export PATH="~/.config/composer/vendor/bin:$PATH"' >> ~/.bashrc` load it with `source ~/.bashrc` – General Omosco Jan 12 '19 at 11:38
20

For zsh and bash:

export PATH="$HOME/.config/composer/vendor/bin:$PATH"

source ~/.zshrc
source ~/.bashrc

For bash only:

export PATH=~/.config/composer/vendor/bin:$PATH

source ~/.bashrc
clemens
  • 15,334
  • 11
  • 41
  • 58
Md Rasel Ahmed
  • 945
  • 8
  • 11
16

For Developers use zsh Add the following to .zshrc file

vi ~/.zshrc or nano ~/.zshrc

export PATH="$HOME/.composer/vendor/bin:$PATH"

at the end of the file.

zsh doesn't know ~ so instead it by use $HOME.

source ~/.zshrc

Done! try command laravel you will see.

Sophy
  • 8,025
  • 6
  • 31
  • 29
8

If on mac (and think *nix) just run this in your terminal.

export PATH="~/.composer/vendor/bin:$PATH" 
Shubham A.
  • 2,285
  • 3
  • 32
  • 62
7

For those using Linux with Zsh:

1 - Add this line to your .zshrc file

export PATH="$HOME/.config/composer/vendor/bin:$PATH"

2 - Run

source ~/.zshrc
  • Linux path to composer folder is different from Mac
  • Use $HOME instead of ~ inside the path with Zsh
  • The .zshrc file is hidden in the Home folder
  • export PATH= exports the path in quotes so that the Laravel executable can be located by your system
  • The :$PATH is to avoid overriding what was already in the system path
guizo
  • 2,186
  • 17
  • 25
6

If you are coming here 2021 this has worked for me also using Ubuntu 16.04

nano ~/.bash_profile 
export PATH=$HOME/.config/composer/vendor/bin:$PATH
ctrl+x and save 
source ~/.bash_profile
Ahmed Magdy
  • 805
  • 7
  • 14
4

1) First, download the Laravel installer using Composer:

composer global require "laravel/installer"

2) Make sure to place the ~/.composer/vendor/bin directory in your PATH so the laravel executable can be located by your system.

  set PATH=%PATH%;%USERPROFILE%\AppData\Roaming\Composer\vendor\bin

  eg: “C:\Users\\AppData\Roaming\Composer\vendor\bin” 

3) Once installed, the simple laravel new command will create a fresh Laravel installation in the directory you specify.

eG:  laravel new blog
MD Ashik
  • 7,709
  • 7
  • 46
  • 53
shalini
  • 1,310
  • 11
  • 13
4

I set the PATH,but it didn't work.I find other way to solve it. (OSX 10.10 & laravel 5.2)
1) find the executable file:

~/.composer/vendor/laravel/installer/laravel 

2) give execute permissions:

chmod +x ~/.composer/vendor/laravel/installer/laravel 

3) make a soft link to /usr/bin:

sudo ln -s /Users/zhao/.composer/vendor/laravel/installer/laravel /usr/bin/laravel
MD Ashik
  • 7,709
  • 7
  • 46
  • 53
zhaolion
  • 41
  • 2
4

For MAC users:

1. Open terminal

cd ~

2. Double check the $PATH

echo $PATH

3. Edit file

nano ~/.bash_profile

4. PASTE

export PATH="~/.composer/vendor/bin:$PATH"

Don't forget to put quotation marks.

5. control + X (y + enter to save the file and exit)

Now start vagrant, go to your folder and try:

laravel new yourprojectname
Đorđe Nilović
  • 3,322
  • 1
  • 22
  • 20
3

type on terminal:

nano ~/.bash_profile 

then paste:

export PATH="/Users/yourusername/.composer/vendor/bin:$PATH"

then save (press ctrl+c, press Y, press enter)

now you are ready to use "laravel" on your terminal

Maii T
  • 31
  • 1
0

If you have Composer installed globally, you can install the Laravel installer tool using command below:

composer global require "laravel/installer=~1.1"
Ian Pinto
  • 2,039
  • 1
  • 20
  • 23
0

Late answer...

Composer 1.10.1 2020-03-13 20:34:27 laravel --version Laravel Installer 3.0.1

Put export PATH=$PATH:~/.config/composer/vendor/bin:$PATH in your ~/.zshrc or ~/.bashrc source ~/.zshrc or ~/.bashrc This works

0

Composer should be installed globally: Run this in your terminal:

    mv composer.phar /usr/local/bin/composer

Now composer commands will work.

Yeshi
  • 129
  • 1
  • 9
-1

My quick way of creating a new project

//install composer locally on web root - run the code from: https://getcomposer.org/download/

Then install laravel:

php composer.phar require laravel/installer

Then create the project without adding anything to any path

vendor/laravel/installer/bin/laravel new [ProjectName]

//add project to git

cd ProjectName
git init
git remote add origin git@...[youGitPathToProject]

Wondering if this way of doing it has any issues - please let me know

alex toader
  • 2,176
  • 1
  • 16
  • 16
-3

Just use it:

composer create-project --prefer-dist laravel/laravel youprojectname
Dharman
  • 26,923
  • 21
  • 73
  • 125
Amir Kaftari
  • 986
  • 9
  • 10