Introduzione

In questo tutorial tratteremo i passaggi necessari per installare il PHP 7.4 predefinito della distribuzione Ubuntu 20.04 LTS Focal Fossa e integrarlo con Nginx e Apache.

La maggior parte dei popolari framework e applicazioni PHP, inclusi WordPress, Laravel, Drupal e Nextcloud, sono compatibili con PHP 7.4.

Prerequisiti

Prima di iniziare con questa esercitazione, assicurarsi di aver effettuato l'accesso come utente con privilegi sudo.

Se desideri installare PHP su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare PHP 7.4 per Apache

Se si utilizza Apache come server Web per installare PHP e il modulo PHP di Apache, eseguire il comando seguente:

sudo apt install php libapache2-mod-php

Una volta installati i pacchetti, riavvia il servizio Apache:

sudo systemctl restart apache2

Installare di PHP 7.4 per Nginx

A differenza di Apache, Nginx non ha un supporto integrato per l'elaborazione dei file PHP, quindi è necessario installare un'applicazione separata come PHP FPM ("gestore di processi fastCGI") che gestirà i file PHP.

Per installare i pacchetti FPM PHP e PHP, eseguire il comando seguente:

sudo apt install php-fpm

Una volta installati i pacchetti è possibile verificare lo stato del servizio FPM di PHP con:

systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-05-06 16:34:04 CEST; 7s ago
       Docs: man:php-fpm7.4(8)
    Process: 28850 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS)
   Main PID: 28839 (php-fpm7.4)
     Status: "Ready to handle connections"
      Tasks: 3 (limit: 2286)
     Memory: 10.2M
     CGroup: /system.slice/php7.4-fpm.service
             ├─28839 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─28848 php-fpm: pool www
             └─28849 php-fpm: pool www

Ora puoi modificare il blocco server Nginx e aggiungere le seguenti righe in modo che Nginx possa elaborare i file PHP specificando la versione installata, in questo caso la 7.4:

server {

    # . . . il resto del codice

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

Prima di riavviare Nginx, testare la corretta configurazione:

sudo nginx -t

Non dimenticare di riavviare il servizio Nginx in modo che la nuova configurazione abbia effetto:

sudo systemctl restart nginx

Installare estensioni PHP

Per estendere le funzionalità principali di PHP è possibile installare alcune estensioni aggiuntive. Le estensioni PHP sono disponibili come pacchetti e possono essere facilmente installate con:

sudo apt install php-[extname]

Ad esempio, se desideri installare le estensioni MySQL e GD PHP, esegui il comando seguente:

sudo apt install php-mysql php-gd

Dopo aver installato una nuova estensione PHP, non dimenticare di riavviare Apache o il servizio FPM PHP, a seconda della configurazione.

Test di elaborazione PHP

Per verificare se il tuo server web è configurato correttamente per l'elaborazione PHP, crea un nuovo file chiamato info.php all'interno della directory /var/www/html con il seguente codice:

sudo nano /var/www/html/info.php
<?php phpinfo(); ?>

Salva il file, apri il browser che preferisci e visita http://TUO_DOMINO_O_IP/info.php

La funzione phpinfo stamperà le informazioni sulla configurazione di PHP.

Gestire PHP

Per verificare la versione di PHP installata sul sistema, digitare il seguente comando:

php -v
PHP 7.4.3 (cli) (built: May  5 2020 12:14:27) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Ipotizzando di aver installato diverse versioni di PHP, è possibile cambiare la versione in uso dal terminale con il seguente comando:

sudo update-alternatives --set php /usr/bin/php7.x

Per cambiare la versione in uso da Apache, utilizzare il seguente comando di esempio, che disabilita php 7.2 e abilita php 7.4 e riavvia Apache:

sudo a2dismod php7.2; sudo a2enmod php7.4; sudo service apache2 restart

Per cambiare la versione in uso per Nginx, è necessario aprire il file di configurazione e cambiare la versione come visto nei paragrafi precedenti.

Conclusione

PHP è stato installato correttamente sul server Ubuntu 20.04 LTS Focal Fossa. Puoi anche leggere come installare e configurare un progetto PHP con Composer.