Vai al contenuto
Davide DB

3.4 Migrazione da IPB 1.3 (solo DB) a IPS 3.4.X

Recommended Posts

Davide DB

Ciao a tutti,

 

Nei mesi precedenti avevo chiesto info su come migrare da una vecchissima IPB 1.3 a una attuale (beh quasi) 3.4.9.

Daniele e altri avevano cercato di darmi una mano e sembrava che ci fosse bisogno di una installazione 1.3 che al giorno d'oggi è come un unicorno.

 

Oltre a un forum 3.4.9 con licenza IPS su un classico hosting a pagamento ho amministrato un forum gratuito sul sito http://www.forumgratis.com/

Il servizio è ottimo ma inizia ad andarmi stretto: Il forum esiste dal 2012 con oltre 22000 messaggi e tanti utenti affezionati ma il dominio di secondo livello e la mancanza di una versione mobile fanno si che Google non lo indicizzi più. E' ora di migrare, ma come? Forumgratis utilizza una vecchissima IPB 1.3 leggermente moddata che loro chiamano 1.4. Il servizio gratuito fornisce backup tramite il classico phpMyAdmin ma non danno accesso al file-system  quindi non si può avere una copia locale della propria installazione e procedere ad un upgrade classico come indicano le istruzioni su IPS.

Fortunatamente le modifiche al database sono praticamente zero e lo rendono 100% compatibile con la vecchia IPB 1.3 quindi i passi che descriverò sono identici per migrare da una IPB 1.3 standard.

 

Io sono una pippaccia quindi sicuramente esisteranno altri modi, ma veniamo alla mia esperienza

 

 

Ingredienti:

 

  • Un pacchetto IPS 3.4.X.
  • XAMPP o similare o macchina linux.
  • Backup SQL del database del forum IPB 1.3 oppure di forumgratis. (1)

 

Operazioni:

  • Ho creato una cartella "testboard" nella cartella "htdocs" del mio server apache di XAMPP.
  • Ho srotolato al suo interno i file del pacchetto di installazione 3.4.9 che avevo.
  • Ho lanciato phpMyAdmin e ho creato un database che ho chiamato sempre "testboard".(1)
  • Ho importato il backup SQL del vecchio forum nel nuovo database "testboard" (nonostante i 100 mb e vari timeout è andato tutto bene. Ci sono guide per importare DB enormi)

(1): fare attenzione alla codifica dei caratteri del database che si importa e quello che si crea.

 

 

  • Nella cartella htdocs/testboard ci dovrebbe essere un file "conf_global.dist.php" oppure direttamente un file "conf_global.php". Nel primo caso va rinominato  "conf_global.php". 
  • Aprire il file  "conf_global.php" con un editor di vostra scelta. Nel mio caso, in una 3.4.9 scaricata nuova nuova da Invision il file era "deserto" e conteneva questo:
<?php
$INFO['sql_driver']            =    '';
$INFO['sql_host']            =    '';
$INFO['sql_database']            =    '';
$INFO['sql_user']            =    '';
$INFO['sql_pass']            =    '';
$INFO['sql_tbl_prefix']            =    '';
$INFO['sql_debug']            =    '1';
$INFO['board_start']            =    '';
$INFO['installed']            =    '1';
$INFO['php_ext']            =    'php';
$INFO['safe_mode']            =    '0';
$INFO['base_url']            =    '';
$INFO['banned_group']            =    '5';
$INFO['admin_group']            =    '4';
$INFO['guest_group']            =    '2';
$INFO['member_group']            =    '3';
$INFO['auth_group']            =    '1';
$INFO['mysql_tbl_type']            =    '';?>
  • Cancellare il contenuto e sostituirlo con questo:
