Trasferire Magento da un server all’altro
Per chi non lo conosce, magento è un software open source per l’e-commerce in circolazione dal 2008 con licenza Open Software License. E’ stato sviluppato in php usando il framework Zend. Al momento sono in molti i venditori che lo preferiscono, e questo si vede anche dai grandi marchi internazionali che lo usano, come Samsung, Skype, Nokia ecc., è un CMS in costante crescita di utenti.
Magento richiede server dedicati forniti da compagnie di hosting particolari per poter funzionare in modo efficace e veloce. Se non valutati attentamente la scelta del del hosting da acquistare, non potrai avere grandi risultati sul bilancio o sull’avanzamento del tuo progetto.
Quindi il consiglio principale è di evitare hosting low cost come ad esempio aruba, e sopratutto vedere se rispetta a pieno i requisiti di Magento.
Per testare la compatibilità del server ti basta seguire questi tre semplici passi:
- Scaricare il file magento check dal sito e scompattare sul tuo computer
- Caricare il file magento-check.php nella directory del server
- Dal browser navigare sulla pagina :
http://mio_sito/magento-check.php
Una volta che hai controllato sei pronti per l’istallazione o per lo spostamento da un server ad un altro (come nel mio caso), e per fare questo è necessario seguire dei passaggi semplici:
-
Creare il back-up dei file Magento
É sempre consignato fare un back-up prima di iniziare. Per fare questo, viene fatto il refresh della Cache da System => Cache Management e dopo via FTP scarichi tutti i file del CMS.
-
Creare il dump del database
Il back-up del database può essere fatto a linea di comando
# mysqldump -u [user_database] -p [database_name] > dumpServerMagento.sql
oppure utilizzando phpmyadmin nell’area Esporta del pannello di controllo.
-
Caricare i file di back-up nel nuovo server
I file recuperati al passo nr. 1 vengono caricati nella directory principale htdocs del nuovo server.
-
Caricare il database nel nuovo server
Nel nuovo server crei un database [nome_database] e importi i dati del dumpServerMagento.sql . L’import del database si può fare a liena di comando
# mysqldump -u [user_database] -p [nome_database] < dumpServerMagento.sql
oppure come prima dal pannello di controllo di phpmyadmin nell’area Importa.
-
Aggiornare nel database la nuova URL del server
In questo passo viene modificato il database. Dal phpmyadmin sul database ti sposti dentro la tabella core_config_data e modifichi queste due righe come si vede qui sotto:
web/unsecure/base_url > http://www.newdomain.com/ web/secure/base_url > http://www.newdomain.com/
-
Configurare magento per l’accesso al database
Questo passaggio dipende dai cambiamenti che hai fatto al nome database, user e password. Se sono state cambiate bisognerà modificare il file local.xml che si trova su app/etc/local.xml inserendo i dati di accesso corretti.
[host_database] [nome_database] [user_database] [password]
-
Aggiornare la cache
Questo è l’ultimo passo, bisogna pulire la cache. Entri nel pannello di controllo e poi System -> Cache management -> Seleziona tutto e poi disabilita cache management, dopo di che cancelli tutte le cartelle e i file che si trovano dentro var/sesion/ e var/cache del nuovo sito.
L’unico problema che ho riscontrato è stato tra la versione di Magento 1.3.0 e la versione di PHP 5.2.0 dandomi come errore:
Fatal error: Method Varien_Object::__tostring() cannot take arguments
La soluzione a questo problema è modificare due righe di codice.
La prima riga si trova su “app/code/core/Mage/Core/Controller/Request/Http.php :199 ”
PRIMA $host = split(':', $_SERVER['HTTP_HOST']); DOPO $host = explode(':', $_SERVER['HTTP_HOST']);
la seconda riga si trova su “lib/Varien/Object.php :484”
PRIMA public function __toString(array $arrAttributes = array(), $valueSeparator=',') DOPO public function __invoke(array $arrAttributes = array(), $valueSeparator=',')
A questo punto dopo aver finito il trasloco di Magento e fatto gli ultimi controlli il tuo negozio online è pronto per iniziare con le vendite. 🙂
Spero di esserti stato d’aiuto.
A presto!
Ertil Gani