Tutorial > Come installare e utilizzare Composer per PHP su CentOS 8

Come installare e utilizzare Composer per PHP su CentOS 8

Pubblicato il: 19 novembre 2020

CentOS Composer PHP Sviluppo

Composer è uno strumento che ti permette di organizzare al meglio le dipendenze utilizzate dai tuoi progetti sviluppati in PHP. Oltre a installare facilmente librerie di terze parti, Composer dispone di diversi comandi per verificare e installare eventuali aggiornamenti, rimuovere dipendenze non necessarie e molto altro.

In questo tutorial vedremo come creare un nuovo progetto tramite Composer, installare la libreria monolog come dipendenza, e verificare il suo corretto funzionamento sul tuo server CentOS 8.

Per iniziare dovrai connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Installazione di Apache con supporto per PHP

Per poter utilizzare PHP e Composer hai bisogno innanzitutto di installare Apache con supporto per PHP sul tuo server.

Procedi aggiornando i pacchetti del sistema tramite:

yum install update -y

Quindi installa e avvia Apache tramite i comandi:

yum install httpd -y

systemctl start httpd.service

Al completamento delle operazioni, visitando l’indirizzo IP della tua macchina tramite un browser, dovresti visualizzare quanto segue:

http://[INDIRIZZO_IP_SERVER]/

Pagina test Apache

Se tutto funziona correttamente, puoi procedere all’installazione del pacchetto PHP:

yum install php -y

Riavvia quindi il servizio Apache:

systemctl restart httpd.service

Dopo aver completato l'installazione, puoi verificarne il corretto funzionamento creando un file “test.php” nella directory root di Apache:

echo "" >>  /var/www/html/index.php

Visitando il tuo server al suo indirizzo IP dovresti ora visualizzare la pagina di conferma della versione di PHP installata:

Pagina Phpinfo

Installazione di Composer

Per prima cosa spostati nella directory principale del web server Apache:

cd /var/www/html/

Procedi quindi con l’installazione di Composer attraverso i seguenti comandi:

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

Nel caso dovessi riscontrare qualche problema, ti consigliamo di seguire le istruzioni presenti sul sito ufficiale di Composer.

Se l’installazione è andata a buon fine dovresti trovare nella directory un nuovo file chiamato composer.phar:

ls -lt

-rwxr-xr-x. 1 root root 1994167 Aug 27 06:40 composer.phar
-rw-r--r--. 1 root root      20 Aug 27 06:21 index.php

A questo punto potresti iniziare a utilizzare Composer richiamandolo attraverso PHP, ad esempio:

php composer.phar -v

In questa guida proseguiamo invece a installarlo a livello globale, digitando:

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

In questo modo puoi richiamarlo più facilmente attraverso il comando:

composer -v 

Creazione di un progetto con Composer

Procedi creando un progetto base per la tua applicazione, lanciando questo comando all’interno della directory /var/www/html :

composer init

Ti verranno richieste una serie di informazioni, come ad esempio il nome e l’autore del progetto:

Package name (/) [root/root]: aruba/comp-test
Description []:
Author [, n to skip]: n
Minimum Stability []:
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []:

In seguito Composer ti chiederà se desideri definire delle dipendenze direttamente in questa fase, per adesso rispondi negativamente:

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

{
    "name": "aruba/comp-test",
    "type": "project",
    "require": {}
}

Conferma quindi i dati appena inseriti:

Do you confirm generation [yes]? yes

Composer utilizzerà le informazioni appena inserite per preparare il file composer.json all’interno della cartella attuale. Questo file non solo contiene quanto scritto sopra, ma viene utilizzato per contenere diversi metadati del progetto e le sue dipendenze.

Utilizzo di una dipendenza

Per installare qualsiasi dipendenza basta utilizzare il comando “require” di Composer.

Tutte le librerie installate attraverso Composer verranno salvate all’interno della directory “vendor” del nostro progetto, e memorizzate all’interno del file composer.json.

In questo tutorial utilizzeremo monolog, una libreria in grado di gestire file di log. Per installarla ti basta lanciare il comando:

composer require monolog/monolog

Puoi quindi aggiornare il file “index.php” con il seguente listato:

<?php

// Richiama l’autoloading delle classi
require __DIR__ . '/vendor/autoload.php';

// Prepara un nuovo logger
$log = new Monolog\Logger('name');

// Crea il file di log “app.log” nella directory attuale
$log--->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));

//Salva un testo di esempio:
$log->addWarning('Test monolog');

Salva il file appena modificato, ed eseguilo da riga di comando:

php index.php

Se tutto funziona correttamente troverai il nuovo file di log “app.log” nella directory:

cat app.log

[2020-08-27 12:09:35] name.WARNING: Test monolog [] []

Aggiunta del file composer.lock

Durante l’installazione di un progetto tramite il comando “install”, Composer controlla l’esistenza del file “composer.lock”.

Nel caso in cui il file non sia presente, vuol dire che si tratta di una prima installazione del progetto. In questo caso, Composer installerà tutte le dipendenze indicate dal file composer.json, con la loro ultima versione disponibile, nella cartella “vendor”.

Una volta completato, salverà tutti i numeri di versione di ogni singola dipendenza scaricata in un nuovo file composer.lock, in modo da permettere ad altre installazioni dello stesso progetto di utilizzare le stesse versioni con cui il progetto è stato creato.

Nel caso in cui invece il file sia già presente all’interno della directory attuale, Composer scaricherà le dipendenze specificate nel file composer.json, utilizzando però i numeri di versione indicati nel file composer.lock.

Qualora il tuo progetto dovesse utilizzare strumenti di revisione del software, ti consigliamo quindi di salvare all’interno del repository non solo il file composer.json, ma anche il file composer.lock indicato sopra.