Aggiornare tutti i pacchetti PHP (lsphp) su OpenLiteSpeed: Guida a Snapshot e Rollback Senza Rischi

La recente vulnerabilità che ha colpito l’ecosistema PHP ha messo in chiaro una cosa: lasciare versioni non aggiornate dell’interprete sul server è un rischio che nessun amministratore di sistema può permettersi. Se gestisci un server VPS Ubuntu con OpenLiteSpeed, il problema principale non è aggiornare un singolo ramo di PHP, ma garantire che tutti i pacchetti lsphp installati vengano allineati senza rompere i siti in produzione.

Quando sul server coesistono diverse versioni (come PHP 8.1, 8.2 e 8.3 per vari virtual host), l’aggiornamento manuale pacchetto per pacchetto diventa lungo e soggetto a sviste. In questo articolo vediamo come aggiornare l’intera stack lsphp in un solo comando, creando prima una rete di protezione con snapshot e backup locale delle configurazioni per eseguire un ripristino immediato se qualcosa va storto.

Leggi anche: Aggiornare Versione di Ubuntu e Creare una Snapshot del Sistema

Pubblicità

1. Salvare lo stato del server: Snapshot e backup preventivo

Aggiornare l’interprete PHP equivale a sostituire il motore di un’auto in corsa: prima di girare la prima chiave inglese, devi assicurarti che l’auto sia bloccata in sicurezza.

Il livello di sicurezza zero: Snapshot dal provider

Lo snapshot a livello di infrastruttura è la scelta migliore. Cattura l’intero stato del disco e ti permette di tornare al secondo esatto prima della modifica. Puoi farlo direttamente dalla dashboard del tuo provider (Hetzner, DigitalOcean, AWS, Contabo, Linode) oppure tramite la rispettiva interfaccia a riga di comando.

Se usi Hetzner Cloud CLI:

Bash

hcloud server create-image --type snapshot --description "pre-php-update-$(date +%F)" NOME_SERVER

Se gestisci i tuoi nodi su DigitalOcean CLI:

Bash

doctl compute droplet-action snapshot ID_DROPLET --snapshot-name "pre-php-update-$(date +%F)"

Backup locale di versioni, pacchetti e configurazioni

Anche con lo snapshot attivo, crea sempre un archivio locale. Se l’aggiornamento fallisce solo su un modulo specifico, un ripristino chirurgico dei singoli pacchetti via terminale è molto più rapido rispetto al ripristino dell’intera macchina virtuale.

Crea la cartella di backup e salva l’elenco esatto delle versioni installate:

Bash

sudo mkdir -p /root/php-backup
dpkg-query -W -f='${Package}=${Version}\n' 'lsphp*' | sudo tee /root/php-backup/lsphp-versions.txt

Salva le configurazioni attive di PHP e OpenLiteSpeed in un archivio compresso:

Bash

sudo tar czf /root/php-backup/php-conf-$(date +%F).tar.gz /usr/local/lsws/lsphp*/etc /usr/local/lsws/conf

Copia i file .deb attualmente presenti nella cache di sistema. Ti serviranno se dovessi fare un downgrade offline senza passare dai repository di rete:

Bash

sudo mkdir -p /root/php-backup/debs && sudo cp /var/cache/apt/archives/lsphp*.deb /root/php-backup/debs/ 2>/dev/null

2. Aggiornare tutti i pacchetti lsphp in un solo comando

Invece di elencare a mano ogni estensione (lsphp83-curl, lsphp83-opcache, lsphp82-mysql e così via), utilizziamo dpkg e awk per estrarre al volo tutti i pacchetti LiteSpeed PHP attivi sulla macchina e passarli al gestore APT.

Esegui questa sequenza per aggiornare l’intera stack e riavviare il web server:

Bash

sudo apt update
sudo apt install --only-upgrade -y $(dpkg -l | awk '/^ii  lsphp/ {print $2}')
sudo systemctl restart lsws

Il comando individua automaticamente ogni pacchetto lsphp presente nel sistema e applica le ultime patch disponibili sul repository ufficiale di LiteSpeed.

3. Gestire l’eventuale PHP di sistema (Opzionale)

Su alcuni server, oltre ai moduli lsphp integrati in OpenLiteSpeed, potrebbero essere presenti i pacchetti PHP nativi di Ubuntu usati da script CLI, cronjob o altri servizi di supporto.

Leggi anche: Vulnerabilità PHP e Server Web: Come Aggiornare OpenLiteSpeed su VPS Ubuntu

Se la tua VPS utilizza anche questi pacchetti, aggiornali con la stessa logica:

Bash

sudo apt install --only-upgrade -y $(dpkg -l | awk '/^ii  php/ {print $2}')

Nel caso in cui tu stia utilizzando istanze PHP-FPM per particolari servizi secondari, riavvia i demoni dedicati:

Bash

sudo systemctl restart 'php*-fpm'

4. Verifica post-installazione e controllo dei log

