Ottimizzare e Velocizzare Magento, per gestire al meglio le risorse a disposizione.
Contenuti
- Ottimizzare e Velocizzare Magento, per gestire al meglio le risorse a disposizione.
- Vediamo come Ottimizzare e Velocizzare Magento
- Modifichiamo l’ .htaccess
- Abilitiamo l’Output Compression
- Abilitiamo la Scadenza degli Headers
- Ottimizzare e velocizzare Magento: Amministrazione
- Il Merge CSS and JS
- Abilitare Flat Catalog
- Ottimizzare e velocizzare Magento: suggerimenti per la manutenzione del Database
- Database Logs
- Ottimizziamo i Log Database attraverso Amministrazione di Magento
- log.php Utility
- Ottimizzazione e pulizia del Database via phpMyAdmin
Magento è diventato uno tra gli eCommerce più popolari. Offre grandi possibilità di personalizzazione e grande versatilità d’uso grazie anche alla vasta gamma di plugin che consentono agli utenti di gestire al meglio il proprio lavoro.
E’ opportuno ricordare che Magento utilizza in maniera intensiva le risorse del webserver, CPU, memoria e query sul MySql. Molto spesso soluzioni installate su webserver condivisi come VPS potrebbero non soddisfare a pieno le necessità di eCommerce di grandi dimensioni. Risorse come l’utilizzo della CPU vengono limitate sui VPS ad esempio al 25-30% e in alcuni casi potrebbe essere necessario passare ad una configurazione di server dedicato.
Vediamo come Ottimizzare e Velocizzare Magento
Modifichiamo l’ .htaccess
Abilitiamo l’Output Compression
Apriamo il nostro file .htaccess
cerchiamo la sezione che inizia con <IfModule mod_deflate.c>
e termina con </IfModule>
Questa sezione di codice può essere utilizzata per abilitare su Apache il modulo mod_deflate, che provvede ad attivare la compressione for text, css, and javascript.
Sarà sufficiente rimuovere il # :
<IfModule mod_deflate.c> ############################################ ## enable apache served files compression ## http://developer.yahoo.com/performance/rules.html#gzip # Insert filter on all content SetOutputFilter DEFLATE # Insert filter on selected content types only AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript # Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </IfModule>
Nota: l’attivazione del modulo mod_deflate potrebbe creare problemi all’aspetto grafico del tema, sarebbe opportuno verificare passo passo ogni modifica, in modo da assicurarsi che l’attivazione di ogni singola funzione non vada a creare problemi.
Abilitiamo la Scadenza degli Headers
I visitatori che accedono per la prima volta sul sito web e quindi sull’eCommerce Magento devono fare diverse richieste HTTP. Utilizzando gli “Expires Header” quindi abilitando le scadenze di alcune parti della pagina (o componenti) sarà possibile memorizzare nella cache dati. “Expires Header” indicano al browser se devono richiedere uno specifico file dal server o se recuperarne uno già memorizzato nella cache del browser.
Apriamo il nostro file .htaccess
cerchiamo la sezione che inizia con <IfModulemod_expires.c>
e termina con </IfModule>
Sarà sufficiente rimuovere il # :
<IfModule mod_expires.c> ############################################ ## Add default Expires header ## http://developer.yahoo.com/performance/rules.html#expires ExpiresActive On ExpiresDefault "access plus 1 year" </IfModule>
Ottimizzare e velocizzare Magento: Amministrazione
Entriamo nel back-end
Il Merge CSS and JS
Alcune operazioni per ridurre il numero di richieste HTTP:
- Login nell’amministrazione andiamo in – System > Configuration > Developer
- Nella sezione “JavaScript Settings”, impostiamo “Merge JavaScript Files” su yes.
- Nella sezione”CSS Settings”, impostiamo “Merge CSS Files” su yes.
- Alla fine sarà necessario cancellare la cache di Magento.
Abilitare Flat Catalog
Abilitando le opzioni Flat Catalog option per Categorie e Prodotti permetterà di fondere i dati in un’unica tabella, quindi migliorare le performance.
- Login nell’amministrazione andiamo in – System > Configuration > Catalog
- Nella sezione “Frontend”, impostiamo “Use Flat Catalog Category” su yes.
- Nella sezione “Frontend”, impostiamo “Use Flat Catalog Product” su yes.
- Alla fine sarà necessario cancellare la cache di Magento.
Nota: è opportuno verificare passo passo ogni modifica, in modo da assicurarsi che l’attivazione di ogni singola funzione non vada a creare problemi.
Ottimizzare e velocizzare Magento: suggerimenti per la manutenzione del Database
Uno dei principali problemi con gli eCommerce Magentoto è la lentezza nell’esecuzione di alcune operazioni legate alle dimensioni del database. Quando le dimensioni del MySql inizano a diventare notevoli, diventa difficile e lento recuperare i dati.
Alcuni suggerimenti per ottimizzare e velocizzare il database di Magento.
Note: le operazioni sul MySql devono essere effettuate con notevole cautela, creare sempre un backup del MySql prima di procedere.
Database Logs
Ci sono diverse tabelle utilizzate da Magento per il logging. L’utilizzo di queste tabelle è molto importante, consente a Magento e a noi di conoscere quanto accade in tutte le fasi di accesso all’eCommerce, ma al tempo stesso queste tabelle diventano rapidamente di grandi dimensioni ed influiscono sulle prestazioni. Una regolare manutenzione ed ottimizzazione del contenuto di queste tabelle può influire positivamente sull’accesso ai dati.
Queste sono le tabelle che ci interessano relative alla registrazione:
log_customer
log_visitor
log_visitor_info
log_url
log_url_info
log_quote
report_viewed_product_index
report_compared_product_index
report_event
catalog_compare_item
Ottimizziamo i Log Database attraverso Amministrazione di Magento
- Magento Amministrazione anidiamo in System > Configuration
- Nel menù di sinistra andiamo in Advanced > System
- In “Log Cleaning”, cambiamo “Enable Log Cleaning” impostandolo su YES e configuriamo Save Log per 14 giorni.
- Salviamo la configurazione “Save Config”
log.php Utility
Magento dispone di una shell utility che può essere utilizzata per configurare la pulizia del log del database utilizzando Cron o può essere avviata matualmente.
Manualmente
Accedere all’account via SSH e posizionarsi nella cartella di root in cui è installato Magento:
php -f shell/log.php clean
E’ possibile utilizzare il paramentro -days
quanti giorni salvare
Cron
- Accedere a cron attraverso cPanel
- Cliccare su on Cron Jobs
Vediamo un esempio:
php -f/home/yourcpanelusername/public_html/path/to/magento/shell/log.php
Ottimizzazione e pulizia del Database via phpMyAdmin
L’utilizzo di phpMyAdmin offre maggiore flessibilità ed efficienza quando si lavora su MySql, ma è opportuno avere una discreta conoscenza degli strumenti utilizzati, in quanto si potrebbe danneggiare il MySql in maniera irreparabile. Fate sempre un backup prima di lavorare direttamente su MySql
- Login in cPanel e accediamo cliccando su phpMyAdmin
- Selezioniamo il database associato all’installazione di Magento
- selezioniamo le tabelle:
log_customer
log_quote
log_summary
log_summary_type
log_url
log_url_info
log_visitor
log_visitor_info
log_visitor_online
- Dopo aver selezionato tutte le tabelle o anche una tabella per volta svuotiamo il contentuto
- Confermiamo l’operazione, cliccando su Yes.
Sarebbe ottimale eseguire questa operazione in maniera regolare nel tempo senza operare manualmente. Cron ci consente impostare questa operazione, organizzandola nel tempo, se opportunamente settato.