Composer installed, but get /usr/bin/env: php: No such file or directory

66,622

Solution 1

As @alexhowansky suggested in a comment, I ran the following command:

sudo ln -s /usr/bin/php71 /usr/bin/php

Now the composer command works.

Solution 2

You need to add /usr/local/bin to your PATH variable. The easiest way is to throw it in your profile or bash_profile located at either:

  • ~/.profile
  • ~/.bash_profile

You would add the following to one of those files:

export PATH="$PATH:/usr/local/bin/"

For more details, see: https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path

If you are logged in when you add it, you can force Linux to read the file again and update the path (once the changes are made) by using source from the bash prompt:

source ~/.bash_profile

As for the php7 vs. php issue, as Alex suggested, you can make a symlink so it works kinda like an alias.

Solution 3

This worked for me [Centos 7 with php 7.1] :
yum install php71w-cli

Solution 4

You need to install the cli package.

yum install php71u-cli is what I needed to do for IUS php.

Share:
66,622
user3489502
Author by

user3489502

Updated on December 05, 2021

Comments

  • user3489502
    user3489502 over 2 years

    On CentOS 7, I installed PHP 7.1.

    Then I installed composer with:

    cd /tmp
    curl -sS https://getcomposer.org/installer | php71     --> used php71 instead of php, php didn't work
    mv composer.phar /usr/local/bin/composer
    

    Then, when using composer, I get:

    /usr/bin/env: php: No such file or directory
    

    When using sudo composer, I get:

    sudo: composer: command not found
    
  • karolus
    karolus over 5 years
    One thing I'll add here: your mileage may vary per specific use case. When I added export PATH="$PATH:/usr/local/bin/" to my .bash_aliases, running which php returned /usr/local/bin//php. So, I modified it to export PATH="$PATH:/usr/local/bin", which works fine.