Ripristinare un sito WordPress da un Backup

Il comando restore esegue un ripristino completo di un sito WordPress a partire da un Backup WP Staging. Estrae i file e importa il database in un’unica operazione, risultando ideale per migrare i siti o per il ripristino d’emergenza.

Cosa otterrai

Dopo il ripristino:

  • Un’installazione WordPress completa con tutti i file ripristinati
  • Database importato e configurato
  • Il sito è pronto all’uso nella destinazione di destinazione

Prerequisiti

Il comando restore richiede:

  • Un’installazione WordPress esistente nel percorso di destinazione (con un wp-config.php valido)
  • Le credenziali del database (lette da wp-config.php o fornite tramite flag)
  • Permessi di scrittura sulla directory di destinazione

Suggerimento: per impostare un nuovo ambiente WordPress con Docker, usa invece wpstaging add --from=backup.wpstg. Vedi Creare una copia locale del sito WordPress.

Ripristino di base

Ripristina un sito WordPress in una directory specifica:

wpstaging restore --path=/var/www/html backup.wpstg

Oppure, se ti trovi già nella directory radice di WordPress:

cd /var/www/html
wpstaging restore backup.wpstg

Ripristinare da un URL remoto

Ripristina direttamente da un file di Backup remoto:

wpstaging restore --path=/var/www/html --from=https://example.com/backups/backup.wpstg

La CLI scarica il Backup, lo convalida ed esegue il ripristino in un’unica operazione.

Ripristinare su un sito Docker

Per i siti gestiti dall’ambiente Docker di WP Staging CLI, puoi eseguire il ripristino direttamente usando il nome host:

wpstaging restore site.local backup.wpstg

In alternativa, con il flag --from:

wpstaging restore site.local --from=backup.wpstg
wpstaging restore site.local --from=https://example.com/backups/backup.wpstg

Requisiti:

  • Il sito deve esistere già (creato con wpstaging add site.local)
  • Le credenziali del database vengono rilevate automaticamente dal file .env del sito
  • Non serve specificare --path né i flag del database

Ripristinare con un database esterno

Sovrascrivi le impostazioni del database lette da wp-config.php per connetterti a un server di database diverso:

wpstaging restore --path=/var/www/html \
  --db-host=db.example.com \
  --db-name=wordpress_db \
  --db-user=wp_user \
  --db-password=secret_password \
  backup.wpstg

Opzioni di connessione al database

Controllo completo sulle impostazioni di connessione al database:

FlagDescrizione
--db-hostHost del database (ad es. localhost, db.example.com)
--db-nameNome del database
--db-userNome utente del database
--db-passwordPassword del database
--db-socketPercorso del socket del database
--db-charsetCharset del database (ad es. utf8mb4)
--db-collateCollation del database
--db-prefixPrefisso delle tabelle WordPress di destinazione

Connessione al database via SSL/TLS

Per connessioni al database sicure:

wpstaging restore --path=/var/www/html \
  --db-host=secure-db.example.com \
  --db-ssl-ca-cert=/path/to/ca-cert.pem \
  --db-ssl-cert=/path/to/client-cert.pem \
  --db-ssl-key=/path/to/client-key.pem \
  backup.wpstg
FlagDescrizione
--db-ssl-ca-certPercorso del file del certificato CA
--db-ssl-certPercorso del file del certificato client
--db-ssl-keyPercorso del file della chiave client
--db-ssl-modeModalità SSL (skip-verify/preferred)

Opzioni di sovrascrittura

Controlla cosa viene sovrascritto durante il ripristino:

FlagPredefinitoDescrizione
--overwriteyesSovrascrive i file nella directory di destinazione
--overwrite-dbyesSovrascrive le tabelle del database
--overwrite-wprootnoSovrascrive i file della root di WordPress

Esempio – Mantenere il database esistente:

wpstaging restore --path=/var/www/html --overwrite-db=no backup.wpstg

Esempio – Sovrascrivere anche i file core di WordPress:

wpstaging restore --path=/var/www/html --overwrite-wproot=yes backup.wpstg

Filtrare cosa ripristinare

Usa gli stessi flag --only-* e --skip-* del comando extract:

Ripristinare solo Plugin e Theme:

wpstaging restore --path=/var/www/html --only-plugins --only-themes backup.wpstg

Ripristinare tutto tranne gli uploads:

wpstaging restore --path=/var/www/html --skip-uploads backup.wpstg

Consulta Estrarre i file di Backup per la lista completa dei flag di filtro.

Riprendere un ripristino interrotto

Se il ripristino del database è stato interrotto, puoi riprenderlo dal file SQL già estratto:

wpstaging restore --path=/var/www/html \
  --skip-extract \
  --db-file=/path/to/extracted/database.sql \
  backup.wpstg
FlagDescrizione
--skip-extractSalta l’estrazione se i file esistono già
--db-fileUsa un file SQL specifico per il ripristino del database

Opzioni di performance del database

Affina le performance dell’importazione del database:

FlagPredefinitoDescrizione
--db-batch-size1000Numero di righe per istruzione INSERT
--db-insert-singlefalseUsa istruzioni INSERT a riga singola
--db-timeout15sTimeout di connessione al database
--db-innodb-strict-modeoffAbilita la modalità strict di InnoDB durante il ripristino

Esempio – Importazione più lenta ma più compatibile:

wpstaging restore --path=/var/www/html \
  --db-insert-single \
  --db-batch-size=100 \
  backup.wpstg

Verificare i file ripristinati

Verifica l’integrità dei file dopo il ripristino:

wpstaging restore --path=/var/www/html --verify backup.wpstg

Tutti i flag di ripristino

Flags:
  -o, --outputdir string          Directory for extracted files (default: ./wpstaging-output)
  -p, --path string               WordPress installation path (required)
      --site-url string           Target WordPress site URL (use if detection fails)
      --overwrite string          Overwrite target directory (yes/no) (default "yes")
      --overwrite-db string       Overwrite database (yes/no) (default "yes")
      --overwrite-wproot string   Overwrite WP root files (yes/no) (default "no")
      --db-prefix string          Target WordPress DB table prefix (use if detection fails)
      --db-innodb-strict-mode     Enable InnoDB strict mode (off by default during restore)
      --db-file string            Use the extracted backup SQL file to resume database restoration
      --db-batch-size int         Database insert batch size (default "1000")
      --db-insert-single          Use single-row INSERT statement per query
      --db-timeout string         Database connection timeout (default "15s")
      --verify                    Verify integrity of extracted files
      --skip-extract              Skip extraction if files already exist
      --from string               Backup file path or remote URL (http/https)

Risoluzione dei problemi

Connessione al database non riuscita

  • Verifica che wp-config.php contenga credenziali del database corrette
  • Controlla che il server del database sia in esecuzione e raggiungibile
  • Prova a fornire le credenziali in modo esplicito con i flag --db-*
  • Per i database remoti, assicurati che il firewall consenta le connessioni

Permesso negato

  • Assicurati di avere i permessi di scrittura sulla directory di destinazione
  • Su Linux/macOS potresti dover eseguire il comando come utente del web server o usare sudo

Rilevamento dell’URL del sito non riuscito

Se la CLI non riesce a rilevare automaticamente l’URL del sito, indicalo manualmente:

wpstaging restore --path=/var/www/html --site-url=https://mysite.com backup.wpstg

Prossimi passi

Updated on Maggio 23, 2026

Rene Hermenau

Autore: Rene Hermenau

About the author: René Hermenau is the founder of WP STAGING. He works on WordPress backups, staging, migrations, database handling, and safe deployment workflows.