Come Installare Magento 2 su Ubuntu: Guida Completa
Installare Magento 2 è il primo passo per creare un e-commerce scalabile e performante. Tuttavia, per garantire un processo senza intoppi, è fondamentale comprendere i requisiti di sistema e seguire una guida installazione Magento strutturata. Questo articolo, rivolto a sviluppatori e aziende IT, spiega in modo dettagliato come configurare l’ambiente, ottimizzare il server e completare l’installazione via CLI.
1. Requisiti di Sistema Magento: Cosa Serve Prima di Iniziare
Prima di installare Magento 2, verifica che il tuo server soddisfi questi requisiti minimi:
Ambiente Server
- Sistema operativo: Linux (Ubuntu 20.04 o superiore, consigliata Ubuntu 24.04).
- Web server: Apache 2.4 o Nginx 1.18+.
- Database: MySQL 5.7+, MariaDB 10.4+, o PostgreSQL 9.6+ (per Magento Commerce).
- Memoria RAM: Minimo 2GB (consigliati 4GB+ per ambienti production).
Software
- PHP: Versione 7.4, 8.0, o 8.1 (disabilita le versioni deprecate).
- Estensioni obbligatorie:
curl
,gd
,intl
,openssl
,PDO
,xsl
,zip
,mbstring
,soap
,iconv
,bcmath
. - Estensioni consigliate:
redis
,sodium
,imagick
per performance migliorate.
- Estensioni obbligatorie:
- Composer 2.0+: Strumento essenziale per gestire le dipendenze.
- Certificato SSL: Obbligatorio per proteggere dati e utenti.
Ottimizzazioni Magento Consigliate
- Imposta
memory_limit
inphp.ini
a 2GB o superiore. - Abilita OPcache per velocizzare l’esecuzione PHP.
- Usa Redis e Varnish per la gestione della cache.
Prepari un eCommerce per la produzione? Contatta ora tecnico Linux esperto, può aiutarti ad avere il migliore setup per Magento.
2. Guida Installazione Magento 2: Passaggi Dettagliati via CLI
Segui questi passaggi per installare Magento 2 utilizzando la riga di comando (CLI), il metodo più affidabile per ambienti professionali.
Fase 1: Preparare l’Ambiente
Se non hai già installato NginX, MySQL, PHP o Elastic Search, segui questi passaggi
Aggiorna il sistema:
sudo apt update && sudo apt upgrade -y
Installa NginX
sudo apt install nginx
Installa MySQL
sudo apt install mysql-server
Installa PHP ed estensioni necessarie (esempio per Ubuntu):
sudo add-apt-repository ppa:ondrej/php
sudo apt install \ php8.1 php8.1-{cli,mysql,curl,gd,intl,xsl,mbstring,zip,soap,imagick,bcmath}
Installa Elasticsearch
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
sudo apt-get install apt-transport-https
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl restart elasticsearch.service
Fase 2: Creare utente MySQL Magento
Crea l'utente e il database di Magento dalla shell di MySQL
sudo mysql
CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'your_secure_password';
CREATE DATABASE magento2;
GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Fase 3: Scaricare Magento 2 via Composer
Installiamo le dipendenze di
composer
sudo apt install curl php8.1-cli php8.1-mbstring git unzip
Installiamo
composer
cd ~ curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
Testiamo se l'installazione di composer è andata a buon fine
composer -V
Composer version 2.8.5 2025-01-21 15:23:40 PHP version 8.3.17 (/usr/bin/php8.3) Run the "diagnose" command to get more detailed diagnostics output.
Crea un progetto Composer nella directory
/var/www/magento
usiamo l'utenteroot
per semplicità, modificheremo i permessi in seguito:sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.6 /var/www/magento
Inserisci le Magento Marketplace credentials (chiavi publica/privata) se richiesto, possono essere create sul portale di Adobe.
Warning from repo.magento.com: You haven't provided your Magento authentication keys. For instructions, visit https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Authentication required (repo.magento.com): Username: Password:
Fase 4: Configurare Permessi web server Magento
Assegna la proprietà della cartella al utente web (lo standard è
www-data
):sudo chown -R www-data:www-data /var/www/magento sudo find /var/www/magento -type d -exec chmod 755 {} \; sudo find /var/www/magento -type f -exec chmod 644 {} \;
Fase 5: Eseguire lo Script di Installazione
Esegui il comando setup:install
con i parametri obbligatori:
cd /var/www/magento/
sudo -u www-data php bin/magento setup:install \
--base-url=http://tuo-dominio.com \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento2 \
--db-password='your_secure_password' \
--admin-firstname=Admin \
--admin-lastname=Magento \
[email protected] \
--admin-user=admin \
--admin-password=AdminPassword123! \
--language=it_IT \
--currency=EUR \
--timezone=Europe/Rome \
--use-rewrites=1 \
--search-engine=elasticsearch7 \
--elasticsearch-host=localhost \
--elasticsearch-port=9200
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_18h6jv
Spiegazione parametri chiave:
--base-url
: L’URL pubblico del sito (usa HTTPS).--search-engine
: Configura Elasticsearch per migliorare le prestazioni delle ricerche.--use-rewrites=1
: Abilita gli URL ottimizzati per SEO.
Magento Admin URI
Segnati l'URL stampato dall'installazione "Magento Admin URI", ci servirà per l'installazione
Fase 6. Configurare virtual host NginX per Magento 2
Editiamo il virtual host:
sudo nano /etc/nginx/sites-available/magento
upstream fastcgi_backend {
server unix:/run/php/php8.1-fpm.sock;
}
server {
listen 80;
server_name tuo-dominio.com;
server_name www.tuo-dominio.com;
set $MAGE_ROOT /var/www/magento;
include /var/www/magento/nginx.conf.sample;
}
Creiamo un link nei site-enabled
per abilitare il nuovo vhost in NginX
sudo ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
Riavviamo il servizio di NginX con:
sudo systemctl restart nginx.service
Fase 7. Configurare PHP-FPM
Aumentiamo la memoria RAM per i processi PHP-FPM
sudo nano /etc/php/8.1/fpm/php.ini
memory_limit = 2G
Riavviamo il demone php-fpm
:
sudo systemctl restart php8.1-fpm.service
3. Post-Installazione: Verifiche e Ottimizzazioni
Verifica dell’Installazione
- Accedi al frontend all’URL
http://tuo-dominio.com
. Dovresti vedere la homepage predefinita. - Accedi all’admin panel tramite l'URL impostato
http://tuo-dominio.com/"Magento Admin URI"
con le credenziali impostate.
Configurazione Cron Job
Magento richiede cron job per operazioni automatiche (es. indicizzazioni):
php /var/www/magento/bin/magento cron:install
Attiva la Modalità Production
Ottimizza performance e sicurezza con:
php bin/magento deploy:mode:set production
4. Risoluzione Errori Comuni durante l’Installazione
Errore: "PHP Extensions Missing"
Soluzione: Installa le estensioni mancanti. Esempio per php-sodium
:
sudo apt install php-sodium && sudo systemctl restart apache2
Errore: "Database Connection Failed"
Verifica che il utente MySQL abbia i privilegi corretti:
GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost'; FLUSH PRIVILEGES;
Errore: "Accesso Negato alla Cartella var/"
Soluzione: Riassegna i permessi:
sudo chmod -R 755 /var/www/magento/var/ /var/www/magento/pub/
FAQ Approfondite
1. Posso installare Magento 2 senza Composer?
Sì, ma è sconsigliato. Composer gestisce aggiornamenti e dipendenze in modo efficiente.
2. Come scelgo tra Apache e Nginx?
Nginx offre prestazioni migliori sotto carico, ma Apache è più semplice da configurare per i principianti.
3. Devo usare Elasticsearch?
Obbligatorio per Magento 2.4+. Migliora velocità e precisione delle ricerche nel catalogo.
4. Come backup del database dopo l’installazione?
Usa mysqldump
:
mysqldump -u magento2 -p magento_db > magento_backup.sql
5. Perché la modalità Production è importante?
Disabilita debug, minifica CSS/JS e attiva ottimizzazioni avanzate.