Come installare e configurare Magento su Ubuntu 14.04
introduzione
Magento è il sistema di gestione dei contenuti più popolare per i siti di e-commerce. Viene utilizzato sia dalle piccole imprese che dalle grandi aziende e può essere arricchito da migliaia di estensioni e temi. Magento utilizza il sistema di database MySQL, il linguaggio di programmazione PHP e parti di Zend Framework.
In questo tutorial, esamineremo come installare Magento con un server Web Apache su Ubuntu 14.04, incluse alcune configurazioni comuni di prestazioni e sicurezza lungo il percorso.
Prerequisiti
Prima di iniziare con questa guida, è necessario completare alcuni passaggi.
A causa delle esigenze di elaborazione delle operazioni di Magento, si consiglia di installare Magento su un VPS con almeno 2 GB di RAM. Ciò garantirà che tutto il software coinvolto nella gestione del negozio disponga di memoria sufficiente per funzionare.
Avrai bisogno dell'accesso a un utente non root con privilegi sudo
. Se non l'hai ancora fatto, puoi eseguire la guida alla configurazione iniziale del server Ubuntu 14.04 per creare questo account.
Inoltre, dovrai avere uno stack LAMP (Linux, Apache, MySQL e PHP) installato sulla tua istanza VPS. Se non hai già installato e configurato questi componenti, puoi utilizzare questa guida per imparare a installare LAMP su Ubuntu 14.04.
Al termine di questi passaggi, puoi connetterti al tuo server Ubuntu come utente non root e continuare con l'installazione di Magento.
Passaggio 1: configurare Apache e PHP
Prima di scaricare e installare Magento, Apache e PHP devono essere configurati per gestire correttamente il traffico e le attività di elaborazione di Magento e sarà necessario installare e attivare alcuni moduli aggiuntivi.
Host virtuale Apache
Innanzitutto, dobbiamo configurare un file host virtuale in modo che Apache sappia come gestire correttamente il nostro sito Magento. Possiamo usare il nostro editor di testo per creare un nuovo file host virtuale in /etc/apache2/sites-available/
. In questo esempio, l'host virtuale si chiama magento
, ma puoi chiamarlo diversamente se preferisci.
sudo nano /etc/apache2/sites-available/magento.conf
Le esigenze dell'host virtuale di Magento sono abbastanza semplici. Inizia con un tag
che ascolta tutto il traffico dalla porta 80, la porta HTTP standard. Quindi aggiungi una riga che dice ad Apache dove trovare i file del tuo sito con la direttiva DocumentRoot
:
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
Abbiamo bisogno di aggiungere alcuni parametri aggiuntivi affinché Magento funzioni correttamente. All'interno di un tag
che punta alla nostra radice del documento, inseriremo le opzioni per l'indicizzazione della directory di Apache, il supporto del collegamento simbolico e il supporto multilingue. Aggiungeremo anche una riga che consente ai file .htaccess
di sovrascrivere le impostazioni di Apache, che fornisce un controllo più dettagliato delle singole cartelle.
. . .
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
. . .
Con tutti questi componenti in atto, il tuo file host virtuale sarà simile a questo:
<VirtualHost *:80>
DocumentRoot /var/www/html
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
</VirtualHost>
Quando hai finito di scrivere il blocco del server, salva e chiudi il file. Per abilitare il nuovo sito con Apache, usa il comando a2ensite
:
sudo a2ensite magento.conf
Vogliamo anche disabilitare l'host virtuale predefinito fornito con Apache, poiché entrerà in conflitto con il nostro nuovo host virtuale. Per disabilitare un sito con Apache, usa il comando a2dissite
:
sudo a2dissite 000-default.conf
Impostazioni PHP
Successivamente, dobbiamo modificare la quantità di memoria che Apache concede ai processi PHP. Magento utilizza PHP per quasi tutto ciò che fa e necessita di una discreta quantità di memoria per operazioni complesse come l'indicizzazione di prodotti e categorie. Per impostazione predefinita, PHP assegna un massimo di 128 MB di memoria a ogni script in esecuzione su Apache. Dovremmo aumentare tale limite fino a un importo ragionevole per garantire che nessuno degli script di Magento esaurisca la memoria, il che causerebbe il crash dello script.
Apri il file di configurazione PHP di Apache con il tuo editor di testo e i privilegi di root:
sudo nano /etc/php5/apache2/php.ini
Trova la seguente riga, che dichiara il limite di memoria per script PHP:
memory_limit = 128M
Modifica quella riga in modo che il limite sia elevato a 512 MB. Le esigenze di memoria del tuo negozio potrebbero essere maggiori a seconda del numero di prodotti nel tuo catalogo e del numero di visitatori che ricevi ogni giorno. Alcuni negozi più grandi devono impostare il limite di memoria su 2 GB o più, ma per ora 512 MB dovrebbero essere adeguati.
memory_limit = 512M
Nota: assicurarsi di utilizzare \M alla fine del numero di memoria.
Quando hai finito di apportare questa modifica, salva e chiudi il file. Al successivo riavvio di Apache, la modifica del limite di memoria avrà effetto.
Magento ha bisogno di un paio di moduli PHP oltre a quelli forniti con PHP. Possiamo ottenerli direttamente dai repository predefiniti di Ubuntu dopo aver aggiornato il nostro indice dei pacchetti locale:
sudo apt-get update
sudo apt-get install libcurl3 php5-curl php5-gd php5-mcrypt
Queste estensioni consentiranno a Magento di gestire correttamente le richieste HTTP, le miniature delle immagini e la crittografia dei dati. Ora che abbiamo tutti i pacchetti di cui abbiamo bisogno, possiamo abilitare il supporto per la riscrittura degli URL per Apache e il supporto per la crittografia per PHP:
sudo a2enmod rewrite
sudo php5enmod mcrypt
Una volta apportate tutte queste modifiche alla configurazione e all'estensione, è il momento di riavviare l'istanza del server Apache in modo che le modifiche vengano applicate:
sudo service apache2 restart
Passaggio 2: creare un database e un utente MySQL
Magento utilizza un database MySQL per gestire i dati del sito, come le informazioni sui prodotti e sugli ordini. Abbiamo MySQL installato e configurato, ma dobbiamo creare un database e un utente con cui Magento possa lavorare.
Inizia accedendo all'account root di MySQL:
mysql -u root -p
Ti verrà richiesta la password dell'account root di MySQL, che hai impostato quando hai installato MySQL. Una volta inviata la password corretta, ti verrà fornito un prompt dei comandi MySQL.
Innanzitutto, creeremo un database in cui Magento può scrivere dati. In questo esempio, il database si chiamerà magento
, ma puoi chiamarlo come preferisci.
CREATE DATABASE magento;
Nota: ogni istruzione MySQL deve terminare con un punto e virgola (;
), quindi verifica di averlo incluso in caso di problemi.
Successivamente, creeremo un nuovo account utente MySQL che verrà utilizzato esclusivamente per operare sul nuovo database. La creazione di database e account con una sola funzione è una buona idea, in quanto consente un migliore controllo delle autorizzazioni e di altre esigenze di sicurezza.
Chiamerò il nuovo account magento_user
e gli assegnerò una password di password
. Dovresti assolutamente usare un nome utente e una password diversi, poiché questi esempi non sono molto sicuri.
CREATE USER magento_user@localhost IDENTIFIED BY 'password';
A questo punto, hai un database e un account utente, ciascuno creato appositamente per Magento. Tuttavia, l'utente non ha diritti di accesso al database. Dobbiamo collegare insieme i due componenti concedendo ai nostri utenti i privilegi di accesso al database:
GRANT ALL PRIVILEGES ON magento.* TO magento_user@localhost IDENTIFIED BY 'password';
Ora che l'utente ha accesso al database, dobbiamo svuotare i privilegi in modo che MySQL conosca le recenti modifiche ai privilegi che abbiamo apportato. Fatto ciò, possiamo uscire dal prompt dei comandi di MySQL.
FLUSH PRIVILEGES;
exit
Ora dovresti tornare al normale prompt dei comandi SSH.
Passaggio 3: scarica e configura i file Magento
Ora siamo pronti per scaricare e installare Magento. Per vedere qual è l'ultima versione stabile di Magento Community Edition, vai alla pagina di download della community. In questo esempio, il numero della versione corrente era 1.9.0.1, ma dovresti sostituire quel numero con l'ultima versione disponibile. Si consiglia sempre di utilizzare l'ultima versione di Magento, poiché le nuove versioni spesso includono importanti aggiornamenti di sicurezza oltre a funzionalità nuove e migliorate.
Usa wget
per scaricare l'archivio file di Magento nella tua home directory:
cd ~
wget http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz
Possiamo estrarre i file archiviati per ricostruire la directory Magento con tar
:
tar xzvf magento-1.9.0.1.tar.gz
Ora avrai una directory chiamata magento
nella tua home directory. Avremo bisogno di spostare i file decompressi nella root dei documenti di Apache, dove possono essere serviti ai visitatori del nostro sito web. Useremo rsync
per trasferire lì i nostri file Magento, poiché rsync
includerà importanti file nascosti come .htaccess
. Una volta completato il trasferimento, possiamo ripulire la nostra home directory eliminando la cartella magento
e archiviandola lì.
sudo rsync -avP ~/magento/. /var/www/html/
rm -rf ~/magento*
rsync
copierà in modo sicuro tutti i contenuti dalla directory che hai decompresso nella root del documento in /var/www/html/
. Ora dobbiamo assegnare la proprietà dei file e delle cartelle all'utente e al gruppo di Apache:
sudo chown -R www-data:www-data /var/www/html/
Questa modifica consentirà ad Apache di creare e modificare i file Magento. Ora siamo pronti per completare il processo di installazione tramite l'interfaccia di configurazione basata su browser di Magento.
Passaggio 4: completamento dell'installazione tramite l'interfaccia Web
Per accedere all'interfaccia web con il tuo browser, vai al nome di dominio del tuo server o all'indirizzo IP pubblico:
http://server_domain_name_or_IP/
Se i passaggi precedenti sono stati seguiti correttamente, ti verrà presentata la procedura guidata di installazione di Magento. La prima pagina mostrerà il contratto di licenza, che dovrai accettare prima di poter premere Continua.

