How to Install PHP Composer On Debian Linux

Objective

Install the Composer PHP package manager on Debian.

Distributions

This guide focuses on Debian, but may work with Ubuntu as well.

Requirements

A working Debian install with root privileges.

Difficulty

Easy

Conventions

  • # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
  • $ – requires given linux commands to be executed as a regular non-privileged user

Introduction

Composer is a PHP package manager that assists in the installation and management of PHP packages. It also helps handle project dependencies. As a result, many modern PHP projects rely on Composer.

Though Composer is in the Debian repositories, the version there is terribly out-of-date. Installing it directly from the development team is easy regardless.

Install The Dependencies

There are only a couple of things that you’ll need in order to get Composer running. Go ahead and install them with Apt.

$ sudo apt install php-cli git

Grab The Installer

cd into your /tmp directory. It’s just easier to clean up after the installation that way.

Once there, use PHP to grab the installer.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"


Check The Integrity

It won’t take long to download the installer. It’s best to verify the integrity of the installer after you have it. Go to the Composer website’s signature page, and copy the signature at the top of the page. Then, plug it in to the following linux command.

$ php -r "if (hash_file('SHA384', 'composer-setup.php') === 'SIGNATURE') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Replace “SIGNATURE” with the one you copied from the site. If the command returns “Installer verified,” you’re good to keep going.

Install Composer

You have the option of where you want to install Composer. You can either install it on a system-wide basis, or you can install it on a per-user basis. Either way will work the same for the user.

Per User

Assuming you have a ~/bin directory set up added to your $PATH, you can run the following linux command to add Composer to that directory.

$ php composer-setup.php --install-dir=/home/user/bin --filename=composer

System Wide

If you would like Composer to be a available to the entire system, you can install Composer with sudo to the /usr/local/bin directory.

$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Clean Up

Now, clean up the installer. You can wait for it to be removed from /tmp naturally, or run the command below.

$ php -r "unlink('composer-setup.php');"

Closing Thoughts

Now, you can run the composer command to make use of the Composer package manager. If you need a new version of composer you can pass Composer self-update, and it will automatically upgrade itself to the latest available version.