# Backup

OpenSTAManager include un sistema integrato di backup, che permette di salvare le informazioni dell'installazione in un percorso predefinito secondo la configurazione indicata.

### Configurazione

Il backup presenta alcune impostazioni configurabili dall'utilizzatore in relazione alle operazioni di [backup automatico](#backup-automatico) e al percorso di salvataggio dei backup stessi.

Il percorso di backup può essere configurato nel file `config.inc.php`:

```
// Percorso della cartella di backup
$backup_dir = __DIR__.'/backup/';
```

{% hint style="warning" %}
Per motivi di sicurezza si consiglia di modificare il percorso della cartella di backup al di fuori della cartella di OSM, possibilmente in una unità esterna.
{% endhint %}

### Modulo

Esiste un modulo apposito, **Backup**, che permette di visualizzare in ogni momento le informazioni relative alla configurazione dei backup e di gestire i backup presenti del gestionale.

![](https://3521338791-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaF5PSva1n5cEMIhtDxSA%2Fuploads%2F0yR3YbCSgtlrJhwBHmWM%2Fimage.png?alt=media)

L'esecuzione manuale del backup è estremamente semplice:

![](https://3521338791-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaF5PSva1n5cEMIhtDxSA%2Fuploads%2F2otAVpGpmhphuWUGiP3e%2Fcreazionebackup%20\(2\)%20\(2\)%20\(4\).gif?alt=media)

### Formato dei backup

Il backup di OpenSTAManager viene gestito secondo due procedure diverse sulla base della configurazione PHP del server: se è installata [l'estensione ZIP](https://www.php.net/manual/en/book.zip.php) viene generato un singolo archivio `.zip`, altrimenti viene creata una cartella apposita per il backup.

In entrambi i casi, i backup presentano la stessa struttura interna poiché contengono tutti i file del gestionale con l'unica aggiunta di un file `database.sql` nel percorso principale, che contiene l'intero database in cui il gestionale è installato risalente al momento di esecuzione del backup.

{% hint style="warning" %}
Per migliorare la sicurezza del server, il file `config.inc.php`, che contiene i dati di accesso al database, non viene mai incluso nel backup.
{% endhint %}

### Ripristino

Esiste una procedura semplificata di ripristino dei backup, che cerca di risolvere il problema tecnico per utenti con meno esperienza tecnica.

La procedura semplificata è raggiungibile nel modulo **Backup**, sotto la sezione *Ripristina backup*, tramite la selezione di un archivio ZIP.

![](https://3521338791-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaF5PSva1n5cEMIhtDxSA%2Fuploads%2FGlQx91th8P4bkPctNlgz%2FRipristinaBackup.PNG?alt=media)

La procedura manuale è comunque sempre disponibile, e prevede di:

* Creare una cartella vuoto dove estrarre/copiare il contenuto del backup
* Creare un nuovo database, per poi importare il file `database.sql` dalla cartella del ripristino
* Rimuovere il file `database.sql` dalla cartella del ripristino
* Procedere alla configurazione del database per il gestionale (tramite procedura semplificata o impostazione manuale del file `config.inc.php`)

### Backup automatico

E' disponibile una impostazione nativa per l'esecuzione del backup al primo accesso giornaliero: nel modulo **Impostazioni**, sotto la categoria **Backup** è sufficiente selezionare *Backup automatico*.

![Opzioni disponibili per i backup](https://3521338791-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaF5PSva1n5cEMIhtDxSA%2Fuploads%2F4AxaJXwPYn9kuz9sh0lo%2Fimage.png?alt=media)

Il backup automatico viene eseguito in modi diversi a seconda della versione del gestionale installata:

* per versioni < 2.4.11 il backup viene eseguito durante la procedura di login del primo utente;
* dalla versione 2.4.11 in poi, è presente un *hook* indipendente che effettua il backup in background.
