86

I followed composer manual (global installation of composer (manual)) to install composer on Ubuntu.

$ ll /usr/local/bin/
total 4760
drwxr-xr-x  2 root root    4096 2012-03-29 08:29 ./
drwxr-xr-x 10 root root    4096 2011-04-26 00:50 ../
-rwxr-xr-x  1 root root  410324 2012-03-29 08:28 composer.phar

Other scripts from /usr/local/bin/ works, but composer gives:

$php composer.phar update Could not open input file: composer.phar

It works only if I enter absolute path to composer.phar. How to fix this?

muru
  • 207,228
umpirsky
  • 3,852

8 Answers8

200

TLDR;

As described on the Composer website:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Manual Method

I found an easier way to globally install composer than the manual proscribed in the github readme.md. It's actually on the getcomposer.org website:

curl -s http://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/

And if you're even more lazy, like me, you can create an alias:

alias composer='/usr/local/bin/composer.phar'

This way you can invoke composer with just composer

29

Don't add php in the beginning. Just call composer.phar.

Eliah Kagan
  • 119,640
garakkio
  • 756
28

Actually, getcomposer.org now recommends a simpler method:

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Now you can just use composer without bothering with an alias or a separate sh script.

7

Another alternative to get a nice composer command instead of composer.phar:

$ curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin
$ ln -s /usr/local/bin/composer.phar /usr/local/bin/composer
5

for easier execution I created /usr/local/bin/composer with content:

#!/bin/sh
exec /usr/local/bin/composer.phar "$@"

dont forget about sudo chmod +x /usr/local/bin/composer.phar

Eliah Kagan
  • 119,640
3

Below are the steps to be followed to install composer globally: 1. Before installing Composer, make sure our server has all dependencies installed.

1st, update the package manager cache by running:

$ sudo apt-get update

2. Now, let's install the dependencies. We'll need

  • curl => to download Composer
  • php5-cli => installing and running it
  • git => used by Composer for downloading project dependencies

Everything can be installed with the following command:

$ sudo apt-get install curl php5-cli git

3. Composer installation with a single command:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

4. This will download and install Composer as a system-wide command named composer, under /usr/local/bin. The output should look like this:

Output:

\#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /usr/local/bin/composer

Use it: php /usr/local/bin/composer

5. To test your installation, run:

$ composer -V

Output:

Composer version 1.1.3 2016-06-26 15:42:08
  1. Installation Successful
Ravistm
  • 131
0

I have made a simple bash script that automatically installs composer for current user/all users, you can one of the following commands in your terminal to use bash script.

Current User

wget -O - https://gist.github.com/EmpireWorld/1dd5f59566e186907f99dc16badc382a/raw/install-composer-local.sh | bash

All Users

wget -O - https://gist.github.com/EmpireWorld/1dd5f59566e186907f99dc16badc382a/raw/install-composer-global.sh | bash

Check out the Gist

Hasan Bayat
  • 107
  • 3
-1

This might work for you. Note that sudo is used two times here.

sudo curl -sS https://getcomposer.org/installer | sudo php
grooveplex
  • 2,506
  • 3
  • 27
  • 35