da php7.4 a php8.2 ma verso tutte le versioni

Ultimamente ho voluto cambiare versione di PHP e passare dalla 7.4 alla 8.2 per cedere alle richieste della nuova versione di nextcloud.

Anche se la versione di PHP che cercate non è nel vostro repository in nostro aiuto viene mr. Sury (https://deb.sury.org/), attuale manteiner di php per debian e ubuntu e che mette a nostra disposizione tutte le versioni dall 5.6 alla più recente 8.2.

A Otto che come me fa girare un debian 11 Bullseye serviva php5.6 per una sua app specifica e dato che non era più disponibile sui repo ufficiali di debian ha aggiunto :

deb https://packages.sury.org/php/ bullseye main

e il gioco è fatto, ora vediamo come caricarla correttamente sull sistema

Per prima cosa installiamo il necessario

# aptitude install libapache2-mod-php8.2 php8.2 php8.2-fpm

successivamente i moduli che ci servono , esempio

# aptitude install php8.2-cli php8.2-imagick php8.2-memcached etc..

Per prima cosa andiamo a sistemare eventuali configurazioni nei file php, alcuni programmi come owncloud chiedono di editare i file di cofigurazione, basta copiare le note sui vecchi faile se siete stati ordinati e avete commentato le vostre modifiche non avrete problemi e replicarle.

Ora andiamo a caricare i moduli a sistema, per prima cosa interrompiamo php7.4-fpm

#systemctl stop php7.4-fpm.service

ora carichiamo su apache2 il modulo corretto e scarichiamo il vecchio

# a2dismod php7.4-fpm
# a2enmod php8.2-fpm

Se sono presenti altre modifiche manuali sui file di apache2 andiamo a sistemarle e avviamo i nuovi servizi

#systemctl start php8.2-fpm.service
#systemctl restart apache2.service

Per verificare creaimo una pagina test.php sul server con :

<?php                                                                                                                                                         
   phpinfo();                                                                                                                                                
?>

se tutto è corretto vedremo :

Ultima cosa da fare è aggiornare la versione di PHP a sistema, verifichiamo

# php -v 
PHP 7.4.33 (cli) (built: Jun  9 2023 07:37:37) ( NTS ) 
Copyright (c) The PHP Group 
Zend Engine v3.4.0, Copyright (c) Zend Technologies 
   with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies

aggiorniamo :

# update-alternatives --config php 
There are 9 choices for the alternative php (providing /usr/bin/php). 

 Selection    Path             Priority   Status 
------------------------------------------------------------ 
 0            /usr/bin/php8.2   82        auto mode 
 1            /usr/bin/php5     50        manual mode 
 2            /usr/bin/php7.0   70        manual mode 
 3            /usr/bin/php7.1   71        manual mode 
 4            /usr/bin/php7.2   72        manual mode 
 5            /usr/bin/php7.3   73        manual mode 
* 6            /usr/bin/php7.4   74        manual mode 
 7            /usr/bin/php8.0   80        manual mode 
 8            /usr/bin/php8.1   81        manual mode 
 9            /usr/bin/php8.2   82        manual mode 

Press <enter> to keep the current choice[*], or type selection number: 9 
update-alternatives: using /usr/bin/php8.2 to provide /usr/bin/php (php) in manual mode

Ora avremo :

# php -v 
PHP 8.2.7 (cli) (built: Jun  9 2023 07:37:35) (NTS) 
Copyright (c) The PHP Group 
Zend Engine v4.2.7, Copyright (c) Zend Technologies 
   with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies

Nel caso volessimo tornare indietro basta sistemare il modulo corretto su apache2 e ricaricare i servizi giusti, in pochi passaggi torneremo alla versione precedente nel caso il nostro esperimento non fosse andato a buon fine.

Le app installate sul server e funzionati con php8.2-fpm sono :

  • nextcloud 26.0.2
  • mediawiki 1.39.3
  • Rainloop 1.7
  • Snapmail 2.8.2
  • simple file php gallery 4.11

Per ora tutto procede bene.

 

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.