La pagina successiva è dove puoi modificare le impostazioni locali, come lingua, fuso orario e valuta. Modificali nelle impostazioni più appropriate a dove vengono venduti i tuoi prodotti, quindi premi Continua.

La pagina Configurazione è suddivisa in tre sezioni. La prima sezione è dove puoi impostare come Magento si connette al suo database MySQL. Assicurati che il tipo di database sia impostato su \MySQL e l'host sia impostato su \localhost. Dovrai quindi inserire Nome database, Nome utente e Password utente con le impostazioni che hai deciso durante la creazione del database MySQL e dell'account utente in precedenza.

La sezione successiva nella pagina di configurazione è dove puoi configurare l'URL del tuo negozio, insieme a un paio di altre funzioni controllate da Apache. Assicurati che l'URL di base corrisponda al nome di dominio del tuo server; se non hai ancora impostato un nome di dominio, per ora puoi utilizzare l'indirizzo IP pubblico del tuo server. È una buona idea cambiare il percorso di amministrazione in qualcosa di meno ovvio di \admin per rendere più difficile per qualcuno trovare il tuo pannello di amministrazione. Dovresti anche prendere in considerazione la possibilità di selezionare Usa riscritture del server Web (Apache) per rendere gli URL del tuo sito più amichevoli agli utenti e ai motori di ricerca.Il modulo Apache necessario per supportare questa funzionalità, mod_rewrite
, è già stato abilitato ed è pronto per l'uso.

