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 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

  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 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: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 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.

Richiedi un'Analisi Gratuita (30 min.)

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>.