Prestashop da locale a remoto

Ho deciso di scrivere questa guida su come migrare Prestashop da locale a remoto per avere sempre a portata di mano tutti gli step. Spesso quando effettuo una migrazione del mio Prestashop da locale a remoto dimentico qualche passaggio…sarà l’età…

Quando si realizza un sito, sia esso un sito web vetrina, monopagina, blog o ecommerce, si procede dapprima con la costruzione dello stesso in locale (sul proprio PC) e successivamente si trasferisce il risultato finale sul Hosting da noi scelto.

Con Prestashop, come con molti dei siti costruiti con un database complesso, al momento del trasferimento è necessario effettuare alcune modifiche al DB.

Nel caso anche tu volessi migrare Prestashop da locale a remoto (Prestashop è uno dei migliori e più completi CMS ecommerce presenti sul web!) devi apportare poche ma indispensabili modifiche al DB e ad un file di configurazione PHP.

Prestashop da locale a remoto

Viste le continue evoluzione del noto CMS francese apporterò costantemente modifiche a questa pagina integrando gli step relativi alle nuove versioni.

Prestashop da locale a remoto: step by step.

PRESTASHOP 1.5 e precedenti.

Modifica del file settings.inc.php su Prestashop 1.5 e versioni precedenti.

Per prima cosa devi modificare il file “settings.inc.php”. Ti consiglio di duplicare il file e rinominarlo (ad esempio in “settings.inc_backup.php”) e poi modificare l’originale “settings.inc.php”. Queste le voci da modificare:

  • define(‘_DB_SERVER_’, ‘nome_del_tuo_host‘);
  • define(‘_DB_NAME_’, ‘nome_del_tuo_database‘);
  • define(‘_DB_USER_’, ‘nome_utente‘);
  • define(‘_DB_PASSWD_’, ‘tua_password‘);

Ovviamente devi inserire i dati forniti dal tuo Hosting al posto delle voci indicate. Se utilizzi una versione Prestashop antecedente alla 1.5 sarà necessario modificare anche la voce “BASE_URI”. Qui dovrai inserire la sottocartella in cui è presente il tuo sito, che generalmente non esiste perchè stai operando nella radice del dominio (in questo caso scrivi “/”, diversamente scrivi “/tua_sottocartella”).

Fatto questo procedi a trasferire il tuo Prestashop da locale a remoto utilizzando FileZilla. Il tempo richiesto sarà molto, dunque mentre FileZilla lavora, tu passa agli step successivi.

Modifica del database MySql su Prestashop 1.5 e versioni precedenti.

Per questa operazione devi usare due pannelli di controllo. Quello locale e quello remoto. Quello remoto, presente sull’ Hosting, ti sarà accessibile grazie alle indicazioni del fornitore dello spazio web. Quello locale lo hai installato per consentire al tuo ecommerce di funzionare sul tuo PC. In entrambi i casi si utilizza il pannello phpMyAdmin.

In questa guida non mi dilungo su come accedere a phpMyAdmin o sull’utilizzo di XAMPP (il pannello di controllo locale per siti costruiti con PHP e MySql). Arriverò subito agli step da seguire per permettere a Prestashop di funzionare una volta che lo hai trasferito sul web server.

Ovviamente per prima cosa dovrai trasferire il database da locale a remoto. Dunque vai sul tuo phpMyAdmin, nella sezione Esporta, ed esporta l’intero DB. Poi vai sul phpMyAdmin remoto fornito dal tuo Hosting e:

  1. crea il nuovo DB magari utilizzando lo stesso nome che hai creato in remoto (clicca sul menu “Database”, inserisci il nome del DB nel campo “Crea nuovo database” e clicca su “Crea”);
  2. ora vai su “Importa” e carica il tuo DB utilizzando i formati a te più utili (sql, csv, xml).

Ad importazione terminata effettua le seguenti modifiche.