L'ultima parte della pagina Configurazione serve per selezionare il metodo di memorizzazione dei dati della sessione. Magento viene fornito con due metodi per salvare i dati della sessione utente. Il metodo File System archivia le sessioni in file sul server ed è il metodo più semplice con cui iniziare. Il metodo Database memorizza le sessioni come voci nel database MySQL ed è ideale per le installazioni Magento che si estendono su più server. Per ora, possiamo attenerci al metodo File System, poiché generalmente funzionerà meglio fuori dagli schemi.

Dopo aver selezionato le opzioni di configurazione e premuto Continua, passerai alla pagina di creazione dell'account amministratore. Qui è dove creerai l'account amministrativo responsabile della manutenzione del negozio Magento. Assicurati che il nome utente e la password siano sicuri e difficili da indovinare. Il campo Chiave di crittografia deve essere lasciato vuoto a meno che non si stia migrando i dati da un'installazione Magento esistente. Se lasci vuoto il campo, Magento genererà una nuova chiave di crittografia quando fai clic su Continua e la visualizzerà per te nella pagina successiva. Assicurati di salvare quella chiave di crittografia in un posto sicuro nel caso in cui ne avessi bisogno per scopi di migrazione in seguito.

Una volta completata la configurazione basata sul web, la tua installazione di Magento sarà pronta per l'uso. Dai un'occhiata alla tua nuova vetrina visitando il nome di dominio del tuo server o l'indirizzo IP pubblico nel tuo browser web:
http://server_domain_name_or_IP/
Se tutto è stato configurato correttamente, ti dovrebbe essere presentata una vetrina simile a questa:

Puoi anche visitare il tuo nuovo sito di amministrazione accedendo alla directory di amministrazione che hai impostato in precedenza:
http://server_domain_name_or_IP/admin/
Accedi con il nome utente e la password dell'amministratore per vedere la tua nuova dashboard:

Conclusione
Ora che hai il tuo negozio Magento attivo e funzionante, sei pronto per iniziare a costruire il tuo catalogo di progetti e iniziare a vendere!
Un passaggio successivo fondamentale per crittografare il traffico del tuo sito con un certificato SSL. Ecco una guida per aiutarti a iniziare: Come installare un certificato SSL da un'autorità di certificazione commerciale.