Come eseguire il backup del database MySQL utilizzando PHP
Stai cercando di eseguire il backup del database nei tuoi progetti PHP? Si consiglia sempre di eseguire periodicamente il backup del database. In questo modo, i dati del tuo sito saranno sempre al sicuro in caso di problemi al tuo database. In questo articolo, ti mostriamo come eseguire periodicamente il backup del database MySQL e archiviarlo sul tuo server.
Questo articolo è stato scritto per i progetti che sono integrati nel core PHP e non con alcun CMS o Framework. Il CMS come WordPress ha diversi plugin disponibili come UpdraftPlus per il backup del database. Nei siti Web di Laravel, l’utente può utilizzare pacchetti come laravel-backup per gli stessi scopi.
Il team di Spatie ha sviluppato il pacchetto che è utile per eseguire il backup del database nei progetti PHP principali. Questo pacchetto fornisce supporto per MySQL, PostgreSQL, SQLite e MongoDB. Discuteremo il database MySQL in questo articolo. Detto questo, diamo un’occhiata a come funziona questo pacchetto nel backup del database.
Backup del database MySQL utilizzando PHP
Prima di procedere ulteriormente, assicurati di avere le credenziali del database e che Composer sia installato sul tuo sistema.
Quindi, apri il terminale nella directory principale del tuo progetto ed esegui il comando seguente per installare il pacchetto.
composer require spatie/db-dumper
Al momento dell’installazione del pacchetto, crea una directory db-backups
(puoi dare qualsiasi nome) in cui puoi archiviare i tuoi file di backup SQL. Crea anche un file backup-database.php
e aggiungi il codice qui sotto.
<?php
require_once "vendor/autoload.php";
SpatieDbDumperDatabasesMySql::create()
->setDbName('DB_NAME')
->setUserName('DB_USER_NAME')
->setPassword('DB_PASSWORD')
->dumpToFile('db-backups/'.time().'_dump.sql');
Assicurati di sostituire i segnaposto con i valori effettivi. Nel codice sopra, abbiamo aggiunto l’ora corrente al file SQL per mantenere nomi di file distinti. Scaricherà il tuo database e lo memorizzerà nel file SQL specificato.
Il pacchetto offre più opzioni durante il dump del database. Ad esempio, puoi escludere tabelle specifiche dal backup fornendo la matrice delle tabelle di esclusione come di seguito.
<?php
SpatieDbDumperDatabasesMySql::create()
->setDbName('DB_NAME')
->setUserName('DB_USER_NAME')
->setPassword('DB_PASSWORD')
->excludeTables(['table1', 'table2', 'table3'])
->dumpToFile('db-backups/'.time().'_dump.sql');
Backup automatico del database MySQL
Finora, hai un file PHP che esegue il backup del database. La prossima cosa da fare è automatizzare il processo di backup in modo da ottenere i backup senza eseguire manualmente lo script.
Quando hai ospitato il sito sul server, il tuo provider di hosting ti offre cPanel dove puoi vedere le opzioni di base e avanzate per la gestione del sito web. Una caratteristica che hanno fornito è "Cron Jobs". I lavori Cron ti consentono di eseguire uno script specifico (file PHP) a un determinato intervallo in background. Tutto quello che devi fare è impostare un intervallo e passare un percorso di directory del file PHP. Successivamente, il tuo server esegue lo script in background agli intervalli specificati.
Per impostare un Cron, accedi al tuo cPanel e fai clic su "Cron Jobs" che puoi trovare nella sezione "avanzate".
Nella pagina successiva, nella sezione "Aggiungi un nuovo lavoro Cron", scegli "Una volta al giorno" per il menu a discesa "Impostazioni comuni". Significa che il tuo script verrà eseguito una volta al giorno. L’utente può impostare qualsiasi intervallo a seconda delle esigenze.
Nella sezione dei comandi passa il percorso del file PHP come segue:
php /home/username/public_html/backup-database.php
Modifica il percorso dello script in base alle tue configurazioni di hosting e invialo. Dopodiché, il tuo server inizia a eseguire uno script ogni giorno a mezzanotte. E questo script memorizzerà automaticamente il tuo database MySQL nella directory specificata (ad esempio db-backups).
Ci auguriamo che tu capisca come eseguire il backup del database MySQL in PHP e automatizzare il processo utilizzando Cron. Ci piacerebbe sentire i tuoi pensieri o suggerimenti nella sezione commenti qui sotto.