Un articolo che nasce per due motivi relativi a Chevereto e alle installazioni di test che uso e tengo sempre da parte in caso di necessità su Altervista: ho spostato tutto ciò che riguarda i “diff” in un repository di GitHub ad-hoc, ora lo trovi all’indirizzo github.com/gfscom/chevereto-diff e sì, ne ho approfittato anche per aggiornare i vecchi articoli sul blog e puntare i collegamenti al nuovo spazio riservato a questo tipo di file. L’altro motivo è che ti metto qui degli appunti riguardo un salto abbastanza importante: dalla 3.18.0 alla 3.20.9 (e non oltre, anche se avrei voluto arrivare all’attuale 3.20.16, poi capirai perché), file intermedi e ritocchi compresi.
Sia chiaro: il miglior metodo per aggiornare il software è certamente quello di utilizzare la funzione integrata nella dashboard amministrativa, ma sfortunatamente non tutti gli spazi web condivisi permettono al processo di aggiornamento di funzionare correttamente e portare a termine i vari compiti (Altervista è certamente uno di questi).
Chevereto: 3.18.0 verso 3.18.3
Ho fatto alcuni test fallendo e tornando indietro grazie ai backup che avevo, quindi ti permetto di evitare gli errori fornendoti i vari salti da fare per “stare sul tranquillo“. Prima di partire però, proprio perché ci sono passato io stesso, il doveroso consiglio:
Il primo passaggio da affrontare è quello di caricare i file necessari all’aggiornamento da Chevereto 3.18.0 verso la 3.18.3, ultima versione minore prima del passaggio alla 3.20 (saltando a piè pari la 3.19). Il file che puoi usare si trova all’indirizzo github.com/gfscom/chevereto-diff/raw/main/3.18.3/3.18.0-to-3.18.3.zip e va scompattato e caricato sul tuo spazio FTP sovrascrivendo i file già presenti. Al termine del caricamento dovrai accedere la tua dashboard amministrativa e concludere l’installazione dell’aggiornamento in produzione, roba piuttosto semplice e immediata (basta un clic).
In caso di errore (immagini WebP non supportate)
Mi è capitato su una delle installazioni di test di incorrere in un errore di immagini WebP non supportate dalla libreria Imagick. Poco male direi. Ammesso che tu non possa mettere mano alla configurazione di quello spazio hosting / server, ti basterà andare ad aprire in modifica il file settings.php
che si trova nella cartella app
e inserire in coda questa riga:
$settings['image_formats_available'] = ['PNG', 'GIF', 'BMP', 'JPG'];
Tutto riportato anche sul sito web ufficiale, giusto per la cronaca. Salva il file e ricaricalo se necessario sullo spazio FTP, ora potrai concludere l’installazione dell’aggiornamento.
Chevereto: 3.20.0 / 3.20.9
Andando a fare pulizia dei file rimasti identici nel salto 3.18.3 → 3.20.0, ci si ritrova davanti a un file .htaccess
differente che potrebbe creare dei potenziali problemi sul tuo spazio hosting / server (sì, diciamo che Altervista in generale è un pelo troppo schizzinoso). Nel mio caso ho preferito caricare sì quello proposto dalla nuova versione di Chevereto, ma mantenere un backup (rinominato) di quello che c’era prima al suo posto, così poi da poter sempre “tornare indietro” senza necessità di ripristinare l’intero backup di file e database.
Il file per passare da 3.18.3 a 3.18.20 si trova all’indirizzo github.com/gfscom/chevereto-diff/raw/main/3.20.0/3.20.0_diff.zip e funziona esattamente come detto nel paragrafo precedente. A fine upload, tentando di visitare la tua galleria, potresti ritrovarti davanti a un errore di questo tipo (dove TUOUTENTE
ovviamente viene sostituito dal tuo reale username):
Parse error: syntax error, unexpected '?' in /membri/TUOUTENTE/app/loader.php on line 67
Non preoccuparti. Quasi certamente la colpa è proprio del file .htaccess
. Apri quello che ti eri tenuto da parte come backup e porta dentro quello nuovo ciò che manca all’appello. Una volta terminato (e salvato) prova a ricaricare la pagina, dovresti riuscire a visitare la tua galleria trovando però il solito alert di installazione che dice che il database andrà aggiornato. Lanciando l’aggiornamento potresti imbatterti in un altro errore (tanto per cambiare), questo:
Problems executing the SQL update query. It is recommended that you issue the above SQL queries manually.
Che ti porta quindi a dover lanciare manualmente le query SQL (dove db_table_prefix
andrà sostituito con il tuo reale prefisso delle tabelle contenute nel database MySQL):
UPDATE `db_table_prefix_settings` SET `setting_value` = 1 WHERE `setting_name` = 'maintenance';
DROP TABLE IF EXISTS `db_table_prefix_assets`;
CREATE TABLE `db_table_prefix_assets` (
`asset_id` bigint(32) NOT NULL AUTO_INCREMENT,
`asset_key` varchar(255) NOT NULL,
`asset_md5` varchar(32) NOT NULL,
`asset_filename` varchar(255) NOT NULL,
`asset_file_path` varchar(255) NOT NULL,
`asset_blob` blob,
PRIMARY KEY (`asset_id`),
UNIQUE KEY `key` (`asset_key`) USING BTREE,
KEY `md5` (`asset_md5`),
KEY `filename` (`asset_filename`),
KEY `file_path` (`asset_file_path`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `db_table_prefix_pages` ADD `page_code` text ;
UPDATE `db_table_prefix_settings` SET `setting_value`="default/favicon.png" WHERE `setting_name`="favicon_image" AND `setting_value`="favicon.png";
UPDATE `db_table_prefix_settings` SET `setting_value`="default/logo.png" WHERE `setting_name`="logo_image" AND `setting_value`="logo.png";
UPDATE `db_table_prefix_settings` SET `setting_value`="default/logo.svg" WHERE `setting_name`="logo_vector" AND `setting_value`="logo.svg";
UPDATE `db_table_prefix_settings` SET `setting_value`="default/home_cover.jpg" WHERE `setting_name`="homepage_cover_image" AND `setting_value`="home_cover.jpg";
UPDATE `db_table_prefix_settings` SET `setting_value`="default/home_cover.jpg" WHERE `setting_name`="homepage_cover_image" AND `setting_value` IS NULL;
UPDATE `db_table_prefix_settings` SET `setting_value`="default/logo_homepage.png" WHERE `setting_name`="logo_image_homepage" AND `setting_value`="logo_homepage.png";
UPDATE `db_table_prefix_settings` SET `setting_value`="default/logo_homepage.svg" WHERE `setting_name`="logo_vector_homepage" AND `setting_value`="logo_homepage.svg";
DELETE FROM `db_table_prefix_settings` WHERE `setting_name` = 'minify_enable';
UPDATE `db_table_prefix_settings` SET `setting_value` = "3.20.0" WHERE `setting_name` = "chevereto_version_installed";
UPDATE `db_table_prefix_settings` SET `setting_value` = 0 WHERE `setting_name` = "maintenance";
Nel caso in cui questo ti porti nuovamente a un errore (tipo #1071 - Specified key was too long; max key length is 767 bytes
), ti invito a dare un’occhiata alla versione del MySQL in uso, probabilmente si tratterà di una vecchia 5.x che ti consiglio – spassionatamente – di far portare alla 8, lo si fa da pannello di controllo dell’account di Altervista e necessita di circa mezz’oretta di attesa (Altervista specifica che l’aggiornamento viene completato in poche ore):
A prescindere che questa modifica ti permetta successivamente di accedere nuovamente la tua galleria fotografica o meno, posso dirti che è arrivato il momento di fare l’ultimo passaggio e saltare alla 3.20.9. Perché? Perché questa particolare versione intermedia permette di correggere un problema legato alle tabelle InnoDB che dovranno essere migrate a MyISAM (come riportato in documentazione: v3-docs.chevereto.com/manual/troubleshooting/server-issues.html#mysql-database) offrendoti la possibilità di eseguire l’azione tramite procedura guidata di upgrade. Trovi il file che ti serve (per saltare dalla 3.20.0 alla 3.20.9) all’indirizzo github.com/gfscom/chevereto-diff/raw/main/3.20.9/3.20.0-to-30.20.9.zip.
Attenzione ancora una volta al file .htaccess
, la procedura per il resto rimane identica a quella eseguita per arrivare fino a qui. Al termine dell’upload accedi la tua dashboard amministrativa di Chevereto ed esegui l’ultimo step di aggiornamento del database. Le novità (già a colpo d’occhio) sono diverse, te ne accorgerai certamente.
Perché non 3.20.16?
In realtà la domanda corretta sarebbe “Perché non 3.20.10?“. La risposta è sfortunatamente semplice: questione di compatibilità.
A partire dalla 3.20.10, Chevereto fa uso mandatorio di PHP 7.4, versione non presente su Altervista poiché si salta dalla 7.3 alla 8.0. Dando un’occhiata al forum di supporto del prodotto si scopre che il ramo 3.x di Chevereto non è ancora stato reso ufficialmente compatibile con PHP 8.0 (lo è invece il 4.x, attualmente in beta) e questo può generare l’errore catturato nell’immagine poco sopra. È un vicolo cieco dal quale attualmente non si esce a meno che non arrivi un aggiornamento da parte di Rodolfo Berrios (lo sviluppatore del software) o di Altervista (che però nel forum continua a dare risposte poco chiare a chi chiede di attivare PHP 7.4 sui loro piani di hosting condiviso).
Al momento non c’è quindi alternativa se non rimanere sulla versione 3.20.9 (continuerò comunque ad approfondire la questione per capire se c’è una scappatoia, appena avrò un po’ di tempo a disposizione).
#StaySafe
Immagine di copertina Sara Kurfeß on Unsplash
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)