Molti siti nascono sul computer di chi li sviluppa: un ambiente locale dove si lavora con calma, senza che nessuno veda il cantiere. Arriva poi il momento di metterli online, e lì nascono le sorprese: immagini che non si vedono, link che riportano a localhost, pagine interne che danno errore 404. Quasi sempre il motivo è lo stesso: il sito “ricorda” ancora l’indirizzo che aveva in locale. In questa guida vediamo i passaggi per pubblicare un sito WordPress (ma il metodo vale, con poche differenze, anche per altri CMS) senza intoppi.
Cosa c’è da spostare
Un sito dinamico è fatto di due parti:
- i file: il CMS, i temi, i plugin, le immagini caricate;
- il database: articoli, pagine, prodotti, impostazioni, utenti.
Entrambe vanno portate sul server, e il database va “aggiornato” con il nuovo indirizzo del sito.
Prima di iniziare
- Allinea la versione di PHP. Controlla con quale versione hai sviluppato e imposta la stessa (o una compatibile) sul tuo hosting dal pannello DirectAdmin; da noi puoi scegliere fra le versioni dalla 5.6 alla 8.5 (guida: cambiare versione PHP).
- Pulisci il progetto. Togli plugin di sviluppo, file di prova, vecchie copie, archivi zip e dump del database lasciati nelle cartelle.
- Prepara il database sull’hosting. Dal pannello crea un database vuoto con il suo utente e annota nome del database, utente e password.
Passo 1: esportare il database
Dal tuo ambiente locale esporta il database in un file .sql, ad esempio con phpMyAdmin (funzione Esporta) o con lo strumento del tuo ambiente di sviluppo. Se il file è grande, comprimilo.
Passo 2: caricare i file
Carica tutti i file del sito nella cartella public_html del dominio. Il modo più comodo è un client FTP come FileZilla, con una connessione cifrata: da noi FTPS sulla porta 2100 oppure SFTP sulla porta 2300 con le credenziali di un account FTP (guida: configurare FileZilla). Le porte 21 e 22 sono chiuse.
Per siti con migliaia di file, caricare un unico archivio zip e poi estrarlo dal file manager del pannello è molto più rapido che trasferire i file uno per uno. Ricordati poi di cancellare l’archivio.
Passo 3: importare il database
Importa il file .sql nel database che hai creato, con phpMyAdmin dal pannello. Se il file supera i limiti di caricamento, apri un ticket: ti aiutiamo a importarlo.
Passo 4: collegare il sito al nuovo database
In WordPress i dati di connessione sono nel file wp-config.php. Aggiorna le quattro righe con i dati del database creato sul pannello:
define( 'DB_NAME', 'nome_database' );
define( 'DB_USER', 'utente_database' );
define( 'DB_PASSWORD', 'password_database' );
define( 'DB_HOST', 'localhost' );
In PrestaShop i dati equivalenti stanno nel file di parametri della configurazione dell’applicazione; in altri CMS in un file di configurazione analogo.
Passo 5: cambiare gli indirizzi nel database
È il passaggio che si dimentica più spesso. Nel database l’indirizzo locale (ad esempio http://localhost/miosito o http://miosito.test) compare in centinaia di punti: impostazioni del sito, link nei contenuti, percorsi delle immagini, opzioni dei plugin. Va sostituito ovunque con quello definitivo, ad esempio https://www.tuodominio.it.
Attenzione: non fare una semplice “cerca e sostituisci” sul file .sql con un editor di testo. WordPress e molti plugin salvano alcuni dati in formato serializzato, che contiene anche la lunghezza dei testi: se cambi l’indirizzo senza aggiornare la lunghezza, quei dati si rompono e intere impostazioni (widget, opzioni del tema) spariscono. Usa uno strumento che gestisce correttamente questi dati:
- con WP-CLI, se usi l’accesso SSH (porta 7530, con una chiave aggiunta dal pannello):
wp search-replace 'http://miosito.test' 'https://www.tuodominio.it' --all-tables --dry-runIl parametro
--dry-runmostra cosa verrebbe cambiato senza toccare nulla; quando sei convinto, rilancia il comando senza quel parametro; - con un plugin di migrazione o di ricerca e sostituzione che dichiari esplicitamente di gestire i dati serializzati.
In alternativa, molti plugin di migrazione impacchettano file e database in un unico archivio e fanno la sostituzione degli indirizzi in automatico durante l’importazione.
Passo 6: sistemare permalink e cache
- Entra nell’amministrazione di WordPress e salva di nuovo le impostazioni dei permalink: WordPress rigenera le regole del file
.htaccesse le pagine interne smettono di dare 404. - Svuota le cache: quella dei plugin e, se c’è, quella dei file CSS e JavaScript uniti.
- Verifica che il sito usi
https: il certificato Let’s Encrypt da noi è gratuito e automatico (vedi forzare HTTPS). Se vedi il lucchetto con un avviso, ci sono risorse ancora in http: leggi contenuti misti.
Passo 7: il controllo finale
- Naviga le pagine principali e qualche pagina interna.
- Prova i moduli di contatto: verifica che l’email arrivi davvero.
- Per un e-commerce, fai un ordine di prova con i pagamenti in modalità test.
- Cerca nel codice sorgente delle pagine (tasto destro, “visualizza sorgente”) la parola
localhosto il vecchio dominio di sviluppo: non deve comparire. - Controlla che il sito sia visibile ai motori di ricerca: in WordPress, nelle impostazioni di lettura, l’opzione che scoraggia l’indicizzazione, spesso attivata durante lo sviluppo, va disattivata.
E se il sito è già online e lo stai sostituendo?
Se il nuovo sito prende il posto di uno già pubblicato, non sovrascrivere direttamente quello vecchio. Fai prima un backup (con JetBackup da noi ne hai almeno due al giorno, ma un backup manuale subito prima non guasta) e, se possibile, prepara il nuovo sito in una cartella o in un sottodominio di prova per verificarlo. Se il vecchio sito è su un altro fornitore, il metodo è quello descritto in migrare un sito senza fermarsi.
Se preferisci non installare nulla in locale
Per partire da zero puoi anche installare WordPress, PrestaShop, Joomla o una delle oltre 190 applicazioni disponibili direttamente sull’hosting con Installatron, in un clic (guida: installare WordPress con Installatron).
Per qualsiasi intoppo durante la pubblicazione apri un ticket dall’area clienti.