Prerequisiti
Installa in locale uno stack Apache + PHP + MariaDB. Le opzioni più comuni su Windows:
- XAMPP → cartella web:
C:\xampp\htdocs\ - WampServer → cartella web:
C:\wamp64\www\
1. Backup dal server remoto
File WordPress
Comprimi l’intera cartella WordPress dal pannello hosting o via SSH:
tar -czf wordpress_backup.tar.gz /var/www/html/miosito/
Scarica l’archivio in locale via FTP o dal file manager del pannello.
Database
Da phpMyAdmin remoto:
- Seleziona il database WordPress
- Esporta → Metodo: Personalizzato
- Formato: SQL
- Spunta Aggiungi istruzione DROP TABLE
- Clicca Esegui
Salva il file .sql in locale.
2. Copia i file in locale
Estrai l’archivio e copia la cartella nella directory web locale:
C:\xampp\htdocs\miosito\
3. Crea il database locale
Apri http://localhost/phpmyadmin e lancia questa query:
CREATE DATABASE miosito_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
4. Importa il database
- Seleziona
miosito_dbin phpMyAdmin - Scheda Importa
- Scegli il file
.sqlesportato - Clicca Esegui
⚠️ Non modificare il file
.sqlcon find & replace prima dell’import. Gli URL vanno sostituiti dopo con uno strumento apposito (vedi punto 6).
5. Modifica wp-config.php
Apri C:\xampp\htdocs\miosito\wp-config.php e aggiorna:
define( 'DB_NAME', 'miosito_db' );
define( 'DB_USER', 'root' );
define( 'DB_PASSWORD', '' );
define( 'DB_HOST', 'localhost' );
// Forza URL locale
define( 'WP_HOME', 'http://miosito.local' );
define( 'WP_SITEURL', 'http://miosito.local' );
6. Sostituisci gli URL nel database
WordPress salva molti dati in formato serializzato PHP — un semplice find & replace corrompe questi dati perché il contatore di lunghezza della stringa non viene aggiornato.
Usa Search Replace DB:
- Scarica lo script da github.com/interconnectit/Search-Replace-DB
- Copia la cartella in
C:\xampp\htdocs\miosito\ - Apri nel browser:
http://miosito.local/Search-Replace-DB-master/ - Compila i campi:
- Search for:
https://www.miosito.com - Replace with:
http://miosito.local
- Search for:
- Clicca Dry Run per anteprima, poi Live Run
- Elimina la cartella di Search Replace DB dal server al termine
In alternativa, se hai WP-CLI installato:
wp search-replace 'https://www.miosito.com' 'http://miosito.local' --all-tables
7. Configura il Virtual Host Apache
Apri C:\xampp\apache\conf\extra\httpd-vhosts.conf e aggiungi:
<VirtualHost *:80>
ServerName miosito.local
ServerAlias www.miosito.local
DocumentRoot "C:/xampp/htdocs/miosito"
<Directory "C:/xampp/htdocs/miosito">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Riavvia Apache dal pannello XAMPP.
8. Punta il dominio alla macchina locale
Apri il file C:\Windows\System32\drivers\etc\hosts come Amministratore e aggiungi:
127.0.0.1 miosito.local
127.0.0.1 www.miosito.local
Se vuoi evitare la modifica del file hosts e far risolvere il dominio solo da un browser specifico, usa il flag di avvio:
chrome.exe --host-resolver-rules="MAP miosito.local 127.0.0.1"
9. Verifica finale
Apri http://miosito.local nel browser. Se il sito non carica:
Schermata bianca o errore 500 → controlla wp-config.php, credenziali DB e log Apache:
C:\xampp\apache\logs\error.log
Immagini o link rotti → la sostituzione URL non è completa, ripeti il punto 6.
Errore “Too many redirects” → aggiungi in wp-config.php:
define('FORCE_SSL_ADMIN', false);
$_SERVER['HTTPS'] = 'off';
Loop di login → svuota i cookie del browser o aggiungi in wp-config.php:
define('COOKIE_DOMAIN', 'miosito.local');
10. Reset password admin (se necessario)
Da phpMyAdmin, scheda SQL:
UPDATE wp_users
SET user_pass = MD5('nuova_password')
WHERE ID = 1;
-- Invalida le sessioni attive
UPDATE wp_usermeta
SET meta_value = ''
WHERE user_id = 1 AND meta_key = 'session_tokens';
WordPress riconoscerà l’hash MD5 e lo aggiornerà al formato sicuro al primo login.
Riepilogo dei passaggi
| # | Operazione | Strumento |
|---|---|---|
| 1 | Backup file e DB remoto | FTP / phpMyAdmin |
| 2 | Copia file in locale | Explorer / terminale |
| 3 | Crea DB locale | phpMyAdmin |
| 4 | Importa .sql | phpMyAdmin |
| 5 | Aggiorna wp-config.php | Editor di testo |
| 6 | Sostituisci URL | Search Replace DB / WP-CLI |
| 7 | Configura Virtual Host | httpd-vhosts.conf |
| 8 | Modifica file hosts | Notepad come Admin |
| 9 | Test e debug | Browser / log Apache |