How to Install PHP Composer on Ubuntu 23.10

Composer is a dependency management tool for PHP. It simplifies the process of adding and managing libraries, packages, and dependencies in your PHP projects. With Composer, you can define your project's dependencies in a composer.json file, and Composer will automatically install and manage those dependencies for you.

To install PHP Composer on Ubuntu 23.10,

Pre-requisites :

  • A system with Ubuntu 23.10 installed and running.

  • root access to the system.

Update Package Repository:

Login to the Ubuntu 23.10 server and update the package repository information.

apt update 
apt upgrade

Install Dependencies:

Composer requires php-cli and php-zip. You can install these dependencies using the following command:

apt install php-cli php-zip

Download and Install Composer:

You can use the following curl command to download Composer and after download you can move it to /usr/local/bin directory, which will make it accessible from anywhere on your system:

curl -s | php


root@vps:~# curl -s | php
All settings correct for using Composer

Composer (version 2.6.5) successfully installed to: /root/composer.phar
Use it: php composer.phar


Move Composer binary file to the /usr/local/bin/ directory with the following command,

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

Verify Composer version using below command,

composer -V


root@vps:~# composer -V
Composer version 2.6.5 2023-10-06 10:11:52

To test your installation, run the following command.



root@vps:~# composer
Do not run Composer as root/super user! See for details
Continue as root/super user [yes]? yes
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
Composer version 2.6.5 2023-10-06 10:11:52

  command [options] [arguments]

  -h, --help                     Display help for the given command. When no command is given display help for the list command
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi|--no-ansi           Force (or disable --no-ansi) ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
      --no-scripts               Skips the execution of all scripts defined in composer.json file.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
      --no-cache                 Prevent use of the cache
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about                Shows a short information about Composer
  archive              Creates an archive of this composer package
  audit                Checks for security vulnerability advisories for installed packages
  browse               [home] Opens the package's repository URL or homepage in your browser
  bump                 Increases the lower limit of your composer.json requirements to the currently installed versions
  check-platform-reqs  Check that platform requirements are satisfied
  clear-cache          [clearcache|cc] Clears composer's internal package cache
  completion           Dump the shell completion script
  config               Sets config options
  create-project       Creates new project from a package into given directory
  depends              [why] Shows which packages cause the given package to be installed
  diagnose             Diagnoses the system to identify common errors
  dump-autoload        [dumpautoload] Dumps the autoloader
  exec                 Executes a vendored binary/script
  fund                 Discover how to help fund the maintenance of your dependencies
  global               Allows running commands in the global composer dir ($COMPOSER_HOME)
  help                 Display help for a command
  init                 Creates a basic composer.json file in current directory
  install              [i] Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json
  licenses             Shows information about licenses of dependencies
  list                 List commands
  outdated             Shows a list of installed packages that have updates available, including their latest version
  prohibits            [why-not] Shows which packages prevent the given package from being installed
  reinstall            Uninstalls and reinstalls the given package names
  remove               [rm] Removes a package from the require or require-dev
  require              [r] Adds required packages to your composer.json and installs them
  run-script           [run] Runs the scripts defined in composer.json
  search               Searches for packages
  self-update          [selfupdate] Updates composer.phar to the latest version
  show                 [info] Shows information about packages
  status               Shows a list of locally modified packages
  suggests             Shows package suggestions
  update               [u|upgrade] Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file
  validate             Validates a composer.json and composer.lock

This verifies that Composer was successfully installed on your system.