GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare più versioni di PHP su Ubuntu 20.04, 18.04, 20.10

Questo tutorial mostra come installare più versioni di PHP su Ubuntu e fare in modo che un particolare host virtuale Apache o un blocco server Nginx ne utilizzi uno. Questo è utile quando hai più applicazioni web sul tuo server ma una o due di esse non sono compatibili con la versione PHP nel repository Ubuntu predefinito. Il repository Ubuntu 18.04 include PHP7.2 e il repository Ubuntu 20.04 include PHP7.4. Vedremo come installare PHP7.3 , PHP7.4 e PHP8.0 su un singolo server Ubuntu.

Installa più versioni di PHP su Ubuntu tramite PPA

Il modo più semplice per installare più versioni di PHP è utilizzare il PPA di Ondřej Surý, che è uno sviluppatore Debian. Per aggiungere questo PPA, esegui i seguenti comandi nel terminale. Il software-properties-common il pacchetto è necessario se si desidera installare il software da PPA. Viene installato automaticamente sul desktop di Ubuntu, ma potrebbe mancare sul tuo server Ubuntu.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

Ora puoi installare PHP8.0 su Ubuntu eseguendo il comando seguente.

sudo apt install php8.0 php8.0-fpm

E installa alcune comuni estensioni PHP8.0.

sudo apt install php8.0-mysql php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl

Puoi visualizzare tutte le estensioni PHP7.4 disponibili digitando sudo apt install php8.0 e premendo Tab tasto due volte.

Per installare PHP7.4 su Ubuntu, esegui

sudo apt install php7.4 php7.4-fpm

Installa alcune comuni estensioni PHP7.4.

sudo apt install php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

Puoi installare PHP7.3 allo stesso modo. Sostituisci semplicemente il numero di versione in questi comandi.

Suggerimento :PHP5.6, PHP7.0 e PHP7.2 hanno raggiunto la fine del ciclo di vita, ma puoi comunque ottenere correzioni di sicurezza da questo PPA.

Cambia versione PHP in Apache Virtual Host

Per impostazione predefinita, Apache utilizza una versione PHP su tutti gli host virtuali. Se desideri utilizzare una versione PHP diversa in un particolare host virtuale, dovrai disabilitare il modulo PHP Apache ed eseguire il codice PHP tramite PHP-FPM. Controlla se mod_php è installato.

dpkg -l | grep libapache2-mod-php

Se è installato, è necessario disabilitarlo. Ad esempio, ho libapache2-mod-php7.4 installato sul mio server Ubuntu 20.04,

Lo disabilito eseguendo:

sudo a2dismod php7.4

Devi anche disabilitare il modulo MPM prefork.

sudo a2dismod mpm_prefork

Ora devi eseguire il comando seguente per abilitare tre moduli per poter usare PHP-FPM, indipendentemente dal fatto che mod_php è installato sul tuo server.

sudo a2enmod mpm_event proxy_fcgi setenvif

Lo snippet di configurazione PHP-FPM si trova in /etc/apache2/conf-available/ .

Supponiamo di voler utilizzare PHP8.0 in un host virtuale Apache, quindi aprire il file di configurazione dell'host virtuale e aggiungere la seguente riga in <VirtualHost> tag.

Include /etc/apache2/conf-available/php8.0-fpm.conf

In questo modo:

Salva e chiudi il file. Quindi controlla la sintassi.

sudo apachectl -t

Riavvia Apache per rendere effettive le modifiche.

sudo systemctl restart apache2

Ora supponiamo che tu voglia usare PHP7.3 nell'host virtuale Mautic perché Mautic non è compatibile con PHP7.4, quindi aggiungi la seguente riga nel tuo host virtuale Mautic tra <VirtualHost> tag e quindi riavvia Apache.

Include /etc/apache2/conf-available/php7.3-fpm.conf

Per testare quale versione di PHP è utilizzata dal tuo host virtuale, puoi creare un info.php file nella radice del tuo documento (diciamo /var/www/html ).

sudo nano /var/www/html/info.php

Incolla il seguente codice PHP nel file.

<?php phpinfo(); ?>

Salva e chiudi il file. Quindi nella barra degli indirizzi del browser, digita

your-domain.com/info.php

Cambia versione PHP in Nginx Server Block

È molto facile cambiare la versione di PHP nel blocco del server Nginx. Come probabilmente saprai, Nginx esegue il codice PHP tramite PHP-FPM, che è in ascolto su un socket Unix. Il file socket si trova in /run/php/ directory.

Come puoi vedere dallo screenshot, sul mio server sono presenti diversi file socket PHP-FPM (.sock) corrispondenti a diverse versioni di PHP. Il tuo file di blocco del server Nginx in genere ha il seguente snippet per connettersi al server PHP-FPM.

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

La versione PHP utilizzata da Nginx è determinata dalla terza riga dello snippet. Per utilizzare PHP8.0 in un particolare blocco di server Nginx, cambia quella riga in:

fastcgi_pass unix:/run/php/php8.0-fpm.sock;

Per utilizzare PHP7.3 nel blocco server Nginx, cambia quella riga in

fastcgi_pass unix:/run/php/php7.3-fpm.sock;

Sono sicuro che ora hai l'idea. Salva e chiudi il file. Quindi ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Per testare quale versione di PHP è utilizzata dal tuo blocco server, puoi creare un info.php file nella radice del tuo documento (diciamo /var/www/html ).

sudo nano /var/www/html/info.php

Incolla il seguente codice PHP nel file.

<?php phpinfo(); ?>

Salva e chiudi il file. Quindi nella barra degli indirizzi del browser, digita

your-domain.com/info.php

Come impostare la versione PHP predefinita per la riga di comando

Se installi una versione più recente di PHP su Ubuntu, diventerà la versione predefinita per la riga di comando. Ho installato PHP8.0, ma voglio comunque PHP7.4 come versione predefinita per la riga di comando.

Per impostare la versione PHP predefinita della riga di comando, eseguire il comando seguente.

sudo update-alternatives --config php

Per controllare la versione corrente di PHP da riga di comando, esegui

php --version


Ubuntu
  1. Come installare PHP 7 su Ubuntu 14.04

  2. Come installare PHP 7 su Ubuntu 15.04

  3. Come installare PHP 7.3 su Ubuntu 18.04 LTS

  4. Come installare PHP 7.2 su Ubuntu 16.04

  5. Come installare PHP 7.3 su Ubuntu 18.04

Come installare PHP 8.0 su Ubuntu 20.04

Come passare tra più versioni di PHP in Ubuntu

Come installare PHP 8.0 su Ubuntu 20.04 / 18.04

Come installare diverse versioni di PHP (5.6, 7.x e 8.0) in Ubuntu

Come installare PHP in Ubuntu 22.04

Come installare PHP su Ubuntu 22.04