In questi giorni per chi ha installato LibreNMS un pò di tempo fa riceverà il seguente messaggio di Alert
In pratica questo messaggio ci avvisa che la versione di PHP minima supportata dal LibreNMS è la 7.1.3 e che senza questa versione non sarà possibile ricevere gli aggiornamenti futuri.
Quindi non aggiornando il PHP il software continuerà a funzionare senza problemi ma non si aggiornerà più in automatico.
Infatti se proviamo a fare un Validate Config
Vediamo l’errore riportato nell’immaggine sovrastante che ci consiglia di fare l’upgrade alla versione di PHP 7.2 per continuare a ricevere gli aggiornamenti.
PRE REQUISITI
Lanciare il comando per l’update e l’upgrade del repository:
0 |
sudo apt-get update && apt-get upgrade |
È possibile utilizzare un repository di terze parti per installare l’ultima versione di PHP. Useremo il repository di Ondřej Surý.
Innanzitutto, assicurarsi di aver installato il seguente pacchetto in modo da poter aggiungere repository:
0 |
sudo apt-get install software-properties-common |
Successivamente, aggiungere il repository PHP da Ondřej con il comando:
0 |
sudo add-apt-repository ppa:ondrej/php |
quindi aggiornare la lista dei pacchetti con il comando:
0 |
sudo apt-get update |
INSTALLAZIONE PHP 7.2
Lanciare il comando:
0 |
sudo apt-get install php7.2 |
Questo comando installerà i seguenti pacchetti aggiuntivi:
libapache2-mod-php7.2
libargon2-0
libsodium23
libssl1.1
php7.2-cli
php7.2-common
php7.2-json
php7.2-opcache
php7.2-readline
Per verificare quindi che il PHP 7.2 sia installato sul server lanciare il comando
0 |
php -v |
Se è tutto corretto dovremmo vedere una schermata come quella sovrastante
A questo punto procedere con l’installazione di tutti gli altri pacchetti necessari a LibreNMS con il comando:
0 |
sudo apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml php7.2-ldap |
INSTALLAZIONE DEL MODULO PHP 7.2 MCRYPT
Per installare la versione 7.2 di questo pacchetto lanciare i seguenti comandi in sequenza:
0 |
sudo apt install php-dev libmcrypt-dev php-pear |
Ora che il PHP-7.2 e tutte le sue dipendenze richieste per installare mcrypt sono installate, eseguire i comandi elencati di seguito per installare il modulo PHP mcrypt su Ubuntu usando il canale PECL
0 1 |
sudo pecl channel-update pecl.php.net sudo pecl install mcrypt-1.0.1 |
Quando appare la domanda:
0 |
libmcrypt prefix? [autodetect] : |
Premere INVIO per procedere con l’autodetect
Dopo aver eseguito i comandi sopra, dovremmo vedere un messaggio che legge il modulo php mcrypt installato con successo …. e che dovremmo includere l’estensione mcrypt.so nel file php.ini …
0 1 2 3 4 |
Build process completed successfully Installing '/usr/lib/php/20170718/mcrypt.so' install ok: channel://pecl.php.net/mcrypt-1.0.1 configuration option "php_ini" is not set to php.ini location You should add "extension=mcrypt.so" to php.ini |
Lanciare il seguente comando per editare il file php.ini
0 |
sudo nano /etc/php/7.2/cli/php.ini |
Quindi aggiungere la riga sottostante nel file, appena sotto [PHP]
0 1 2 3 4 5 6 7 |
[PHP] ;;;;;;;;;;;;;;;;;;; ; About php.ini ; ;;;;;;;;;;;;;;;;;;; ; PHP's initialization file, generally called php.ini, is responsible for ; configuring many of the aspects of PHP's behavior. <strong>extension=mcrypt.so</strong> |
Salvare e chiudere il file di configurazione.
per verificare che sia tutto OK lanciare il comando:
0 |
php -i | grep "mcrypt" |
Se è tutto corretto dovremmo vedere le seguenti righe:
0 1 2 3 4 5 |
Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.*, convert.iconv.* mcrypt mcrypt support => enabled mcrypt_filter support => enabled mcrypt.algorithms_dir => no value => no value mcrypt.modes_dir => no value => no value |
MODIFICA DEI FILE DI CONFIGURAZIONE
Adesso editiamo i file di configurazione della versione PHP corretta.
Lanciamo in sequenza i comandi:
0 |
sudo nano /etc/php/7.2/fpm/php.ini |
Cercare la stringa ;date.timezone = quindi de-commentarla e aggiungere Europe/Rome
Salvare e chiudere il file php.ini
Adesso lanciamo il comando:
0 |
sudo nano /etc/php/7.2/cli/php.ini |
Quindi cercare la stringa ;date.timezone = quindi de-commentarla e aggiungere Europe/Rome
Salvare e chiudere il file php.ini
Per verificare che sia tutto ok lanciare il comando:
0 |
sudo timedatectl |
Dovremmo vedere le seguenti righe:
0 1 2 3 4 5 6 |
Local time: lun 2019-02-11 10:02:38 CET Universal time: lun 2019-02-11 09:02:38 UTC RTC time: lun 2019-02-11 09:02:38 Time zone: Europe/Rome (CET, +0100) Network time on: yes NTP synchronized: yes RTC in local TZ: no |
Lanciare quindi i seguenti comandi in sequenza:
0 1 2 |
sudo systemctl restart php7.2-fpm sudo systemctl restart MySQL systemctl enable php7.2-fpm |
CONFIGURAZIONE DI NGINX
Editare il file librenms.conf lanciando il comando:
0 |
sudo nano /etc/nginx/conf.d/librenms.conf |
Individuare la riga
0 |
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; |
e sostituirila con
0 |
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; |
Salvare e chiudere il file di configurazione.
Riavviare il server Nginx con il comando:
0 |
sudo systemctl restart nginx |
A questo punto il nostro server LibreNMS lavorerà con il PHP 7.2
NOTA BENE: se facciamo un Validate Config subito dopo aver fatto l’upgrade noteremo la presenza dell’alert. Bisogna attendere qualche ora per non vedere più il messaggio di errore.
Sono Raffaele Chiatto, un appassionato di informatica a 360°…
Mi sono avvicinato al mondo dell’informatica nel lontano 1996 con Windows 95 e da allora non ho più smesso di dedicarmi allo studio ed approfondimento di questo settore.
Laureato in Ingegneria Informatica nel 2009, lavoro nel campo dell’IT dal lontano 2001.
Articolo molto interessante!