<?php
$INFO['sig_allow_ibc']            =    '1';
$INFO['show_user_posted']            =    '1';
$INFO['avatar_ext']            =    'gif|jpeg|jpg|swf|png';$INFO['avatar_url']            =    '1';
$INFO['avup_size_max']            =    '20';$INFO['avatars_on']            =    '1';
$INFO['avatar_dims']            =    '64x64';
$INFO['avatar_def']            =    '64x64';
$INFO['email_in']            =    '';
$INFO['email_out']            =    '';
$INFO['allow_images']            =    '1';
$INFO['max_emos']            =    '20';
$INFO['allow_creator_vote']            =    '1';
$INFO['allow_dynamic_img']            =    '0';
$INFO['allow_flash']            =    '1';
$INFO['allow_online_list']            =    '1';
$INFO['allow_skins']            =    '1';
$INFO['ban_ip']            =    '';
$INFO['ban_email']            =    '';
$INFO['ban_names']            =    '';
$INFO['board_start']            =    '1020214590';
$INFO['news_forum_id']            =    '1';
$INFO['index_news_link']            =    '1';
$INFO['allow_dup_email']            =    '1';
$INFO['admin_group']            =    '4';
$INFO['auth_group']            =    '1';
$INFO['member_group']            =    '3';
$INFO['guest_group']            =    '2';
$INFO['boardname']            =    'IBForums';
$INFO['board_desc']            =    'Website forums';
$INFO['board_name']            =    'Invision Power Board';$INFO['php_ext']            =    'php';
$INFO['board_url']            =    'http://localhost/testboard/';$INFO['match_browser']            =    '0';
$INFO['clock_long']            =    'M j Y, h:i A';
$INFO['clock_short']            =    'jS F Y - h:i A';
$INFO['clock_joined']            =    'j-F y';
$INFO['load_limit']            =    '';
$INFO['cookie_domain']            =    '';
$INFO['cookie_id']            =    '';
$INFO['cookie_path']            =    '';
$INFO['email_header']            =    'This email generated via IBForums';
$INFO['email_footer']            =    '';
$INFO['show_active']            =    '1';
$INFO['show_birthdays']            =    '1';
$INFO['show_totals']            =    '1';
$INFO['sql_driver']            =    'mySQL';
$INFO['sql_host']            =    'localhost';
$INFO['sql_database']        =    'testboard';
$INFO['sql_pass']            =    '';
$INFO['sql_port']            =    '';
$INFO['sql_tbl_prefix']            =    'ibf_';
$INFO['sql_user']            =    'root';
$INFO['display_max_posts']            =    '15';
$INFO['display_max_topics']            =    '15';
$INFO['emo_per_row']            =    '3';
$INFO['etfilter_punct']            =    '0';
$INFO['etfilter_shout']            =    '0';
$INFO['flood_control']            =    '30';
$INFO['force_login']            =    '0';
$INFO['show_img_upload']            =    '1';
$INFO['home_name']            =    'Site Home';
$INFO['home_url']            =    'http://localhost/testboard/';
$INFO['hot_topic']            =    '15';
$INFO['html_dir']            =    '';
$INFO['base_dir']            =    '';
$INFO['html_url']            =    '';
$INFO['upload_dir']            =    '';
$INFO['upload_url']            =    '';
$INFO['img_ext']            =    'gif|jpeg|jpg|png';
$INFO['max_h_flash']            =    '200';
$INFO['max_images']            =    '10';
$INFO['max_post_length']            =    '1000';
$INFO['max_w_flash']            =    '200';
$INFO['max_messages']            =    '50';
$INFO['pre_moved']            =    'Moved: ';
$INFO['pre_pinned']            =    'Pinned: ';
$INFO['pre_polls']            =    'Poll: ';
$INFO['session_expiration']            =    '3600';
$INFO['reg_auth_type']            =    '0';
$INFO['time_offset']            =    '0';
$INFO['new_reg_notify']            =    '0';
$INFO['use_mail_form']            =    '1';
$INFO['msg_allow_code']            =    '1';
$INFO['msg_allow_html']            =    '0';
$INFO['allow_search']            =    '1';
$INFO['print_headers']            =    '1';
$INFO['nocache']            =    '1';
$INFO['debug_level']            =    '1';
$INFO['forum_skin_1']            =    '';
$INFO['forum_skin_8']            =    '';
$INFO['board_offline']            =    '0';
$INFO['offline_msg']            =    '';
$INFO['no_reg']            =    '0';
$INFO['max_sig_length']            =    '50000';
$INFO['sig_allow_html']            =    '0';
$INFO['max_location_length']            =    '50000';
$INFO['max_interest_length']            =    '50000';
$INFO['post_titlechange']            =    '50000';?>

In pratica, dovrebbero essere tutti valori praticamente di default che poi potranno essere modificati in seguito ma notare che:

$INFO['home_url']            =    'http://localhost/testboard/';

Controllare anche che utente  password per il databse siano corretti. Nel mio caso erano vuoti come impostazione di default quando si installa XAMPP. Grave falla di sicurezza ma la uso solo in locale :)

 