Apri la tabella ps_configuration, amplia il numero di righe visibili da 25 a 500 e cerca quanto segue:

  • in PS_SHOP_DOMAIN inserisci http://www.nomesito.it
  • in PS_SHOP_DOMAIN_SSL inserisci nuovamente http://www.nomesito.it o https://www.nomesito.it se utilizzi SSL

Poi cerca e apri la tabella ps_shop_url e modifica queste tre voci:

  • in domain inserisci www.nomesito.it (non inserire “http://”)
  • in domain_ssl inserisci www.nomesito.it (non inserire “http://”)
  • in physical_uri inserisci /

Se il tuo sito si trova in una sottocartella, ad esempio http://www.nomesito.it/ecommerce, allora dovrai inserire il nome della sottocartella in corrispondenza della voce physical_uri come segue:

  • in physical_uri inserisci /ecommerce

Diversamente inserisci semplicemente la barra “/”.

Questa tabella è presente solo nelle versioni Prestashop superiori alla 1.5.

Il prefisso predefinito delle tabelle Prestashop è generalmente ps_ ma tu potresti utilizzare un tuo prefisso dedicato al sito che stai realizzando. In questo caso le tabelle ps_configurationps_shop_url avrebbero un prefisso differente.

Spero che i passaggi siano ben spiegati e di non aver dato nulla per scontato. Nel caso così non fosse scrivimi qui sotto. Se hai delle info utili da aggiungere, scrivimi sempre qui sotto. Se il posto è stato utile, condividilo e aiuta chi come te e me ha necessità di info su come migrare Prestashop da locale a remoto.

PRESTASHOP 1.6 e 1.7.

Modifica del file parameters.php su Prestashop 1.6 e 1.7.

Per prima cosa devi modificare il file “app/config/parameters.php”. Ti consiglio anche qui di duplicare il file e rinominarlo (ad esempio in “parameters_backup.php”) e poi modificare l’originale “parameters.php”. Queste le voci da modificare:

  • ‘database_host’ => ‘in_genere_è_localhost
  • ‘database_name’ => ‘nome_database
  • ‘database_user’ => ‘nome_utente
  • ‘database_password’ => ‘tua_password

In certi casi può essere necessario ripulire anche due cartelle di cache. Collegati via FTP sul nuovo server, vai in cache/smarty/compile/cache/smarty/cache/ ed elimina tutto il contenuto tranne i file index.php.

Modifica del database MySql su Prestashop 1.6 e 1.7.

Come già scritto per la versione 1.5 dovrai prima trasferire il database da locale a remoto. Dunque vai sul tuo phpMyAdmin, nella sezione Esporta, ed esporta l’intero DB. Poi vai sul phpMyAdmin remoto fornito dal tuo Hosting e apri la tabella ps_configuration, amplia il numero di righe visibili da 25 a 500 e cerca quanto segue:

  • in PS_SHOP_DOMAIN inserisci http://www.nomesito.it
  • in PS_SHOP_DOMAIN_SSL inserisci nuovamente http://www.nomesito.it o https://www.nomesito.it se utilizzi SSL

Cerca e apri la tabella ps_shop_url e modifica queste tre voci:

  • in domain inserisci www.nomesito.it (non inserire “http://”)
  • in domain_ssl inserisci www.nomesito.it (non inserire “http://”)
  • in physical_uri inserisci /

Se il tuo sito si trova in una sottocartella, ad esempio http://www.nomesito.it/ecommerce, allora dovrai inserire il nome della sottocartella in corrispondenza della voce physical_uri come segue:

  • in physical_uri inserisci /ecommerce

Diversamente inserisci semplicemente la barra “/”.

Conclusione.

Spero che questa guida sia chiara e utili a chi utilizza Prestashop. Se avete dubbi o altre info scrivetemi!

26 comments

  • Paolo

    Grazie per la guida.
    A me è stata utilissima.
    Nella versione 6.0.13 nella sezione
    ps_shop_url
    ho dovuto togliere il prefisso
    http://
    altrimenti non riuscivo ad aprire il sito messo in remoto.
    grazie ancora. ciao.

    Paolo

  • Paolo

    Si certo hai ragione.
    La versione di cui parlo è l’ultima ed è appunto la 1.6.0.13.
    Grazie ancora, ciao.

  • Andrea

    Buongiorno, ho eseguito alla lettera tutti i passaggi, il problema è che quando provo a guardare il sito mi esce queste errore:

    Forbidden

    You don’t have permission to access / on this server.

    preciso che ho cambiato i permessi a tutti i file in 777.

    Cosa posso fare??

    grazie!

    • Ciao! Non è necessario cambiare i permessi. Prova a ri-eseguire tutti i passaggi copiando nuovamente tutti i file da locale a remoto. Copia nuovamente anche il database e verifica soprattutto user e password del file settings.inc.php. Potresti aver scritto erroneamente questi dati.
      La procedura che ho riportato è quella che seguo ogni volta e ho usato Prestashop su più hosting provider. Tu che hosting usi?
      Facci sapere qual è stato il problema!
      PS: perdona il ritardo con cui ho risposto.

  • devis

    Ciao!
    Ho seguito tutti i passaggi però quando accedo all’index mi dice The page cannot be found, riesci ad aiutarmi?

  • Gerry

    Ciao e complimenti per la guida e la disponibilità.
    Il mio problema non riguarda il trasferimento da locale a remoto. Il sito l’ho strutturato tutto in remoto su hosting joomlahost. Fino all’altro ieri (7 gennaio) tutto andava ok ed io lavoravo in backoffice tranquillamente ed il frontoffice girava bene.
    Oggi, 9 gennaio, faccio per aprire il sito e mi appare “Impossibile connettersi al server”, sia da frontoffice che da backoffice e con tutti i browser. Preciso che non ho praticamente fatto nulla, a parte caricare i prodotti e cambiare un po’ di immagini, ed il sito era in via di ultimazione (dovevo configurare solo il modulo paypal con i dati da immettere). Nella speranza che sia un problema del server e che me lo risolvano, chiedo a te se hai opinioni al riguardo.
    Nel frattempo ho aperto un ticket di assistenza.
    Grazie a complimenti ancora.

    • Ciao Jerry! Hai fatto bene ad aprire un ticket con l’assistenza. Se non hai apportato modifiche il problema potrebbe essere dovuto all’hosting, anche se si tratterebbe di un caso molto raro. Se così fosse il tuo sito tornerebbe online in pochi minuti.
      Altre possibili cause potrebbero essere eventuali aggiornamenti ai moduli o un errore durante il caricamento via ftp (se hai caricato qualcosa relativo ai prodotti via http://ftp...).
      Al di là di tutto sarebbe utile conoscere altri dettagli sull’errore.

      • Gerry

        Grazie per la risposta.
        In effetti è strano, non mi da nessun errore, solo una pagina bianca, sia in FO che in BO.
        Guarda: http://www.modalowcost.net
        La mancanza del file robots (che, ora, ho generato in locale e uplodato sul server. A proposito, va nella cartella public.html, giusto?) poteva implicare qualcosa? Cmq, sempre irraggiungibile. Speriamo rispondano al ticket.
        Grazie, comunque, per la disponibilità e scusami se sono andato off topic rispetto al post.

  • Luis

    Ciao Mauro!
    Grazie per la guida!!
    Quindi vorrei lasciare anch’io il mio contributo a chi ha dei problemi con il trasferimento Prestashop Locale->Remoto. Ho avuto gli stessi problemi di Paolo e Devis.
    – Nel database -> ps_shop_url -> togliere il prefisso “http://”
    – “Internal Server Error” Nella root rinominare il file “.htaccess” (ad es. bkp.htaccess)
    -“Not Found The requested URL /…” Per questo problema, andare su Back Office -> Preferenze -> URL e SEO -> IMPOSTAZIONE URL -> Friendly url : Clicca NO e SALVA… torna e clicca Sì e SALVA nuovamente(questo farà che sia rigenerato un nuovo file .htaccess) Quindi, accedere il tuo sito et voilà!

  • Pedro

    Salve,

    ho eseguito tutti i passaggi alla lettera. Vedo i BO ma quando devo accedere al mio sito mi da pagina bianca….ho fatto rigenerare anche il .htaccess. Cosa potrebbe essere?

    Grazie

    • Mauro Beretta

      Ciao Pedro,
      perdona il ritardo con cui ti rispondo. Prova a modificare la tabella ps_shop_url senza inserire il prefisso http:
      -> in domain inserisci “www.il tuo sito.it” (senza “http://”)
      -> in domain_ssl inserisci “www.il tuo sito.it” (senza “http://”)
      Fammi sapere!

  • carletto

    Scusa ma non manca un passaggio fondamentale?
    lo dico perchè è una guida fantastica ma io che mi sono cimentato da poco ricordo che sul server remoto devi creare un database mysql per poi importare quello che avrai esportato non ti pare?

    • Mauro Beretta

      Ciao Carletto! Sì, è esatto. Si accede al pannello di gestione dei DB MySql e qui si crea il nuovo database. Successivamente si importa il file del database utilizzato in locale. Scusami ma ho dato per scontato un passaggio che correggerò.

  • Ciao,
    una domanda: la procedura vale anche per l’operazione al contrario, cioè da remoto a locale?. Perché, ho provato più volte e ma non funziona. Non capisco dove sbaglio. Sarebbe possibile inviarti le immagini delle configurazioni che ho fatto, per meglio farti capite dove probabilmente sbaglio?.
    grazie della collaborazione
    Giuseppe

    • Mauro Beretta

      Ciao Giuseppe. Si certo… la procedura vale anche al contrario.
      Inviami le immagini delle tue configurazioni e vediamo cosa si riesce a fare. Scrivimi qui: Form di contatto!.
      Ti risponderò dierettamente.

  • Paolo

    Ciao,
    io ho già il mio sito wordpress in remoto e vorrei aggiungere prestashop come sottocartella. Il mio database su Aruba si suddivide in 5 parti (db1, db2, ecc.).
    La domanda è: quando passo Ps da locale a remoto, posso importarla nello stesso identico database (db1) su cui già ho Wp? Oppure mi consigli di importarla su un’altra parte (db2)?

    Grazie mille

    • Mauro Beretta

      Ciao Paolo!
      Ti consiglio di utilizzare due DB differenti per molti motivi (sicurezza, future migrazioni, configurazione, pesantezza e così via). Non conosco lo scopo del tuo progetto ma certamente un DB per ogni CMS è la soluzione migliore che puoi adottare. Potresti anche pensare a due hosting differenti ognuno con il suo DB e il suo CMS ma ovviamente aumentano i costi.

  • Ciao
    sto provando da diversi giorni a pubblicare un sito realizzato in locale ma continuo ad avere problemi.
    Adesso, sia in FO che in BO, mi compare il classico errore HTTP ERROR 500.
    Ho rifatto diverse volte tutti i passaggi ma non funziona !!
    L’hosting è Register.it
    Cosa posso fare per risolvere il problema ?
    Grazie

  • Lino Fornaro

    Mauro,
    Sto provando a “trasportare” un sito di prova realizzato in locale, da un pc all’altro e dopo la procedura di salvataggio da un pc all’altro, non riesco a collegare il db a Prestashop.
    Quali informazioni ti possono servire per potermi dare aiuto?
    Te ne sarei molto grato in quanto sono bloccato con il lavoro.

    • Mauro Beretta

      Ciao Lino! Per aiutarti dovresti specificare la versione di Prestashop che stai usando e dettagliare il problema che riscontri… provo a spiegarmi meglio. Hai inserito i parametri del tuo DB sul file config di PS ma nonostante ciò il sito non funziona e ti mostra un errore? Oppure non sai dove inserire i parametri del tuo nuovo DB?
      Fammi sapere. Grazie!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *