eCommerce · 20 min read · Oct 20, 2025

Come installare Magento eCommerce su Ubuntu 22.04 con Nginx ed Elasticsearch

Magento è una piattaforma di e-commerce open-source scritta in PHP. È stata acquisita da Adobe nel 2018 ed è stata ribattezzata Adobe eCommerce. È offerta anche come prodotto commerciale e basato su cloud. Puoi utilizzare Magento per creare siti web di shopping professionali ad alta capacità. Offre sia una modalità a negozio singolo che a più negozi. Viene fornito con molti moduli per estendere la sua funzionalità.

In questo tutorial, installeremo l’edizione community open-source di Magento. Offre tutte le funzionalità necessarie per impostare un negozio online professionale. Installeremo anche Elasticsearch per la ricerca nel catalogo prodotti, Redis per la sessione e la cache dei file, e lo servirà utilizzando il server Nginx.

Prerequisiti

  • Un server che esegue Ubuntu 22.04 con un minimo di 2GB di RAM. Potresti aver bisogno di più RAM a seconda delle tue esigenze.
  • Un utente non root con privilegi sudo.
  • Un nome di dominio completamente qualificato (FQDN) per il server, magento.example.com
  • Assicurati che tutto sia aggiornato. $ sudo apt update $ sudo apt upgrade
  • Alcuni pacchetti di cui il tuo sistema ha bisogno. $ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y Alcuni di questi pacchetti potrebbero già essere installati sul tuo sistema.

Passo 1 - Configurare il Firewall

Il primo passo è configurare il firewall. Ubuntu viene fornito con ufw (Uncomplicated Firewall) per impostazione predefinita.

Controlla se il firewall è in esecuzione.

$ sudo ufw status

Dovresti ottenere il seguente output.

Status: inactive

Consenti la porta SSH in modo che il firewall non interrompa la connessione attuale quando viene abilitato.

$ sudo ufw allow OpenSSH

Consenti anche le porte HTTP e HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Abilita il Firewall

$ sudo ufw enable
Il comando potrebbe interrompere le connessioni ssh esistenti. Procedere con l'operazione (y|n)? y
Il firewall è attivo e abilitato all'avvio del sistema

Controlla di nuovo lo stato del firewall.

$ sudo ufw status

Dovresti vedere un output simile.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Passo 2 - Installare PHP e le sue estensioni

Ubuntu 22.04 viene fornito con la versione PHP 8.1.2 che è un po’ obsoleta. Installeremo l’ultima versione PHP 8.2 utilizzando il repository PHP di Ondrej.

$ sudo add-apt-repository ppa:ondrej/php

Successivamente, installa PHP e le sue estensioni richieste da Magento.

$ sudo apt install php8.2-fpm php8.2-mysql php8.2-bcmath php8.2-xml php8.2-zip php8.2-curl php8.2-mbstring php8.2-gd php8.2-tidy php8.2-intl php8.2-cli php8.2-soap php8.2-xsl libsodium-dev libsodium23 libssl-dev libcurl14-openssl-dev

Verifica l’installazione.

$ php --version
PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies

Passo 3 - Installare Composer

Composer è uno strumento di gestione delle dipendenze per PHP ed è necessario per l’installazione di Magento.

Esegui i seguenti comandi per scaricare il binario di Composer. Magento richiede Composer 2.2 LTS, quindi abbiamo modificato il comando di conseguenza.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"

Installa Composer spostando il binario nella directory /usr/local/bin.

$ sudo mv composer.phar /usr/local/bin/composer

Verifica l’installazione controllando la sua versione.

$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40

Passo 4 - Installare MySQL

Ubuntu 22.04 viene fornito con l’ultima versione di MySQL. Puoi installarlo con un solo comando.

$ sudo apt install mysql-server

Controlla la versione di MySQL.

$ mysql --version
mysql  Ver 8.0.33-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

