Introduzione

In questo tutorial tratteremo i passaggi necessari per installare il PHP 7.2 predefinito della distribuzione Ubuntu 18.04 LTS e integrarlo con Nginx e Apache. Ti mostreremo anche come installare PHP 7.1 e 7.3.

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

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.2 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.2 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.2-fpm
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-02-08 11:59:40 CET; 13min ago
     Docs: man:php-fpm7.2(8)
 Main PID: 8680 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 2298)
   CGroup: /system.slice/php7.2-fpm.service
           ├─8680 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
           ├─8694 php-fpm: pool www
           └─8695 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.2:

server {

    # . . . il resto del codice

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-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.

Installare PHP 7.3 su Ubuntu 18.04

PHP 7.3 è l'ultima versione stabile di PHP. Eseguire i passaggi seguenti per installare PHP 7.3 su Ubuntu 18.04.

Inizia abilitando il repository PHP Ondrej:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Installa PHP 7.3 e alcuni dei moduli PHP più comuni:

sudo apt install php7.3 php7.3-common php7.3-opcache php7.3-cli php7.3-gd php7.3-curl php7.3-mysql php7.3-fpm

Per verificare l'installazione, esegui il seguente comando che stamperà la versione di PHP:

php -v
PHP 7.3.14-6+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb  5 2020 16:51:32) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.14, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.14-6+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

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

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

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

sudo a2dismod php7.3; sudo a2enmod php7.1; 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.

Installare PHP 7.1 su Ubuntu 18.04

Utilizzare PHP 7.1 solo se si intende installare un'applicazione non compatibile con PHP 7.2.

Segui i passaggi seguenti per installare PHP 7.1:

Abilita il repository PHP Ondrej digitando:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Installa PHP 7.1 e alcuni dei moduli PHP più comuni:

sudo apt install php7.1 php7.1-common php7.1-opcache php7.1-mcrypt php7.1-cli php7.1-gd php7.1-curl php7.1-mysql php7.1-fpm

Verifica l'installazione digitando:

php -v
PHP 7.1.33-9+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb  5 2020 16:53:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.33-9+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

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

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

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

sudo a2dismod php7.3; sudo a2enmod php7.1; 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 18.04. Puoi anche leggere come installare e configurare un progetto PHP con Composer.