3. Installare PHP

3. Installare PHP

Una volta installato Apache l’aggiunta di PHP richiede la stessa procedura.

Tenete presente che PHP è un ecosistema ampio, con molte componenti, librerie, framework, acceleratori… e con altrettante configurazioni.

Tutta questa parte aggiuntiva la salteremo intenzionalmente.

3.1. Installiamo PHP

Sempre operando dal nostro terminale sul server www.example.com diamo il seguente comando:

sudo apt install php8.1 php8.1-common php8.1-gd php8.1-mysql php8.1-imap php8.1-cli php8.1-cgi php-pear php8.1-curl php8.1-intl php8.1-pspell php8.1-sqlite3 php8.1-tidy php8.1-xmlrpc php8.1-xsl php8.1-zip php8.1-mbstring php-soap php8.1-soap php8.1-opcache php8.1-memcache php8.1-apcu php8.1-imagick libapache2-mod-php8.1

al termine dell’installazione riavviamo Apache per rendere esecutivo PHP:

sudo systemctl restart apache2

3.2. Verifichiamo PHP

Verifichiamo il PHP appena installato e caricato:

  1. creiamo ora la pagina info.php .
    Dal terminal sul server diamo il seguente comando

sudo nano /var/www/html/info.php
  1. inseriamo il seguente codice e usciamo salvando

<?php
    phpinfo();
?>
  1. dalla workstation client apriamo un web browser, come FireFox o Edge, e accediamo all’indirizzo http://www.example.com/info.php .
    Comparirà la seguente pagina!


Figura 6: Pagina auto-generata da PHP



3.3. Prima conclusione per PHP

In questa fase abbiamo raggiunto con totale successo il nostro obiettivo: abbiamo un webserver con PHP installato e funzionante: complementi!

Sicuramente vedremo delle performance eccellenti. In realtà abbiamo installato la soluzione più lenta per eseguire PHP. Questo diventerà rapidamente evidente all’accesso contemporaneo di più navigatori e alla messa in produzione di applicazioni PHP (giusto per capirci: WordPress, Joomla, ecc…).

Vale la pena fermarci un paio di minuti per spiegare potenzialità, limiti e soluzioni.

  • PHP: si tratta di un linguaggio di scripting interpretato. Malgrado lo sviluppo lo abbia portato ai livelli dei linguaggi moderni resta invariata la sua natura originale: gli vengono passate delle istruzioni, le compila al volo, esegue le istruzioni macchina, vengono passate al web server righe HTML ed il server le passa all’utente che le ha richieste.
    Questa architettura è semplice, funziona, ma obbliga ad ogni richiesta di ricreare il codice macchina e il codice HTML;

  • vantaggi e limiti: il vantaggio più rilevante è che non serve compilazione. PHP ricrea (=interpreta) tutto al volo. Quindi ogni scripting funziona in tempo reale. Aspetto particolarmente apprezzabile in caso di fixing, bug, ecc… Contemporaneamente è anche il limite più significativo perché richiede molto calcolo per ogni singola richiesta;

  • soluzioni: la prima soluzione è insita alla programmazione stessa. Le applicazioni PHP vanno progettate con sistemi di cache interne che creano solo una volta la parte fissa delle pagine web e ricalcolano ogni volta solo le parti dinamiche.
    Questo meccanismo viene potenziato da componenti aggiuntive di cache per PHP come APCu, Memcached, ecc…
    Un secondo importante acceleratore viene dall’uso di moduli di interconnessione tra il web server e PHP che elaborino parallelamente più richieste. Quindi, in alternativa al tradizionale mod_php (che abbiamo usato sopra) si impiegano FastCGI, PHP-FPM, ecc...

In conclusione ricordiamo il limite, per applicazioni piccole è trascurabile, per obiettivi più importanti abbiamo di serie diversi strumenti per mitigare e controllare il problema. Per obietti più ambiziosi abbiamo soluzioni che comportano un po’ di complessità e costi.

Per servizi critici e di alto livello vale la pena guardare ad altre tecnologie, meno note, più complesse, ma pagano alla grande tutti i rompicapo di progettazione, installazione e realizzazione dei servizi.