Questo passaggio è necessario per le versioni di MySQL 8.0.28 e superiori. Accedi alla shell di MySQL.

$ sudo mysql

Esegui il seguente comando per impostare la password per il tuo utente root. Assicurati che contenga un mix di numeri, maiuscole, minuscole e caratteri speciali.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

Esci dalla shell.

mysql> exit

Esegui lo script di installazione sicura di MySQL.

$ sudo mysql_secure_installation

Per prima cosa, ti verrà chiesta la password di root. Inseriscila. Successivamente, ti verrà chiesto di installare il componente di validazione della password. Controlla la forza delle password utilizzate in MySQL. Premi Y per installarlo. Successivamente, ti verrà chiesto di impostare il livello della politica di validazione della password. Scegli 2 poiché è il più forte.

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Using existing password for root.

Estimated strength of the password: 100

Successivamente, inserisci N per rifiutare di cambiare la password di root. Inserisci anche Y per rimuovere gli utenti anonimi, vietare i login remoti di root, rimuovere il database di test e ricaricare le tabelle dei privilegi.

Change the password for root ? ((Press y|Y for Yes, any other key for No) : N

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.

All done!

Passo 5 - Configurare MySQL

Accedi alla shell di MySQL. Inserisci la tua password di root quando richiesto.

$ sudo mysql -u root -p

Crea un database per Magento.

mysql> CREATE DATABASE magento;

Crea un account utente SQL.

mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';

Concedi tutti i privilegi sul database all’utente.

mysql> GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';

Flush dei privilegi utente.

mysql> FLUSH PRIVILEGES;

Esci dalla shell.

mysql> exit

Passo 6 - Installare Nginx

Ubuntu 22.04 viene fornito con una versione più vecchia di Nginx. Per installare l’ultima versione, devi scaricare il repository ufficiale di Nginx.

Importa la chiave di firma di Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Aggiungi il repository per la versione stabile di Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Aggiorna i repository di sistema.

$ sudo apt update

Installa Nginx.

$ sudo apt install nginx

Verifica l’installazione.

$ nginx -v
nginx version: nginx/1.24.0

Avvia il server Nginx.

$ sudo systemctl start nginx

Passo 7 - Installare SSL

Dobbiamo installare Certbot per generare il certificato SSL. Puoi installare Certbot utilizzando il repository di Ubuntu o scaricare l’ultima versione utilizzando lo strumento Snapd. Utilizzeremo la versione Snapd.

Ubuntu 22.04 viene fornito con Snapd installato per impostazione predefinita. Esegui i seguenti comandi per assicurarti che la tua versione di Snapd sia aggiornata.

$ sudo snap install core && sudo snap refresh core

Installa Certbot.

$ sudo snap install --classic certbot

Usa il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Esegui il seguente comando per generare un certificato SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d magento.example.com

Il comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/magento.example.com sul tuo server.

Genera un certificato di gruppo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Controlla il servizio di pianificazione del rinnovo di Certbot.

$ sudo systemctl list-timers

Troverai snap.certbot.renew.service come uno dei servizi programmati per l’esecuzione.

NEXT                        LEFT          LAST                        PASSED        UNIT                      ACTIVATES
.....
Sun 2023-02-26 06:32:00 UTC 9h left       Sat 2023-02-25 18:04:05 UTC 2h 59min ago  snap.certbot.renew.timer  snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left       Sat 2023-02-25 10:49:23 UTC 10h ago       apt-daily-upgrade.timer   apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left      Sat 2023-02-25 20:58:06 UTC 5min ago      apt-daily.timer           apt-daily.service

Fai un dry run del processo per controllare se il rinnovo SSL funziona correttamente.

$ sudo certbot renew --dry-run

Se non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.

Passo 8 - Installare Elasticsearch

Elasticsearch è utilizzato da Magento per le ricerche sui prodotti. Installeremo Elasticsearch 7.x utilizzando il suo repository ufficiale poiché è la versione compatibile con Magento.

Importa la chiave GPG di Elasticsearch.

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Aggiungi il repository di Elasticsearch.

$ 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

Aggiorna l’elenco dei repository di sistema.

$ sudo apt update

Installa Elasticsearch.

$ sudo apt install elasticsearch

Elasticsearch utilizza molta memoria. Devi limitare il suo utilizzo a seconda delle dimensioni del tuo server. Crea il file /etc/elasticsearch/jvm.options.d/memory.options e aprilo per la modifica.

$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options

Incolla il seguente codice.

-Xms1g
-Xmx1g

Salva il file premendo Ctrl + X e inserendo Y quando richiesto. Questo configura Elasticsearch per utilizzare 1GB di RAM. Puoi utilizzare qualsiasi valore necessario.

Avvia e abilita il servizio.

$ sudo systemctl enable elasticsearch --now

Controlla se Elasticsearch sta funzionando.

$ curl http://localhost:9200

Dovresti vedere il seguente output.

{
  "name" : "magento",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6yks8tZ6T4GskIwWoXuSLA",
  "version" : {
    "number" : "7.17.10",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "fecd68e3150eda0c307ab9a9d7557f5d5fd71349",
    "build_date" : "2023-04-23T05:33:18.138275597Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Passo 9 - Installare il server Redis

Magento utilizza Redis per la memorizzazione delle sessioni e della cache. È completamente facoltativo e puoi utilizzare il database per la memorizzazione delle sessioni. Ma Redis fa un lavoro migliore. L’ultima versione di Magento funziona con Redis 7.0. Ubuntu viene fornito con Redis 6.0, quindi utilizzeremo il repository Redis per l’installazione.

Importa la chiave GPG ufficiale di Redis.

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

Aggiungi il repository APT alla tua lista di sorgenti.

$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

Aggiorna l’elenco dei repository di sistema.

$ sudo apt update

Esegui il seguente comando per installare il server Redis.

$ sudo apt install redis

Conferma la versione di Redis.

$ redis-server -v
Redis server v=7.0.11 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=3af367a78d5e21e9

Verifichiamo la connessione al servizio utilizzando il seguente comando.

$ redis-cli

Verrai spostato nella shell di Redis.

Il primo passo è impostare la password per l’utente predefinito di Redis. Sostituisci Your_Redis_Password con una password forte a tua scelta. Assicurati di anteporre la password con il carattere >.

127.0.0.1:6379> acl setuser default >Your_Redis_Password

Testa l’autenticazione di Redis.

127.0.0.1:6379> AUTH Your_Redis_Password
OK

Ping il servizio.

127.0.0.1:6379> ping
PONG

Esci dal servizio digitando exit.

Passo 10 - Scarica Magento

Crea una directory radice web per Magento.

$ sudo mkdir /var/www/magento -p

Dai i diritti alla directory di Magento all’utente corrente.

$ sudo chown $USER:$USER /var/www/magento/ -R

Passa alla directory /var/www.

$ cd /var/www

Prima di procedere, hai bisogno delle chiavi di autenticazione richieste dal repository di Magento. Visita il sito web https://account.magento.com/ e vedrai la seguente pagina che ti chiede di accedere utilizzando il tuo Adobe ID.

Pagina di accesso Adobe ID

Clicca sul pulsante Accedi con Adobe ID per arrivare alla seguente pagina.

Pagina di accesso Magento Adobe

Se hai un Adobe ID, inserisci le tue credenziali per continuare oppure puoi creare un account qui. Una volta creato il tuo account e effettuato l’accesso, apri l’URL https://marketplace.magento.com/customer/accessKeys/. Puoi anche accedere a questa pagina visitando il tuo profilo e cliccando sul link Chiavi di accesso.

Pagina Chiavi di accesso profilo Adobe Magento

Clicca sul pulsante Crea una nuova chiave di accesso per creare la tua chiave di autenticazione. Dai un nome alla tua chiave per identificazione.

Chiavi di accesso Magento

Annota sia la chiave pubblica che quella privata per il passaggio successivo.

Crea il progetto Magento.

$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento

Ti verrà chiesto il nome utente e la password per il repository. Usa la chiave pubblica come nome utente e la chiave privata come password. Ti verrà chiesto se desideri memorizzare le credenziali nella directory di configurazione di Composer. Inserisci y per farlo.

Creating a "magento/project-community-edition" project at "./magento"
    Authentication required (repo.magento.com):
      Username: 53211xxxxxxxxxxxxxxxxxxxxxxxxxxx
      Password:
Do you want to store credentials for repo.magento.com in /home/navjot/.config/composer/auth.json ? [Yn] y
Installing magento/project-community-edition (2.4.6)
  - Downloading magento/project-community-edition (2.4.6)
  - Installing magento/project-community-edition (2.4.6): Extracting archive
Created project in /var/www/magento
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 564 installs, 0 updates, 0 removals
  - Locking 2tvenom/cborencode (1.0.2)
  - Locking adobe-commerce/adobe-ims-metapackage (2.2.0)
...............................................

Esegui i seguenti comandi per impostare i permessi dei file e rendere eseguibile il binario di Magento. Imposta anche il proprietario della directory di Magento all’utente Nginx in modo che possa accedere al sito web.

$ cd /var/www/magento/
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
$ sudo chmod u+x bin/magento

Passo 11 - Installare Magento

Assicurati di essere nella directory di Magento.

$ cd /var/www/magento

Esegui il seguente comando per installare Magento.

$ bin/magento setup:install \
--base-url=http://magento.example.com \
--use-secure=1 \
--base-url-secure=https://magento.example.com \
--use-secure-admin=1 \
--db-host=localhost \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
--admin-email=[email protected] \
--admin-user=navjot \
--admin-password=admin_password \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--elasticsearch-host=http://127.0.0.1 \
--elasticsearch-port=9200 \
--session-save=redis \
--session-save-redis-db=0 \
--session-save-redis-password=redis_password \
--cache-backend=redis \
--cache-backend-redis-db=2 \
--cache-backend-redis-password=redis_password \
--page-cache=redis \
--page-cache-redis-db=4 \
--page-cache-redis-password=redis_password

Una volta completato il processo, riceverai un output simile.

.......
[SUCCESS]: Installazione di Magento completata.
[SUCCESS]: URI Admin di Magento: /admin_19uadb
Nothing to import.

Annota l’URI Admin che ti servirà in seguito per accedere al pannello di amministrazione.

Crea i cron job di Magento.

$ php bin/magento cron:install

Verifica il cron job.

$ crontab -l

Dovresti vedere il seguente output.

#~ MAGENTO START d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.2 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO END d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c

Passo 12 - Configurare PHP-FPM

Apri il file /etc/php/8.2/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Dobbiamo impostare l’utente/gruppo Unix dei processi PHP su nginx. Trova le righe user=www-data e group=www-data nel file e cambiale in nginx.

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...

Trova le righe listen.owner = www-data e listen.group = www-data nel file e cambiale in nginx.

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = nginx
listen.group = nginx

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Aumenta il tempo di esecuzione per PHP-FPM e PHP-CLI a 180 secondi.

$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini

Aumenta il limite di memoria per PHP-FPM da 128MB a 256MB. Puoi aumentare il limite a seconda delle dimensioni del tuo server e delle tue esigenze.

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini

Magento per impostazione predefinita imposta il limite di dimensione dei file per la libreria multimediale a 2MB. Esegui i seguenti comandi per aumentare il limite di dimensione dei file a 25MB.

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini

Attiva la compressione Zlib.

$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini

Riavvia il servizio PHP-FPM.

$ sudo systemctl restart php8.2-fpm

Cambia il gruppo della directory delle sessioni PHP in Nginx.

$ sudo chgrp -R nginx /var/lib/php/sessions

Passo 13 - Configurare Nginx

Apri il file /etc/nginx/nginx.conf per la modifica.

$ sudo nano /etc/nginx/nginx.conf

Aggiungi la seguente riga prima della riga include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Crea e apri il file /etc/nginx/conf.d/magento.conf per la modifica.

$ sudo nano /etc/nginx/conf.d/magento.conf

Incolla il seguente codice in esso.

upstream fastcgi_backend {
  server  unix:/run/php/php8.2-fpm.sock;
}

server {
  # Redirect any http requests to https
  listen 80;
  listen [::]:80;
  server_name magento.example.com;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name magento.example.com;

  set $MAGE_ROOT /var/www/magento;
  include /var/www/magento/nginx.conf.sample;
  client_max_body_size 25m;

  access_log /var/log/nginx/magento.access.log;
  error_log  /var/log/nginx/magento.error.log;

  # TLS configuration
  ssl_certificate /etc/letsencrypt/live/magento.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/magento.example.com/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/magento.example.com/chain.pem;
  ssl_protocols TLSv1.2 TLSv1.3;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:50m;
  ssl_session_timeout 1d;

  # OCSP Stapling ---
  # fetch OCSP records from URL in ssl_certificate and cache them
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

Salva il file premendo Ctrl + X e inserendo Y quando richiesto una volta completato.

Magento viene fornito con un modello di configurazione Nginx in /var/www/magento/nginx.conf.sample che abbiamo incluso nella nostra configurazione. La variabile $MAGE_ROOT punta alla directory radice web di Magento che abbiamo impostato nel nostro file e viene utilizzata nel file di configurazione di esempio.

Verifica la sintassi del file di configurazione di Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Riavvia il servizio Nginx.

$ sudo systemctl restart nginx

Apri il sito web di Magento tramite l’URL https://magento.example.com. Dovresti vedere la seguente pagina.

Homepage di Magento

Se il CSS e il JS non si caricano per te, esegui i seguenti comandi.

$ cd /var/www/magento
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex

Passo 14 - Disabilitare l’autenticazione a due fattori

Prima di accedere al pannello di amministrazione, dobbiamo disabilitare l’autenticazione a due fattori che è abilitata per impostazione predefinita. Magento cerca di inviare email tramite sendmail per abilitare l’autenticazione a due fattori durante l’installazione, ma poiché non l’abbiamo configurato, l’unico modo per accedere al pannello è disabilitare prima la funzione.

Se hai sendmail configurato sul tuo server per inviare email, puoi saltare questo passaggio. Per disabilitare l’autenticazione a due fattori, dobbiamo disabilitare due dei moduli di Magento utilizzando i seguenti comandi.

$ php /var/www/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:disable Magento_TwoFactorAuth

Esegui il seguente comando per creare le classi.

$ php /var/www/magento/bin/magento setup:di:compile

Pulisci anche la cache.

$ php /var/www/magento/bin/magento c:c

Passo 15 - Accedere al portale di amministrazione

Dovrai aprire il portale di amministrazione utilizzando l’URI che lo script di installazione di Magento ti ha fornito. Se in qualche modo hai dimenticato di annotarlo o lo hai perso, puoi recuperare nuovamente l’URI utilizzando il seguente comando.

$ php /var/www/magento/bin/magento info:adminuri
Admin URI: /admin_19uadb

Apri l’URL https://magento.example.com/admin_19uadb nel tuo browser e vedrai la seguente schermata.

Pagina di accesso al dashboard di amministrazione di Magento

Inserisci le tue credenziali di amministratore fornite durante l’installazione e clicca sul pulsante Accedi per procedere. Sarai accolto con la seguente schermata.

Dashboard di amministrazione di Magento

Riceverai un popup che chiede il permesso per Adobe di raccogliere dati sull’uso. Clicca sul pulsante Non consentire per procedere.

Il passo successivo è configurare SMTP per le email in modo da poter riabilitare l’autenticazione a due fattori. Visita il menu Negozi >> Configurazione.

Menu Configurazione Negozi di Magento

Espandi il menu Avanzato dal lato sinistro e clicca sull’opzione Sistemi per aprire la pagina delle impostazioni email.

Impostazioni invio email di Magento

Deseleziona Usa valore di sistema di fronte alle opzioni Trasporto, Host e Porta. Clicca sul menu a discesa per Trasporto e seleziona SMTP. Per il nostro tutorial, stiamo utilizzando Amazon SES come mailer.

Impostazioni email Amazon SES di Magento

Inserisci il tuo host SMTP, 587 come porta, nome utente e password, imposta Auth su LOGIN e imposta SSL su TLS nei campi forniti. Clicca sul pulsante Salva Config quando hai finito. Ora che abbiamo configurato le impostazioni email, il passo successivo è configurare gli ID email del negozio in modo da poterli testare.

Scorri verso l’alto ed espandi il menu Generale nella stessa pagina e seleziona l’opzione Indirizzi email del negozio.

Pagina indirizzi email del negozio di Magento

Deseleziona i campi Email mittente predefiniti e inserisci gli ID email del tuo negozio. Clicca sul pulsante Salva Config quando hai finito. Allo stesso modo, apri la schermata Contatti e apporta le stesse modifiche e clicca sul pulsante Salva Config per terminarlo.

Impostazioni email Contattaci di Magento

Modificare le opzioni di amministrazione può influenzare la cache e riceverai un avviso. Esegui il seguente comando per cancellare manualmente la cache.

$ php /var/www/magento/bin/magento c:c

Per testare le email, visita la pagina del negozio e apri la pagina Contattaci. Puoi utilizzare l’URL https://magento.example.com/contact/ direttamente per accedervi. Invia un messaggio di prova e clicca sul pulsante Invia. Dovresti ricevere un’email simile.

Email di prova di Magento

Passo 16 - Abilitare e configurare l’autenticazione a due fattori

Ora che abbiamo abilitato il mailer SMTP, è tempo di riabilitare l’autenticazione a due fattori. Esegui i seguenti comandi per abilitare l’autenticazione a due fattori.

$ php /var/www/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:enable Magento_TwoFactorAuth

Aggiorna la configurazione per i moduli.

$ php /var/www/magento/bin/magento setup:upgrade

Esegui il seguente comando per creare le classi.

$ php /var/www/magento/bin/magento setup:di:compile

Pulisci anche la cache.

$ php /var/www/magento/bin/magento c:c

Se non riesci ad accedere all’area admin, esegui anche i seguenti comandi.

Forza il deploy del contenuto statico.

$ php /var/www/magento/bin/magento setup:static-content:Deploy -f

Imposta i permessi dei file.

$ cd /var/www/magento
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .

Visita il portale Admin e vedrai la seguente schermata.

Configurazione 2FA di Magento

Utilizzeremo il metodo Google Authenticator. Puoi utilizzare una chiave hardware se ne hai una. Il metodo Google Authenticator funziona con qualsiasi app TOTP, inclusi Authy, 1Password, Bitwarden, Microsoft Authenticator, ecc. Clicca sul pulsante Applica per procedere.

Configurazione Google 2FA di Magento

Nella pagina successiva, riceverai il codice QR da scansionare con la tua app 2FA. Inserisci i dettagli nella tua app e copia il codice generato nel campo Codice Authenticator. Clicca sul pulsante Conferma per procedere al dashboard di amministrazione.

Conclusione

Questo conclude il nostro tutorial su come installare un sito eCommerce Magento su un server Ubuntu 22.04 con server Nginx ed Elasticsearch. Se hai domande, postale nei commenti qui sotto.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.