Introduzione
Drupal Commerce Kickstart è una distribuzione di Drupal che integra la gestione dei contenuti, della community e dell'e-commerce, per realizzare un punto vendita sul web.
Prerequisiti per l'installazione
- essendo una distribuzione non può essere applicata a siti esistenti ma deve essere utilizzata solo per crearne di nuovi.
- è necessario la creare un nuovo database
- purtroppo molti Service Provider riservano dei limiti di memoria molto bassi per le installazioni sull'host potrebbe quindi essere necessario informarsi su come incrementare la disponibilità di RAM riservata ad Apache o a PHP: eventualmente consultare Increase PHP memory limit.
Per avere una documentazione vasta ed esauriente relativamente alla distribuzione DCK consultare Commerce Guys.
Installazione
Per scaricare DCK occorre andare sulla pagina contenente le versioni della distribuzione: Commerce Kickstart.
selezionare il link "notes" dall'ultima versione di DCK (alla data di pubblicazione di questo articolo è la 7.x-2.14)
Fare quindi il download del core in forma .tar.gz (commerce_kickstart-7.x-2.14-core.tar.gz).
Estrarre il file in /var/www (o comunque nella vostra web root):
$ sudo tar -xvf /home/bauhouse/Downloads/commerce_kickstart-7.x-2.14-core.tar.gz
Rinominare la cartella che ora dovrebbe chiamarsi commerce_kickstart-7.x-2.14 con un nome più adatto (in questo caso userò un generico d7_ck):
$ sudo mv commerce_kickstart-7.x-2.14 d7_ck
Adesso, prima di continuare con l'installazione vera e propria, è necessario creare un nuovo database da associare alla distribuzione DCK utilizzando PhpMyadmin; se ci sono delle difficoltà consultare una guida, sul web ce ne sono innumerevoli, per esempio: SiteGround PhpMyadmin Create DB.
Una volta generata la cartella contenente DCK e creato il database, l'installazione prosegue utilizzando un comodo wizard che si attiva dall'url in cui la nuove distribuzione è stata inserita. Ne caso di una installazione in locale, caricare dal browser l'url:
http://localhost/d7_ck/install.php?profile=commerce_kickstart
Dovrebbe apparire una pagina come questa:
Premere il bottone "Let's Get Started" e iniziamo!
Sezione 1 - Verify requirements
Questa sezione presenta una lista di errori o avvertimenti che il wizard individua. I più comuni sono i seguenti:
File system. The directory sites/default/files does not exist.
Soluzione - Spostarsi nella cartella d7_ck/sites/default e creare una nuova cartella con nome "files":
$ cd /var/www/d7_ck/sites/default
$ sudo mkdir files
Default settings file. The default settings file does not exist.
Soluzione - Spostarsi nella cartella d7_ck/sites/default e creare un nuovo file con nome settings.php copiandolo da default.settings.php:
$ cd /var/www/d7_ck/sites/default
$ sudo cp default.settings.php settings.php
PHP memory limit
Soluzione - Spostarsi nella root di d7_ck e modificare il file .htaccess come indicato in seguito:
$ cd /var/www/d7_ck
$ sudo gedit .htaccess
cercare la stringa php_value memory_limit e verificare che la memoria assegnata sia 128M altrimenti correggerla; se non c'è inserirla. La stringa corretta è:
php_value memory_limit 128M
Salvare e chiudere gedit.
File system. The directory sites/default/files is not writable.
Soluzione - Aggiungere i permessi di lettura alla cartella /var/www/d7_ck/sites/default/files:
$ cd /var/www/d7_ck/sites/default
$ sudo chmod go+w files
Settings file. The settings file is not writable.
Soluzione - Aggiungere i permessi di lettura al file /var/www/d7_ck/sites/default/settings.php:
$ cd /var/www/d7_ck/sites/default
$ sudo chmod go+w settings.php
cURL Not found Amex Payment Gateway requires the PHP cURL library.
N.B. cURL è una estensione PHP utilizata per inviare richieste in background ad altri siti web; viene utilizzata per inviare i dettagli dei pagamenti ad Authorize.net.
Soluzione - Installare cURL:
$ sudo apt-get install php5-curl
Finita l'installazione è necessario riavviare Apache:
$ sudo service apache2 restart
Quando tutti i warning ed errori sono stati risolti il wizard passa automaticamente alla sezione successiva.
Sezione 2 - Set up database
Qui viene richiesto di inserire nome, user e password relativi al nuovo db creato precedentemente con PhpMyAdmin.
Fintanto che non vengono inserite tutte le informazioni corrette, ovvero finché il wizard non riuscirà ad accedere al database, verrà mostrato un errore come nell'immagine qui sotto:
Proseguire premendo il bottone "Save and continue".
Sezione 3 - Install profile
In questa sezione vengono eseguite delle operazioni di installazione e poi si passa automaticamente alla sezione successiva.
Sezione 4 - Configure site
Questa sezione è divisa in tre parti:
- Site information
site name: inserire il nome del vostro sito
site e-mail address: e-mail del sito - Site maintenance account
username: username dell'amministratore
e-mail address: e-mail dell'amministratore
password: ... password, ovviamente! - Server settings
default country: scegliere la nazione in cui opera il sito
default time zone: fuso orario
Proseguire premendo il bottone "Save and continue".
Sezione 5 - Configure store
Default store country: scegliere la nazione (default) in cui si intende operare
Do you want to install demo store? --> Y
Do you want to be able to translate the interface of your store? --> Y
Default store currency: selezionare la valuta di default
Proseguire premendo il bottone "Save and continue".
Sezione 6 - Install demo store
Questa sezione viene comletata automaticamente e si passa alla successiva.
Sezione 7 - Import content
Questa sezione viene comletata automaticamente e si passa alla successiva.
Fine! L'installazione è a questo punto terminata; viene caricata la pagina "Getting started" con una serie di video tutorial e ora possiamo lavorare con Drupal Commerce Kickstart.
Ultma operazione utile: eventualmente sistemare i permessi cambiati in precedenza. Ora che sono state fatte tutte le operazioni necessarie in sites/default e sites/default/settings.php, possiamo rimuovere i permessi di scrittura per evitare problemi di sicurezza.
$ cd /var/www/d7_ck/sites/default
$ sudo chmod go-w files
$ sudo chmod go-w settings.php
Aggiornamento di DCK
Le versioni di DCK vengono aggiornate di frequente, è quindi importante tenere aggiornata la distribuzione. Poiché DCK coinvolge parecchi moduli, ognuno con la loro storia e cambi di versione, poterebbe diventare complesso tenere traccia di quali versioni dei moduli utilizzare per una data versione di DCK (sono coinvolti più di 200 moduli!).
E' molto importante non aggiornare un singolo modulo, ad esempio Toolmar Megamenu, perché ogni singola versione di DCK è strutturata per lavorare con precise versioni dei moduli che utilizza (vedi DCK modules version) e cambiare una versione potrebbe comportare il non funzionamento di tutta la distribuzione.
Come stabilire se è necessario un aggiornamento? Se entriamo in amministrazione del sito Drupal e dal menu selezioniamo Site Setting - Modules e quindi selezioniamo il Tab Update: qui troviamo l'elenco degli aggiornamenti da effettuare.
La maniera più comoda per eseguire un aggiornamento sicuro, cioè che automaticamente si preoccupi di tenere allineate tutte le versioni dei moduli, è quella di utilizzare Drush.
Innanzitutto bisogna posizionarsi nella root della propria distribuzione:
$ cd /var/www/d7_ck
Con il comando seguente possiamo vedere lo stato attuale della installazione, per accertarci di lavorare sul sito corretto se avessimo più di una distribuzione Drupal intallata:
$ drush status
Quindi sarà necessario fare il download dell'ultima versione di DCK:
$ drush dl commerce_kickstart
Apparirà il seguente messaggio:
Install location profiles/commerce_kickstart already exists. Do you want to overwrite it? (y/n):
viene richiesto se aggiornare l'intero "profile" ovvero l'intera distribuzione, che include tutti i moduli aggiornati: risponderemo affermativamente (y). Ovviamente sarà stata buona norma durante lo sviluppo il non aver fatto aggiunte o modifiche nella cartella profile. Drush si occuperà di aggiornare tutto lasciando inalterata la cartella sites dove invece dovrebbero essere contenute tutte le nostre attività di sviluppo.
Una volta ottenuto l'upgrade si raccomanda si aggiornare anche il database:
$ drush updatedb -y
Se vogliamo vedere quali sono gli aggiornamenti che vengono eseguiti possiamo utiizzare lo stesso comando senza l'opzione -y:
$ drush updatedb
Attenzione: potrebbero apparire degli errori durante l'aggiornamento, possiamo tranquillamente ignorarli.