Una volta completato l’upgrade, non fidarti soltanto dell’uscita senza errori di APT. Verifica che gli eseguibili rispondano correttamente e che il web server stia lavorando senza anomalie.

Controlla le versioni di ciascun binario lsphp presente sul sistema:

Bash

for v in /usr/local/lsws/lsphp*/bin/php; do echo "$v"; $v -v | head -n 1; done

Verifica lo stato operativo di OpenLiteSpeed:

Bash

sudo systemctl status lsws

Ispeziona le ultime righe del log degli errori alla ricerca di eventuali fallimenti nel caricamento di estensioni o moduli:

Bash

sudo tail -n 50 /usr/local/lsws/logs/error.log

Dopo aver eseguito i controlli da terminale, apri il browser: naviga sulle pagine dei siti ospitati, accedi ai rispettivi pannelli di amministrazione (come la dashboard di WordPress) e accertati che le chiamate alle API, la gestione delle immagini e le query al database rispondano regolarmente.

5. Procedura di Rollback: Come tornare indietro in caso di problemi

Se un sito smette di funzionare a causa di un’incompatibilità introdotta dall’aggiornamento, hai due opzioni per riportare il server allo stato iniziale.

Opzione A: Ripristino tramite Snapshot

È la soluzione più radicale. Dal pannello di controllo del tuo provider hosting seleziona la voce Restore o Rebuild from Snapshot.Nota di attenzione: Questa operazione sovrascrive l’intero disco. Qualsiasi dato modificato dopo la creazione dello snapshot (nuovi ordini e-commerce, commenti, caricamenti di file o modifiche ai database) andrà perso.

Opzione B: Downgrade mirato dei pacchetti

Se vuoi ripristinare solo la stack PHP mantenendo intatti i dati di sistema, usa il file delle versioni generato prima dell’aggiornamento:

Bash

sudo apt install --allow-downgrades -y $(cat /root/php-backup/lsphp-versions.txt)
sudo tar xzf /root/php-backup/php-conf-YYYY-MM-DD.tar.gz -C /
sudo systemctl restart lsws

(Sostituisci YYYY-MM-DD con la data esatta riportata sul file salvato in /root/php-backup/).

Se l’aggiornamento del repository ha già rimosso le vecchie versioni dai server remoti, forza l’installazione offline dai file .deb archiviati in precedenza:

Bash

sudo dpkg -i /root/php-backup/debs/*.deb
sudo systemctl restart lsws

Bloccare gli aggiornamenti automatici dei pacchetti ripristinati

Dopo aver effettuato il rollback, evita che un eventuale aggiornamento automatico di sistema (unattended-upgrades) aggiorni di nuovo i pacchetti appena ripristinati. Imposta il blocco temporaneo con apt-mark:

Bash

sudo apt-mark hold $(dpkg -l | awk '/^ii  lsphp/ {print $2}')

Quando sarà pronta la patch risolutiva o avrai sistemato il codice incompatibile sul sito, potrai sbloccare i pacchetti per consentire i futuri aggiornamenti:

Bash

sudo apt-mark unhold $(dpkg -l | awk '/^ii  lsphp/ {print $2}')

Automazione: Script unico per backup e aggiornamento

Se gestisci più VPS o preferisci eseguire l’intera procedura di salvataggio e aggiornamento in un solo passaggio (dopo aver fatto lo snapshot dal pannello del provider), puoi incollare questo blocco unico nel terminale:

Bash

sudo mkdir -p /root/php-backup/debs && \
dpkg-query -W -f='${Package}=${Version}\n' 'lsphp*' | sudo tee /root/php-backup/lsphp-versions.txt && \
sudo tar czf /root/php-backup/php-conf-$(date +%F).tar.gz /usr/local/lsws/lsphp*/etc /usr/local/lsws/conf && \
sudo cp /var/cache/apt/archives/lsphp*.deb /root/php-backup/debs/ 2>/dev/null; \
sudo apt update && \
sudo apt install --only-upgrade -y $(dpkg -l | awk '/^ii  lsphp/ {print $2}') && \
sudo systemctl restart lsws

Mantenere l’infrastruttura aggiornata è il pilastro fondamentale della sicurezza informatica. Eseguire queste operazioni strutturando prima un piano di ripristino solido permette di applicare le patch di sicurezza tempestivamente, eliminando il rischio di fermi macchina prolungati in produzione.

Altro per te

PHP
PHP Compatibility Checker
Controlla il tuo plugin WordPress prima di aggiornare PHP Verifica la compatibilità con PHP 8.0–8.5 Scopri eventuali problemi nel codice PHP Analizza il tuo plugin WordPress online Preparati a PHP 8.5
Verifica ora →
PDF Strumenti PDF gratis Nel browser, senza upload Apri gli strumenti

🔒

Contenuto riservato

Per scaricare questo file devi prima registrarti oppure accedere con il tuo account.

XWhatsAppTelegram