Soluzione dell’errore “Fatal error: allowed memory size of […] bytes exhausted” con Backup DB di PrestaShop
Stai avviando il backup del database del tuo negozio PrestaShop (Parametri avanzati > Backup DB) e ricevi il seguente errore: Fatal error: allowed memory size of […] bytes exhausted […]: in questo articolo ti spiego come trovare soluzioni alternative a questo problema.
Questo errore è dovuto al fatto che il database che stai cercando di “backuppare” ha dimensioni abbastanza grandi.
Ciò può avvenire quando lo shop è ormai online da molti anni (ed è quindi “cresciuto”) e il valore del memory_limit del file php.ini del tuo hosting, è troppo basso.
La soluzione è quindi quella di aumentare questo valore.
Spesso, però, soprattutto se il tuo sito è ospitato su un hosting condiviso, questo valore può essere aumentato fino a un certo limite. Questo limite potrebbe essere inferiore al valore che serve per ovviare il problema illustrato sopra.
Ad esempio, può essere impostato fino ad un massimo di 250MB. A noi però potrebbe servire a 512MB per eseguire il backup.
Se non si vuole spostare il sito su una soluzione hosting VPS, Cloud o Server dedicato (dove la modifica di questi valori può essere fatta a nostro piacimento), l’unica soluzione è eseguire il backup del database in modi alternativi.
L’alternativa più semplici sono:
- fare il backup tramite il servizio di backup dell’hosting su cui è ospitato il sito. Deve essere fornito dal provider ed è incluso nel piano di hosting);
- fare il backup tramite il pannello phpMyAdmin, messo a disposizione dal nostro hosting. Dopo aver selezionato il database, basterà esportarlo (per istruzioni più dettagliate, basta fare una semplice ricerca su Google). Se il database è molto grande, però, il pannello impiegherà un pò di tempo per fare il backup del database, poichè il database deve essere scaricato dal browser con cui accediamo al pannello.
Backup del database tramite SSH
L’alternativa da “smanettori”, invece, è usare SSH.
SSH (Secure SHell, shell sicura) è un protocollo che permette di stabilire una sessione remota cifrata tramite interfaccia a riga di comando con un altro host di una rete informatica (definizione di Wikipedia).
Prima di tutto, devi connetterti al server: necessiti dell’indirizzo IP del server, di uno username e di una password. Questi ultimi due valori te li fornisce il tuo provider di hosting, dopo esplicita richiesta di attivazione della connessione SSH.
Ovviamente hai bisogno di un client di “riga di comando” (Command Line) che per Mac può essere il Terminale (integrato nel sistema operativo), mentre per Windows può essere Putty.
$ ssh username@[server-ip] -p [porta-del-server]
Se è la prima volta che ti connetti, ti comparirà il messaggio Are you sure you want to continue connecting? : scrivi yes e clicca Invio; ti verrà chiesto di inserire la password di login SSH: dopo averla inserità sarai connesso al server tramite SSH.
Ora puoi esportare il database con il seguente comando:
$ mysqldump -u [username] -p [nome_del_database] > [nome_del_tuo_file_di_backup].sql
Devi sostituire i valori nelle [parentesi] con le tue informazioni personali.
Questo comando creerà un file che è un backup completo del tuo database. Devi navigare in una cartella appropriata e poi lanciare il comando, al fine di creare il file in quella specifica cartella.
Per scaricare in locale il file di backup appena creato, puoi accedere via FTP al server, navigare nella cartella dove l’hai creato e scaricarlo da li.






