In this week’s feature highlight, we look at How to Install and use PHP Composer on Debian 12
Composer is a dependency manager for the programming language, PHP. It functions as some sort of project manager that helps the programmer manage dependencies that will be used on a project-to-project basis.
Installing Composer on Debian 12
First, need to check for any pending system updates,
apt update apt upgrade
Install the required packages.
apt install wget php-cli php-zip unzip
Download the composer installer file.
wget -O composer-setup.php https://getcomposer.org/installer
root@vps:~# wget -O composer-setup.php https://getcomposer.org/installer --2023-06-13 20:51:32-- https://getcomposer.org/installer Resolving getcomposer.org (getcomposer.org)... 188.8.131.52, 2607:5300:201:2100::4:d105 Connecting to getcomposer.org (getcomposer.org)|184.108.40.206|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 58140 (57K) [application/octet-stream] Saving to: ‘composer-setup.php’ composer-setup.php 100%[=============================================================>] 56.78K --.-KB/s in 0.08s 2023-06-13 20:51:32 (738 KB/s) - ‘composer-setup.php’ saved [58140/58140] root@vps:~#
To install Composer globally inside the
/usr/local/bin directory by running the following command.
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
root@vps:~# php composer-setup.php --install-dir=/usr/local/bin --filename=composer All settings correct for using Composer Downloading... Composer (version 2.5.8) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer root@vps:~#
If a new Composer version is available, update the package by running the following command.
Use Composer in PHP Project
mkdir ~/my-first-composer-project cd ~/my-first-composer-project
Initialize a new composer.json and install the carbon package by running the following command.
composer require nesbot/carbon
root@vps:~/my-first-composer-project# composer require nesbot/carbon Do not run Composer as root/super user! See https://getcomposer.org/root for details Continue as root/super user [yes]? yes Info from https://repo.packagist.org: #StandWithUkraine ./composer.json has been created Running composer update nesbot/carbon Loading composer repositories with package information Updating dependencies Lock file operations: 5 installs, 0 updates, 0 removals - Locking nesbot/carbon (2.67.0) - Locking symfony/polyfill-mbstring (v1.27.0) - Locking symfony/polyfill-php80 (v1.27.0) - Locking symfony/translation (v6.3.0) - Locking symfony/translation-contracts (v3.3.0) ....
After the installation is complete, you can see that Composer created two files
composer.lock along with a
root@vps:~/my-first-composer-project# ls -l total 28 -rw-r--r-- 1 root root 60 Jun 13 20:55 composer.json -rw-r--r-- 1 root root 16387 Jun 13 20:55 composer.lock drwxr-xr-x 6 root root 4096 Jun 13 20:55 vendor root@vps:~/my-first-composer-project#
Create a new file named
testing.php and paste the following content.
<?php require __DIR__ . '/vendor/autoload.php'; use Carbon\Carbon; printf("Now: %s", Carbon::now());
Run the script by running the following command.
root@vps:~/my-first-composer-project# php testing.php Now: 2023-06-13 20:58:35root@vps:~/my-first-composer-project#
Next, if you want to update the package then you can use the following command.
root@vps:~/my-first-composer-project# composer update Do not run Composer as root/super user! See https://getcomposer.org/root for details Continue as root/super user [yes]? yes Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled. Loading composer repositories with package information Updating dependencies Nothing to modify in lock file Installing dependencies from lock file (including require-dev) Nothing to install, update or remove Generating autoload files 5 packages you are using are looking for funding. Use the `composer fund` command to find out more! No security vulnerability advisories found root@vps:~/my-first-composer-project#