How to Install and Use PHP Composer on Ubuntu 18.04
Updated on
•6 min read

Composer is a dependency manager for PHP (similar to npm for Node.js or pip for Python ). Composer will pull in all the required PHP packages your project depends on and manage them for you.
In this tutorial, we’ll show you how to install and use Composer on an Ubuntu 18.04 machine. The same steps can be used for Ubuntu 16.04.
Prerequisites
Before continuing with this tutorial, make sure you are logged in as a user with sudo privileges and you have PHP installed on your Ubuntu 18.04 system.
Installing PHP Composer
To install Composer on your Ubuntu system, perform the following steps:
Before downloading and installing Composer, first update the packages index and install the necessary requirements:
sudo apt update
sudo apt install wget php-cli php-zip unzip
Now that we have php cli installed on our machine, we can download the composer installer with:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
The command above will download the
composer-setup.php
file in the current working directory .Next, we need to verify the data integrity of the script by comparing the script
SHA-384
hash with the latest installer hash found on the Composer Public Keys / Signatures page.We will use the following wget command to download the expected signature of the latest Composer installer from the Composer’s Github page and store it in a variable named
HASH
:HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Now run the following command to verify that the installation script is not corrupted:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
If the hashes match, you will see the following output:
Installer verified
If the hashes don’t match you will see
Installer corrupt
. In this case you will need to redownload the Composer installation script and double check the value of the$HASH
variable withecho $HASH
. Once the installer is verified, you can continue with the next step.The following command will install Composer in the
/usr/local/bin
directory:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
The
composer
is installed as a system-wide command and it will be available for all users.The last step is to verify the installation:
composer
The command above, will print the Composer’s version, commands and arguments.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
php composer-setup.php
which will create a file named composer.phar
in your current working directory. You can use the composer by running ./composer.phar <command>.
Installing Composer [Quick Way]
Use the following commands to quickly install Composer on your Ubuntu system:
Install PHP CLI and Zip:
sudo apt update && sudo apt install wget php-cli php-zip unzip curl
Download Composer with curl:
curl -sS https://getcomposer.org/installer |php
Move the Composer file to
/usr/local/bin
directory:sudo mv composer.phar /usr/local/bin/composer
Getting Started with Composer
Now that Composer is installed on your Ubuntu system we will show you how to use Composer in a PHP project.
The first step is to create a directory which will be the project root directory and hold the composer.json
file. This file describes your PHP project including the PHP dependencies and other metadata.
Create the project directory and switch to it with:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
The next step is to initialize a new composer.json
using the composer require <package name>
command and specify the package we want to download.
In this example, we will create a sample application that will print the current time using a package called carbon .
Run the following command to initialize a new composer.json
and install the carbon package:
composer require nesbot/carbon
Using version ^1.33 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v4.1.4): Downloading (100%)
- Installing nesbot/carbon (1.33.0): Downloading (100%)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files
As you can see from the output above Composer will create the composer.json
file and it will download and install carbon and all its dependencies.
If you list your project’s directory
, you will see that it contains two files composer.json
and composer.lock
, and a vendor
directory.
ls -l
-rw-r--r-- 1 linuxize users 60 Aug 29 00:50 composer.json
-rw-r--r-- 1 linuxize users 6.8K Aug 29 00:50 composer.lock
drwxr-xr-x 5 linuxize users 4.0K Aug 29 00:50 vendor
- The
vendor
directory is the directory where the project dependencies are stored. - The
composer.lock
contains a list of all installed packages including the version of the packages. - The
composer.json
describes the PHP project and all PHP dependencies.
Composer provides autoload capabilities which allow us to use PHP classes without the need to require
or include
the files.
Create a file named testing.php
and add the following code:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Let’s analyze the code line by line.
In the first line after the opening php tag we are including the vendor/autoload.php
file that was automatically generated by Composer which will autoload all of the libraries.
Next, we are aliasing Carbon\Carbon
as Carbon
and in the last line we are printing the current time using the Carbon now
method.
Run the script by typing:
php testing.php
The output should look something like this:
Now: 2018-08-28 23:47:19
Later on, if you want to update your PHP packages you can simply run:
composer update
The command above will check for newer versions of the installed packages and if a newer version is found and the version constraint
match with the one specified in the composer.json
, Composer will update the package.
Conclusion
You have learned how to install Composer on your Ubuntu 18.04 machine. We have also shown you how to use Composer to create a basic PHP project.
To find more information about Composer visit the official Composer documentation page.
If you have any questions, please leave a comment below.