Salta al contenuto principale

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.
  • Composer 2.0+: Strumento essenziale per gestire le dipendenze.
  • Certificato SSL: Obbligatorio per proteggere dati e utenti.

Ottimizzazioni Magento Consigliate

  • Imposta memory_limit in php.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

  1. Aggiorna il sistema:

    sudo apt update && sudo apt upgrade -y
  2. Installa NginX

    sudo apt install nginx
  3. Installa MySQL

    sudo apt install mysql-server
  4. 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}
  5. 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'utente root 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.

Ottimizza il tuo Server Magento con i Nostri Esperti

Affidati a specialisti Linux per configurazioni server su misura, monitoraggio e ottimizzazioni avanzate. Massima sicurezza e prestazioni garantite!

Aggiungi un commento

Comment

  • Elementi HTML permessi: <br> <p> <code class="language-*"> <pre>
  • Linee e paragrafi vanno a capo automaticamente.
  • Solo le immagini ospitate su questo sito possono essere utilizzate nel tag <img>.