
Creare una copia del sito Prestashop di produzione per fare test
By
Durante lo sviluppo dei siti web come Prestashop, nuovi o da rivedere, è altamente sconsigliato lavorare sul sito di produzione (quello che gli utenti navigano normalmente), bensì conviene fare una copia di quello stesso sito e fare tutte le modifiche e prove su quello. A maggior ragione bisogna procedere in questo modo per un e-commerce.
In questo articolo vediamo come procedere con un e-commerce Prestashop.
Considera che normalmente si usa un sottodominio per i siti di sviluppo / test, come per esempio test.dominio.com, restyling.dominio.com, new.dominio.com, ecc.
Prestashop & Console
Prestashop è un software molto usato per creare siti di e-commerce, è open source, è sviluppato per la tecnologia LAMP (Linux Apache Mysql PHP) e ha molta documentazione, supporto, plugin disponibile a costo contenuto.
Io prediligo la console per fare i trasferimenti dei vari file, ma è possibile farli anche usando Filezilla FTP. Vediamo con la console come procedere.
Copia
Se la console del server di produzione consente di accedere anche alle cartelle del sito copia, allora “basterà” copiare i file dalla cartella principale a quella secondaria, ora mi spiego meglio.
Accediamo con il terminale del nostro computer (io uso un Mac, quindi ho terminal.app, ma in Windows va bene Putty) al server di origine (e se è lo stesso della copia siamo già pronti a operare).
Se invece i server o gli account sono distinti (devi accedere con utente diverso), in un’altra finestra del terminale accedi alla console del server di copia e vai al capitolo successivo.
Copiamo i file di origine con
cp -R cartella_di_origine/* cartella_di_destinazione/
L’opzione -R dice al comando di entrare ricorsivamente dentro alle cartelle e non fermarsi a quella indicata nel comando.
Rsync
Se il server su cui andremo a copiare il sito online è diverso, per copiare i file ci sono molti modi, ma grazie alla console utilizzare rsync è la via più sicura per diversi motivi:
- è sicuro grazie al protocollo SSH
- è veloce grazie alla possibilità di comprimere i file prima di trasferirli
- è versatile perché se devi interrompere il trasferimento puoi riprenderlo quando vuoi
- è efficiente perché se lo rilanci più volte a distanza di poco tempo (o tanto…) trasferirà solo i file che hanno subito modifiche o sono stati creati rispetto a quelli presenti sul server di destinazione
Come vedi è un ottimo strumento, ma la cosa assolutamente necessaria è ovviamente avere accesso alla console dei 2 server di origine e di destinazione.
Database
Per copiare e trasferire il database, prima dobbiamo esportarlo e Mysql ha un comando apposito chiamato mysqldump.
mysqldump -u USER -p NOME_DB -h NOME_O_IP_SERVER > db_copia.sql
Dove USER è il nome utente del database, -p dice che dobbiamo inserire la password dell’utente database una volta premuto invio, NOME_O_IP_SERVER va inserito se è diverso dal server della console, quindi se fosse localhost non va messo. Il resto del comando salva i dati nel file db_copia.sql
Bene adesso possiamo copiarlo o trasferirlo in una cartella della copia del sito, per esempio la cartella principale di dove abbiamo copiato i file in precedenza.
Per copiare i dati dal file .sql al database possiamo usare questo comando:
mysql -u USER -p -h NOME_O_IP_SERVER NOME_DB < NOME_FILE_DUMP_DEL_DB.sql
Assemblaggio dei vari “pezzi”
Bene, adesso siamo a questo punto: abbiamo tutti i file e il database originale che “punta” al dominio principale.
Tabelle
Prima cosa da fare è cambiare l’url del sito conosciuto da Prestashop nel database, la tabella indicata a contenere questo dato è
PRE_shop_url
dove PRE_ è il prefisso delle tabelle.
Files
Aprire il file parameters.php dentro app/config e aggiornare i dati relativi al database, host, nome db, nome utente e password.
Pulire tutta la cache con il comando
rm -Rf var/cache/*
Se si riscontrano problemi ad accedere al sito o ad eseguire i file php, la prima cosa da fare è controllare il file .htaccess