in How To

How to: PHP – Aggiornamento di versione da 7.0 a 7.2

L’aggiornamento PHP prevede una serie di operazioni da svolgere con cura per evitare di compromettere il funzionamento del sistema. La cosa migliore da fare sarebbe quella di eseguire un backup del sistema. Seguiamo questi semplici passi.

a. verifichiamo la versione PHP installata.

php -v

nel mio caso ho trovato la versione 7.0.33

PHP 7.0.33-0ubuntu0.16.04.14 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33-0ubuntu0.16.04.14, Copyright (c) 1999-2017, by Zend Technologies

b. individuiamo i file di configurazione utilizzati da PHP con il comando

php --ini

il risultato sarà simile a questo

Configuration File (php.ini) Path: /etc/php/7.0/cli
Loaded Configuration File:         /etc/php/7.0/cli/php.ini
Scan for additional .ini files in: /etc/php/7.0/cli/conf.d
Additional .ini files parsed:      /etc/php/7.0/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.0/cli/conf.d/10-opcache.ini,
/etc/php/7.0/cli/conf.d/10-pdo.ini,
/etc/php/7.0/cli/conf.d/15-xml.ini,
/etc/php/7.0/cli/conf.d/20-calendar.ini,
/etc/php/7.0/cli/conf.d/20-ctype.ini,
/etc/php/7.0/cli/conf.d/20-curl.ini,
/etc/php/7.0/cli/conf.d/20-dom.ini,
/etc/php/7.0/cli/conf.d/20-exif.ini,
/etc/php/7.0/cli/conf.d/20-fileinfo.ini,
/etc/php/7.0/cli/conf.d/20-ftp.ini,
/etc/php/7.0/cli/conf.d/20-gd.ini,
/etc/php/7.0/cli/conf.d/20-gettext.ini,
/etc/php/7.0/cli/conf.d/20-iconv.ini,
/etc/php/7.0/cli/conf.d/20-intl.ini,
/etc/php/7.0/cli/conf.d/20-json.ini,
/etc/php/7.0/cli/conf.d/20-mbstring.ini,
/etc/php/7.0/cli/conf.d/20-mcrypt.ini,
/etc/php/7.0/cli/conf.d/20-mysqli.ini,
/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.0/cli/conf.d/20-phar.ini,
/etc/php/7.0/cli/conf.d/20-posix.ini,
/etc/php/7.0/cli/conf.d/20-readline.ini,
/etc/php/7.0/cli/conf.d/20-shmop.ini,
/etc/php/7.0/cli/conf.d/20-simplexml.ini,
/etc/php/7.0/cli/conf.d/20-sockets.ini,
/etc/php/7.0/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.0/cli/conf.d/20-sysvsem.ini,
/etc/php/7.0/cli/conf.d/20-sysvshm.ini,
/etc/php/7.0/cli/conf.d/20-tokenizer.ini,
/etc/php/7.0/cli/conf.d/20-wddx.ini,
/etc/php/7.0/cli/conf.d/20-xmlreader.ini,
/etc/php/7.0/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.0/cli/conf.d/20-xsl.ini

nel quale è possibile vedere la cartella /etc/php/7.0/ in cui è installato PHP.

.. salviamo queste informazioni nel file php-ini.log tramite il comando

php --ini > php-ini.log

.. verifichiamo e salviamo l’elenco dei moduli PHP installati tramite

php -m

e salviamone il contenuto nel file php-modules.log tramite

php -m > php-modules.log

.. facciamo una copia della cartella PHP /etc/php/7.0/ attualmente in uso

sudo cp -a /etc/php/7.0/ /etc/php/7.0.old

Aggiungiamo nel repository per la versione ufficiale di PHP 7.2 tramite

sudo add-apt-repository ppa:ondrej/php

Nel caso in cui PHP sia utilizzato con Apache2 si dovrà aggiungere anche

sudo add-apt-repository ppa:ondrej/apache2

Verifichiamo l’elenco del software dai repositories e installiamo la nuova versione di PHP

sudo apt-get update

Se durante l’aggiornamento dovesse verificarsi un errore tipo perl: warning: Setting locale failed. leggi su questo articolo come risolverlo.

Ora si può procedere con l’installazione di PHP 7.2

sudo apt-get install php7.2

Una volta completata l’installazione si può verificare che la versione PHP si sia aggiornata tramite il comando

php -v

che riporterà la versione installata, che nel mio caso è PHP 7.2.31

PHP 7.2.31-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May 14 2020 08:27:14) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.31-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

A questo punto si può verificare se i moduli PHP aggiornati sono stati installati all’interno di Apache tramite

ls -1 /etc/apache2/mods-available/php*

che mostrerà un risultato simile al seguente

/etc/apache2/mods-available/php7.0.conf
/etc/apache2/mods-available/php7.0.load
/etc/apache2/mods-available/php7.2.conf
/etc/apache2/mods-available/php7.2.load

A questo punto si potrà procedere a disabilitare la versione di PHP precedente e abilitare PHP appena installato.

Per disattivare la versione PHP 7.0 si dovrà utilizzare

a2dismod php7.0

che mostrerà il messaggio

Module php7.0 disabled.
To activate the new configuration, you need to run:
  service apache2 restart

Anche se è indicato di fare il riavvio di Apache per rendere esecutiva la modifica, in questo momento possiamo evitare. Faremo un riavvio al termine dell’installazione della nuova versione.

L’abilitazione del nuovo PHP dovrà essere eseguito tramite il comando

a2enmod php7.2

che riporterà il messaggio

Enabling module php7.2.
To activate the new configuration, you need to run:
  service apache2 restart

Verifichiamo che Apache abbiamo abilitato i moduli PHP aggiornati tramite il comando

ls -1 /etc/apache2/mods-enabled/php*
/etc/apache2/mods-enabled/php7.2.conf
/etc/apache2/mods-enabled/php7.2.load

Visto che i moduli sono presenti nel percorso di Apache /etc/apache2/mods-enabled/ possiamo procedere con il riavvio del servizio Apache tramite il comando

apachectl restart

Operazione conclusa!

Verifichiamo che tutto funzioni correttamente e se dovesse presentarsi qualche problema in fase di esecuzione delle pagine PHP possiamo sempre consultare i file php-ini.log e php-modules.log e la cartella /etc/php/7.0.old creati prima di iniziare l’aggiornamento.

Share

Scrivi un commento

Commento