
Composer is the standard tool for managing PHP dependencies. It automates library installation, enforces version constraints, and helps organize autoloading, making it an essential part of modern PHP development. Whether you're building with frameworks like Laravel, Symfony, or Slim, Composer ensures consistency across environments and simplifies dependency resolution.
This article explains how to install Composer with a specific PHP version on a Linux system. This setup is useful when working across multiple PHP projects or servers that require different runtime versions. You'll learn how to install Composer safely, bind it to a specific PHP version such as PHP 8.4, and create reusable aliases for scripting or interactive use.
Prerequisites
Before you begin, ensure you have:
- Access to a Linux instance.
- SSH access to the server.
- A non-root user with
sudo
privileges. - Updated the server.
Install PHP
Install PHP, the command-line interface (CLI), and required tools such as curl
and unzip
using your distribution's package manager.
Run the following command to install the default PHP version and required utilities on APT-based systems.
$ sudo apt install -y php php-cli curl unzip
To install a specific PHP version (such as 8.3 or 8.4), add a third-party repository:
- On Ubuntu, use the Ondřej Surý PPA.
- On Debian, use the SURY repository.
These repositories provide maintained versions of PHP not available in the default APT sources.
On DNF-based distributions, install PHP and required tools with:
$ sudo dnf install -y php php-cli curl unzip
To install a specific PHP version, enable the EPEL and Remi repositories. These repositories offer multiple PHP versions for RHEL-based systems including Rocky Linux and AlmaLinux.
Install Composer Using a Specific PHP Version
php
as the command unless update-alternatives
is configured. If php8.4
doesn't work, use php
instead.
Follow these steps to install Composer using PHP 8.4.
Download the Composer installer using PHP 8.4.
console$ php8.4 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Get the installer signature. This ensures the installer is authentic and has not been tampered with.
console$ curl -s https://composer.github.io/installer.sig
Copy the hash from the output. You’ll need it for verification in the next step.
Verify the installer. Replace
your_hash_here
with the hash you copied:console$ php8.4 -r "if (hash_file('sha384', 'composer-setup.php') === 'your_hash_here') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Output.
Installer verified
Run the Composer installer using PHP 8.4 and install it system-wide.
console$ sudo php8.4 composer-setup.php --install-dir=/usr/local/bin --filename=composer
Output.
All settings correct for using Composer Downloading… Composer (version 2.8.8) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Clean up the installer file.
console$ rm composer-setup.php
Verify the Composer installation.
console$ composer
Output.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 2.8.8 2025-04-04 16:56:46
Run Composer with a Specific PHP Version
To run Composer with a specific PHP version (like PHP 8.4), follow these steps to configure your environment.
Confirm the path of the PHP 8.4 binary.
console$ which php8.4
Output.
/usr/bin/php8.4
Run Composer using the PHP 8.4 binary.
console$ php8.4 /usr/local/bin/composer
Create an alias so
composer
always runs with PHP 8.4. (Optional)console$ echo 'alias composer="php8.4 /usr/local/bin/composer"' >> ~/.bashrc
For portability in scripts or cron jobs, consider using a shebang like
#!/usr/bin/env php
instead of hardcoding a version path.Reload your shell configuration to apply the alias.
console$ source ~/.bashrc
If you're using the Zsh, replace
~/.bashrc
with~/.zshrc
.Verify that Composer now runs with PHP 8.4.
console$ composer --version
Output.
Composer version 2.8.8 2025-04-04 16:56:46 PHP version 8.4.0 (/usr/bin/php8.4) Run the "diagnose" command to get more detailed diagnostics output.
For managing multiple Composer versions or isolating global dependencies per PHP version, consider tools like cgr
, composer-bin
, or asdf
.
To confirm that Composer is functional and can generate project scaffolding:
Run
composer init
in non-interactive mode to generate a minimalcomposer.json
.console$ composer init --name=test/app --description="Test app" --author="Your Name" --require=php:^8.4 --no-interaction
View the generated file to confirm success.
console$ cat composer.json
Output.
{ "name": "test/app", "description": "Test app", "require": { "php": "^8.4" } }
You can now run composer install
or add additional dependencies to begin building your PHP project.
Conclusion
In this article, you installed Composer on a Linux system and configured it to run with a specific PHP version such as PHP 8.4. You learned how to safely verify the installer, install Composer system-wide, and run it using the correct PHP binary. You also created a reusable alias for convenience and confirmed that Composer works by initializing a basic project.
With this setup, you're now equipped to manage dependencies across multiple PHP projects with varying version requirements. For advanced use cases, such as global tool isolation or multi-version workflows, consider tools like cgr
, composer-bin
, or asdf.
To learn more, visit the official Composer documentation.