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,imagickper 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_limitinphp.inia 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 un 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 nginxInstalla MySQL
sudo apt install mysql-serverInstalla PHP ed estensioni necessarie (esempio per Ubuntu):
sudo add-apt-repository ppa:ondrej/phpsudo 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.gpgsudo apt-get install apt-transport-httpsecho "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.listsudo apt-get update && sudo apt-get install elasticsearchsudo 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 mysqlCREATE USER 'magento2'@'localhost' IDENTIFIED BY 'your_secure_password';
CREATE DATABASE magento2;
GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;exitFase 3: Scaricare Magento 2 via Composer
Installiamo le dipendenze di
composersudo apt install curl php8.1-cli php8.1-mbstring git unzipInstalliamo
composercd ~ curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composerTestiamo se l'installazione di composer è andata a buon fine
composer -VComposer 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/magentousiamo l'utenterootper 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/magentoInserisci 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_18h6jvSpiegazione 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/magentoupstream 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.serviceFase 7. Configurare PHP-FPM
Aumentiamo la memoria RAM per i processi PHP-FPM
sudo nano /etc/php/8.1/fpm/php.inimemory_limit = 2GRiavviamo il demone php-fpm:
sudo systemctl restart php8.1-fpm.service3. 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 critiche (es. indicizzazioni e invio email). L'automazione e il monitoraggio di questi task sono un aspetto fondamentale che curiamo spesso nelle nostre ottimizzazioni e consulenze DevOps. Un esempio di cron:
php /var/www/magento/bin/magento cron:installAttiva la Modalità Production
Ottimizza performance e sicurezza con:
php bin/magento deploy:mode:set production4. 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 decisamente superiori sotto carico, specialmente per e-commerce esigenti come Magento. Se hai bisogno di un setup avanzato, scopri i nostri servizi di consulenza e ottimizzazione Nginx. Apache rimane una valida alternativa, 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.
Magento Lento o Instabile? Affidati a un Sistemista Linux
Un'installazione base di Magento 2 non basta per reggere i picchi di traffico di un e-commerce reale. Dal tuning di Nginx e PHP-FPM, fino alla configurazione avanzata di Redis e Varnish, i nostri specialisti Linux creano configurazioni server su misura per garantirti massime prestazioni e sicurezza.