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.