La cosa piu' importante è questa:

"$INFO['sql_tbl_prefix'] = 'ibf_';"

Il prefisso "ibf_" deve essere sostituito con il prefisso delle tabelle del vostro database che avete importato.

Nel mio caso che migravo da forumgratis, il prefisso delle tabelle era il nome del forum stesso. Per esempio "nomesito_admin_logs" e così via.

 

 

  • Salvato il file, aprite il browser e andate su http://localhost/testboard/admin/upgrade/
  • La procedura di upgrade vi chiederà utente/password dell'amministratore del forum IPB 1.3
  • Procedete con upgrade incrociando le dita. L'upgrade passa per tutte le versioni come una via crucis e vi porta alla 3.4.9.
  • Nelle varie schermate ci sono alcune domande ma ho lasciato praticamente tutto di default.

post-1800-0-27903900-1453658075_thumb.pn

 

Alla fine se tutto va come deve andare vi trovate qui:

 

post-1800-0-83100800-1453658019_thumb.pn

 

  • Da ACP ho scatenato l'inferno facendogli ricostruire tutte le statistiche.
  • OKKIO: se avevate forum privati adesso tutte le impostazioni sono perse ed è tutto pubblico. Quindi vanno impostati tutti i permessi.
  • Vanno reimpostti anche i permessi degli amministratori se ne avevate più di uno e con permessi diversi.
  • In ACP avrete dei warning per la licenza IPS e perchè la cartella install non è stata rimossa. Inoltre anche le date  altri valori sono stati portati a default.
  • Insomma avete tutti i messaggi, utenti, forum, tutto! Si tratta solo di rivedere con calma tutte le impostazioni.

 

A questo punto su http://localhost/testboard/ dovrebbe funzionare tutto. 

 

Nel mio caso ho solo un problemino: ho perso tutti gli avatar.

Non ho idea se gli avatar degli utenti nella versione 1.3 fossero su file-system e quindi irrimediabilmente persi perchè avevo solo il database. Chiedo lumi a qualcuno più esperto di me.

Comunque problema minimo. Dopo la migrazione vera e propria gli utenti si aggiorneranno da soli la propria foto.

 

Vi prego di aggiungere commenti, precisazioni, miglioramenti e tutto quello che riteniate necessario. Io sono troppo pippone per immaginare una via diversa.

 

PS

Invision si è rifiutata di assistermi nell'operazione banale. Evidentemente i soldi di una nuova licenza non gli servono.

 

Ciao

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Daniel

Ottima guida Davide.

faccio una domanda e aggiungo una cosa.

 

il database  dal pannello di forumgratis (presumo) te lo fa fare basandosi su tool mysqldump? all' inizio del file .sql se è cosi dovrebbe apparire una cosa simile

in alcuni casi gli import/export fatti male portano a errori sugli accento che vengono sfasati

ho iniziato a lavorare da invision 2.3.x ma la procedura di backup che offre IPB non mi ha mai convinto per niente.

-- MySQL dump 10.13  Distrib 5.1.41, for debian-linux-gnu (i486)---- Host: localhost    Database: db_name-- -------------------------------------------------------- Server version	5.1.41-3ubuntu12.7/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

se si è sotto windows caricare il file .sql in C:\xampp\mysql\bin e con il comando "mysql.exe -uroot -pPASSWORD database_name < database_backup.sql"

il nome del DB deve essere creato prima di questa operazione. e la PASSWORD se non c'e si mette solo l'argomento "-p"

sul fatto che i database in .sql dei forum con la 1.3 siano unicorni hai ragione. non ne ho mai visto uno ne ho avuto mai la possibilità di lavorarci.

sul comportamento di IPS non mi pronuncio, secondo me, per certe cose, in questo periodo stanno veramente lavorando male.

 

EDIT : se hai la possibilità di usare ftp su forumgratis ci sono dei metodi più sicuri per fare il backup, il tool php mysqldumperper esempio.

basta fare backup e ripristino usando lo stesso tool o script php che però utilizzano funzioni system() credo disabilitate su quel tipo di hosting. :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Davide DB

Ciao Daniel,

 

Nei file di backup non ho quella testata. Il pannello di ontrollo indica Backup mySQL 5.1.73.

 

post-1800-0-17894900-1453813782_thumb.jp

 

Avevo paura che si creassero casini con lettere accentate, apostrofi e roba simile ovvero tutti i caratteri oltre l'ASCII 0x127 ma sono stato attento che sia il database vuoto in cui ho importato il backup che la connessione al db avessero la stessa codifica di caratteri del backup che era "isolatin1". myQL continua pero' poi a vedere le tabelle come iso latin 1 swedish ci. Ho fatto varie prove con ISO-8859-1 ma non capisco da dove arrivi questo swedish. Appena ho tempo vorrei fare la prova con un DB target UTF-8 in modo da stare più tranquillo in futuro. Non sono sicuro che i primi 256 caratteri UTF-8 coincidano con ISO-8859-1 oppure Swedish.

 

Secondo la vostra esperienza mi confermate che gli avatar o foto sta(vano) sul filesystem e non nel DB?

 

Salutoni

Modificato da Davide DB

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Davide DB

Scusate se ho risposto solo ora ma ho trovato le vostre email di notifica nello spam. Strano che google le indichi così.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Daniel

Ciao Daniel,

 

Nei file di backup non ho quella testata. Il pannello di ontrollo indica Backup mySQL 5.1.73.

 

Schermata2.jpg

 

Avevo paura che si creassero casini con lettere accentate, apostrofi e roba simile ovvero tutti i caratteri oltre l'ASCII 0x127 ma sono stato attento che sia il database vuoto in cui ho importato il backup che la connessione al db avessero la stessa codifica di caratteri del backup che era "isolatin1". myQL continua pero' poi a vedere le tabelle come iso latin 1 swedish ci. Ho fatto varie prove con ISO-8859-1 ma non capisco da dove arrivi questo swedish. Appena ho tempo vorrei fare la prova con un DB target UTF-8 in modo da stare più tranquillo in futuro. Non sono sicuro che i primi 256 caratteri UTF-8 coincidano con ISO-8859-1 oppure Swedish.

 

Secondo la vostra esperienza mi confermate che gli avatar o foto sta(vano) sul filesystem e non nel DB?

 

Salutoni

 

quindi hai fatto tramite lo script di invision, capisco :)

per il discorso avatar ho appena provato su uno di quei forum che utilizza ancora la 1.3

gli avatar venivano caricati da URL esterni, non venivano salvati nel "filesystem" ma solo linkati a filehosting di immagini.

volendo potevi aggiungere dei "pack" oltre quelli di default di avatar.

più che fare attenzione al database nuovo (prendi con le pinze quello che sto dicendo, devo controllare. ma mi pare in automatico viene creato con la codifica latin1_swedish_ci) ma al contenuto del DB esistente che non sia stato esportato male/o addirittura incompleto.

lo script che genera i backup sulla 3.4.x se il backup viene scaricato in sql.gz mi pare ridia un file danneggiato (in verità basta rinominare in .sql). se è un DB grande fa scaricare il backup ma può risultare incompleto. mi pare mi capitò una volta di eseguire un export su una sola tabella con sql toolbox ma la tabella in questione non aveva la parte della 'CREATE TABLE' con relativi campi.

in IPS4 le hanno tolte queste 'funzioni' di backup (forse disponibili solo in modalità DEV) ma hanno lasciato SQL Toolbox senza possibilità di export anche di singole tabelle.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Davide DB

Purtroppo su forumgratis ho solo quella maschera per fare backup. Non ho accesso a phpmyadmin. Il servizio è gratuito ma ha solo queste funzionalità.

Sul db locale ho usato phpmyadmin per importare tutto.

Su forumgratis non posso selezionare la compressione perché da errore e non salva nulla.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Daniel
On 26/1/2016 at 8:24 PM, Davide DB said:

Purtroppo su forumgratis ho solo quella maschera per fare backup. Non ho accesso a phpmyadmin. Il servizio è gratuito ma ha solo queste funzionalità.

Sul db locale ho usato phpmyadmin per importare tutto.

Su forumgratis non posso selezionare la compressione perché da errore e non salva nulla.

ero convinto di averti scritto :ommio:

per importare il db la prossima volta ti conviene usare mysqldump, anche se usi l'ambiente in locale puoi utilizzarlo senza problemi :)

la funzionalità backup di IPS è sempre stata buggata, ancora nell'ultima latest della v3 non hanno mai risolto la cosa. (tanto è vero che nella 4 non hanno proprio inserito quella funzione....)

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

×