Magento Installation · 24 min read · Oct 19, 2025

Come installare Magento eCommerce Suite su Rocky Linux 9 con Elasticsearch

Magento è una piattaforma di e-commerce open-source scritta in PHP. È stata acquisita da Adobe nel 2018. È anche offerta 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 una 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 cercare nel catalogo prodotti, Redis per la sessione e la cache dei file, e lo serviremo utilizzando il server Nginx.

Prerequisiti

  • Un server che esegue Rocky Linux 9 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 dnf update
  • Alcuni pacchetti di cui il tuo sistema ha bisogno. $ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -y Alcuni di questi pacchetti potrebbero già essere installati sul tuo sistema.

Passo 1 - Configurare il Firewall

Il primo passo è configurare il firewall. Rocky Linux utilizza Firewalld Firewall. Controlla lo stato del firewall.

$ sudo firewall-cmd --state
running

Il firewall funziona con diverse zone, e la zona pubblica è quella predefinita che utilizzeremo. Elenca tutti i servizi e le porte attive sul firewall.

$ sudo firewall-cmd --permanent --list-services

Dovrebbe mostrare il seguente output.

cockpit dhcpv6-client ssh

Consenti le porte HTTP e HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Controlla di nuovo lo stato del firewall.

$ sudo firewall-cmd --permanent --list-services

Dovresti vedere un output simile.

cockpit dhcpv6-client http https ssh

Ricarica il firewall per abilitare le modifiche.

$ sudo firewall-cmd --reload

Passo 2 - Installare PHP e le sue estensioni

Rocky Linux 9 viene fornito con PHP 8.1 per impostazione predefinita. Per rimanere sempre sull’ultima versione di PHP o se desideri installare più versioni di PHP, dobbiamo utilizzare il repository REMI.

Il primo passo è acquisire il repository Epel.

$ sudo dnf install epel-release -y

Successivamente, installa il repository Remi.

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Controlla i flussi PHP disponibili.

$ dnf module list php -y
Name    Stream              Profiles                                      Summary
php     8.1                 common [d], devel, minimal                    PHP scripting language

Remi's Modular repository for Enterprise Linux 9 - x86_64
Name    Stream              Profiles                                      Summary
php     remi-7.4            common [d], devel, minimal                    PHP scripting language
php     remi-8.0            common [d], devel, minimal                    PHP scripting language
php     remi-8.1            common [d], devel, minimal                    PHP scripting language
php     remi-8.2            common [d], devel, minimal                    PHP scripting language
php     remi-8.3            common [d], devel, minimal                    PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

La versione predefinita è 8.1. Al momento della scrittura di questo tutorial, Magento è compatibile con PHP 8.2. Pertanto, abilita il repository PHP 8.2 di Remi.

$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2

Puoi installarlo e le estensioni richieste da Magento eseguendo il seguente comando.

$ sudo dnf install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-opcache php-xsl php-sodium

Verifica l’installazione.

$ php --version
PHP 8.2.15 (cli) (built: Jan 16 2024 12:19:32) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.15, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.15, 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.22 2023-09-29 10:53:45

Passo 4 - Installare MariaDB

Rocky Linux 9 viene fornito con una versione più vecchia di MariaDB. Pertanto, utilizzeremo il repository di MariaDB per l’installazione. Al momento della scrittura di questo tutorial, Magento supporta MariaDB 10.6, che è ciò che installeremo.

Importa la chiave GPG di MariaDB.

$ sudo rpm --import https://supplychain.mariadb.com/MariaDB-Server-GPG-KEY

Crea e apri il file /etc/yum.repos.d/mariadb.repo per la modifica.

$ sudo nano /etc/yum.repos.d/mariadb.repo

Incolla il seguente codice in esso.

[mariadb]
name = MariaDB
baseurl = https://rpm.mariadb.org/10.6/rhel/$releasever/$basearch
gpgkey= https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

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

$ sudo dnf install MariaDB-server

Controlla la versione di MySQL.

$ mysql --version
mysql  Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64) using  EditLine wrapper

Abilita e avvia il servizio MariaDB.

$ sudo systemctl enable mariadb --now

Esegui lo script di installazione sicura di MariaDB.

$ sudo mariadb-secure-installation

Ti verrà chiesto di inserire la password di root. Premi Invio perché non abbiamo impostato alcuna password per essa.

NOTE: E' RACCOMANDATO ESEGUIRE TUTTE LE PARTI DI QUESTO SCRIPT PER TUTTI I SERVER MariaDB IN USO PRODUZIONE!  PER FAVORE LEGGI ATTENTAMENTE OGNI PASSO!

Per accedere a MariaDB e metterlo in sicurezza, avremo bisogno della password attuale per l'utente root. Se hai appena installato MariaDB e non hai ancora impostato la password di root, dovresti semplicemente premere invio qui.

Inserisci la password attuale per root (premi invio per nessuna):

Successivamente, ti verrà chiesto se desideri passare al metodo di autenticazione tramite socket Unix. Il plugin unix_socket ti consente di utilizzare le credenziali del tuo sistema operativo per connetterti al server MariaDB. Poiché hai già un account root protetto, inserisci n per procedere.

OK, password utilizzata con successo, procedendo...

Impostare la password di root o utilizzare il unix_socket garantisce che nessuno possa accedere all'utente root di MariaDB senza la corretta autorizzazione.

Hai già protetto il tuo account root, quindi puoi rispondere in sicurezza 'n'.

Passare all'autenticazione unix_socket [Y/n] n

Successivamente, ti verrà chiesto se desideri cambiare la password di root. Digita Y per procedere ulteriormente e cambiare la password di root in qualcosa di forte e sicuro.

 ... salto.

Hai già protetto il tuo account root, quindi puoi rispondere in sicurezza 'n'.

Cambiare la password di root? [Y/n] Y
Nuova password: 
Re-inserisci la nuova password: 
Password aggiornata con successo!
Ricaricamento delle tabelle di autorizzazione..
 ... Successo!

Successivamente, ti verranno poste alcune domande per migliorare la sicurezza di MariaDB. Digita Y per rimuovere gli utenti anonimi, vietare gli accessi remoti come root, rimuovere il database di test e ricaricare le tabelle di autorizzazione.

Per impostazione predefinita, un'installazione di MariaDB ha un utente anonimo, consentendo a chiunque di accedere a MariaDB senza dover avere un account utente creato per loro.  Questo è inteso solo per testare e per rendere l'installazione un po' più fluida.  Dovresti rimuoverli prima di passare a un ambiente di produzione.

Rimuovere utenti anonimi? [Y/n] y
 ... Successo!

Normalmente, l'utente root dovrebbe essere autorizzato a connettersi solo da 'localhost'.  Questo garantisce che qualcuno non possa indovinare la password di root dalla rete.

Vietare l'accesso remoto come root? [Y/n] y
 ... Successo!

Per impostazione predefinita, MariaDB viene fornito con un database chiamato 'test' a cui chiunque può accedere.  Questo è anche inteso solo per testare e dovrebbe essere rimosso prima di passare a un ambiente di produzione.

Rimuovere il database di test e l'accesso ad esso? [Y/n] y
 - Eliminazione del database di test...
 ... Successo!
 - Rimozione dei privilegi sul database di test...
 ... Successo!

Ricaricare le tabelle di autorizzazione garantirà che tutte le modifiche apportate finora abbiano effetto immediato.

Ricaricare le tabelle di autorizzazione ora? [Y/n] y
 ... Successo!

Pulizia...

Tutto fatto!  Se hai completato tutti i passaggi sopra, la tua installazione di MariaDB dovrebbe ora essere sicura.

Grazie per aver utilizzato MariaDB!

Puoi accedere alla shell di MariaDB digitando sudo mysql o sudo mariadb nella riga di comando.

Passo 5 - Configurare MariaDB

Accedi alla shell di MariaDB.

$ sudo mariadb

Crea un database per Magento.

MariaDB > CREATE DATABASE magento;

Crea un account utente SQL.

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

Concedi tutti i privilegi sul database all’utente.

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

Flush dei privilegi utente.

MariaDB > FLUSH PRIVILEGES;

Esci dalla shell.

MariaDB > exit

Passo 6 - Installare Nginx

Rocky Linux 9 viene fornito con una versione più vecchia di Nginx. Devi utilizzare il repository ufficiale di Nginx per installare l’ultima versione.

Crea e apri il file /etc/yum.repos.d/nginx.repo per la modifica.

$ sudo nano /etc/yum.repos.d/nginx.repo

Incolla il seguente codice in esso.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Installeremo la versione principale di Nginx, quindi abilita il pacchetto per essa.

$ sudo dnf config-manager --enable nginx-mainline

Installa Nginx.

$ sudo dnf install nginx -y

Verifica l’installazione.

$ nginx -v
nginx version: nginx/1.25.3

Abilita e avvia il servizio del server Nginx.

$ sudo systemctl enable nginx --now

Controlla lo stato del servizio.

? nginx.service - nginx - server web ad alte prestazioni
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
    Drop-In: /etc/systemd/system/nginx.service.d
             ??php-fpm.conf
     Active: active (running) since Fri 2024-01-26 06:46:17 UTC; 1s ago
       Docs: http://nginx.org/en/docs/
    Process: 19765 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 19767 (nginx)
      Tasks: 3 (limit: 12225)
     Memory: 3.1M
        CPU: 16ms
     CGroup: /system.slice/nginx.service
             ??19767 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??19768 "nginx: worker process"
             ??19769 "nginx: worker process"

Passo 7 - Installare SSL

Dobbiamo installare Certbot per generare il certificato SSL. Utilizzeremo l’installer di pacchetti Snapd per questo. Poiché Rocky Linux non lo include, installa l’installer Snapd. Richiede il repository EPEL (Extra Packages for Enterprise Linux) per funzionare. Ma poiché lo abbiamo già installato nel passo 3, possiamo procedere direttamente.

Installa il pacchetto Snapd.

$ sudo dnf install -y snapd

Abilita e avvia il servizio Snap.

$ sudo systemctl enable snapd --now

Installa il pacchetto Snap core e assicurati che la tua versione di Snapd sia aggiornata.

$ sudo snap install core && sudo snap refresh core

Crea i collegamenti necessari affinché Snapd funzioni.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

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

Verifica se Certbot funziona correttamente.

$ certbot --version
certbot 2.8.0

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 Diffie-Hellman group.

$ 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     
-------------------------------------------------------------------------------------------------------------------------------
Fri 2024-01-26 08:05:24 UTC 1h 1min left Fri 2024-01-26 06:35:00 UTC 29min ago dnf-makecache.timer          dnf-makecache.service
Fri 2024-01-26 14:20:42 UTC 7h left      Thu 2024-01-25 14:20:42 UTC 16h ago   systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Fri 2024-01-26 22:37:00 UTC 15h left     -                           -         snap.certbot.renew.timer     snap.certbot.renew.service

Esegui un test 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 2.4.6, che è l’ultima versione disponibile. La pagina dei requisiti menziona anche Elasticsearch 8.5, ma non funziona correttamente con Magento.

Importa la chiave GPG di Elasticsearch.

$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Crea un file chiamato elasticsearch.repo nella directory /etc/yum.repos.d/ e aprilo per la modifica.

$ sudo nano /etc/yum.repos.d/elasticsearch.repo

Incolla il seguente codice in esso.

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Installa Elasticsearch.

$ sudo dnf install --enablerepo=elasticsearch 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 in esso. Modifica i valori in base alle dimensioni del tuo server. Il primo valore si riferisce alla memoria iniziale e il secondo alla memoria massima disponibile. Per 1GB e oltre, utilizza il formato -Xms1g.

-Xms512m
-Xmx784m

Salva il file premendo Ctrl + X e inserendo Y quando richiesto. Questo configura Elasticsearch per utilizzare 1GB di RAM. Modificalo in base alle tue esigenze e specifiche del server.

Avvia e abilita il servizio.

$ sudo systemctl enable elasticsearch --now

Controlla se Elasticsearch funziona.

$ curl http://localhost:9200

Dovresti vedere il seguente output.

{
  "name" : "magento.example.com",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "saBfw0F_Tam6ayGjXr6pEA",
  "version" : {
    "number" : "7.17.17",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "aba4da413a368e296dfc64fb20897334d0340aa1",
    "build_date" : "2024-01-18T10:05:03.821431920Z",
    "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 opzionale 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. Rocky Linux viene fornito con Redis 6.0, quindi utilizzeremo il repository Remi per l’installazione.

Abbiamo già installato il repository Remi quando abbiamo installato PHP nel passo 2. Elenca tutti i moduli Redis disponibili.

$ dnf module list redis
Name                               Stream           Profiles                   Summary                                                                  
redis                              7                common [d]                 Redis persistent key-value database                                    
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name                               Stream           Profiles                   Summary                              
redis                              remi-5.0         common [d]                 Redis persistent key-value database 
redis                              remi-6.0         common [d]                 Redis persistent key-value database 
redis                              remi-6.2         common [d]                 Redis persistent key-value database 
redis                              remi-7.0         common [d]                 Redis persistent key-value database 
redis                              remi-7.2         common [d]                 Redis persistent key-value database 

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Abilita Redis 7.0.

$ sudo dnf module enable -y redis:remi-7.0

Esegui il seguente comando per installare il server Redis.

$ sudo dnf install redis

Conferma la versione di Redis.

$ redis-server -v
Redis server v=7.0.15 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=77c9855172eb54e9

Abilita e avvia il servizio Redis.

$ sudo systemctl enable redis --now

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

Crea una directory web root per Magento.

$ sudo mkdir /var/www/html/magento -p

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

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

Prima di procedere, hai bisogno delle chiavi di autenticazione richieste dal repository di Magento. Visita il sito web https://commercemarketplace.adobe.com/, fai clic sul link Accedi in alto a destra e otterrai la seguente pagina che ti chiede di accedere utilizzando il tuo Adobe ID.

Pagina di accesso Adobe ID

Fai clic 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://commercemarketplace.adobe.com/customer/accessKeys/. Puoi anche accedere a questa pagina visitando il tuo profilo ( https://commercemarketplace.adobe.com/customer/account/) e facendo clic sul link Chiavi di accesso.

Pagina del profilo Adobe Magento

Fai clic 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 file ~/.config/composer/auth.json e aprilo per la modifica.

$ nano ~/.config/composer/auth.json

Incolla il seguente codice in esso. Usa la chiave pubblica per il nome utente e la chiave privata per la password.

{
"http-basic": {
        "repo.magento.com": {
                   "username": "",
                   "password": ""
              }

}
}

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

Passa alla directory /var/www/html/magento.

$ cd /var/www/html/magento

Crea il progetto Magento. Nota il punto alla fine del comando. Si riferisce alla directory corrente in cui viene eseguito il comando.

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

Dovresti vedere un output simile.

Creazione di un progetto "magento/project-community-edition" in "./"
Installazione di magento/project-community-edition (2.4.6-p3)
  - Downloading magento/project-community-edition (2.4.6-p3)
  - Installazione di magento/project-community-edition (2.4.6-p3): Estrazione dell'archivio
Creato progetto in /var/www/html/magento/.
Caricamento dei repository composer con informazioni sui pacchetti
Info da https://repo.packagist.org: #StandWithUkraine
Aggiornamento delle dipendenze
Operazioni sul file di blocco: 566 installazioni, 0 aggiornamenti, 0 rimozioni
  - Bloccando 2tvenom/cborencode (1.0.2)
  - Bloccando adobe-commerce/adobe-ims-metapackage (2.2.0)
  - Bloccando allure-framework/allure-codeception (v2.3.0)
  - Bloccando allure-framework/allure-php-commons (v2.3.1)
  - Bloccando allure-framework/allure-phpunit (v2.1.0)
...............................................

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

$ 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/html/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=127.0.0.1 \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
[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 di amministrazione di Magento: /admin_l5pv1h
Niente da importare.

Annota l’URI di amministrazione 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 INIZIO f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d
* * * * * /usr/bin/php /var/www/html/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento/var/log/magento.cron.log
#~ MAGENTO FINE f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d

Passo 12 - Configurare PHP-FPM

Apri il file /etc/php-fpm.d/www.conf.

$ sudo nano /etc/php-fpm.d/www.conf

Dobbiamo impostare l’utente/gruppo Unix dei processi PHP su nginx. Trova le righe user = apache e group = apache 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 = nobody, listen.group = nobody, listen.mode = 0660 nel file e cambiale come segue dopo averle decommentate.

; 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.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = nginx 
listen.group = nginx 
listen.mode = 0660

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

Aumenta il tempo di esecuzione a 180 secondi.

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

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

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/' /etc/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.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php.ini

Attiva la compressione Zlib.

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

Aumenta la configurazione realpath_cache come mostrato.

$ sudo sed -i 's/;realpath_cache_size = 4096k/realpath_cache_size = 10M/g' /etc/php.ini
$ sudo sed -i 's/;realpath_cache_ttl = 120/realpath_cache_ttl = 7200/g' /etc/php.ini

Apri il file /etc/php.d/10-opcache.ini per la modifica.

$ sudo nano /etc/php.d/10-opcache.ini

Trova la riga ;opcache.save_comments=1 e decommentala come mostrato.

opcache.save_comments=1

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

Riavvia il servizio PHP-FPM.

$ sudo systemctl restart php-fpm

Cambia il gruppo della directory delle sessioni PHP in Nginx.

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

Passo 13 - Configurare SELinux

Esegui i seguenti comandi per cambiare il contesto di sicurezza per la directory di Magento.

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/app/etc(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/var(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/pub/media(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/pub/static(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/generated(/.*)?'
$ sudo restorecon -Rv '/var/www/html/magento/'

Applica la politica per consentire le connessioni ai host esterni.

$ sudo setsebool -P httpd_can_network_connect 1

Applica la politica per consentire a Nginx di dare accesso a PostgreSQL.

$ sudo setsebool -P httpd_can_network_connect_db 1

Passo 14 - 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-fpm/www.sock;
}

server {
  # Reindirizza tutte le richieste http a 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/html/magento;
  include /var/www/html/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;

  # Configurazione TLS
  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 ---
  # recupera i record OCSP dall'URL nel ssl_certificate e memorizzali nella cache
  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 terminato.

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 web root 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: il file di configurazione /etc/nginx/nginx.conf ha una sintassi corretta
nginx: il test del file di configurazione /etc/nginx/nginx.conf è riuscito

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, esegui i seguenti comandi.

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

Passo 15 - Disabilitare l’autenticazione a due fattori

Prima di accedere al pannello di amministrazione, dobbiamo disabilitare l’autenticazione a due fattori 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 funzionalità.

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

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

Esegui il seguente comando per creare le classi.

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

Pulisci anche la cache.

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

Passo 16 - Accedere al portale di amministrazione

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

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

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

Pagina di accesso Admin di Magento

Inserisci le credenziali dell’amministratore fornite durante l’installazione e fai clic sul pulsante Accedi per procedere. Sarai accolto con la seguente schermata.

Dashboard Admin di Magento

Riceverai un popup che chiede il permesso per Adobe di raccogliere dati di utilizzo. Fai clic 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 Negozi >> Config di Magento

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

Impostazioni di invio email di Magento

Deseleziona Usa valore di sistema prima delle opzioni Trasporto, Host e Porta. Fai clic sul menu a discesa per Trasporto e seleziona SMTP. Per il nostro tutorial, stiamo utilizzando Amazon SES come mittente.

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. Fai clic 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, espandi il menu Generale nella stessa pagina e seleziona l’opzione Indirizzi email del negozio.

Pagina degli indirizzi email del negozio di Magento

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

Impostazioni email Contattaci di Magento

Cambiare le opzioni dell’amministratore può influenzare la cache e riceverai un avviso. Esegui il seguente comando per cancellare manualmente la cache.

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

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

Email di prova di Magento

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

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

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

Aggiorna l’installazione per i moduli.

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

Esegui il seguente comando per creare le classi.

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

Pulisci anche la cache.

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

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

Forza il deploy del contenuto statico.

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

Imposta i permessi dei file.

$ cd /var/www/html/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 riceverai 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. Fai clic 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 dell’autenticatore. Fai clic sul pulsante Conferma per procedere al dashboard admin.

Conclusione

Questo conclude il nostro tutorial su come installare un sito eCommerce Magento su un server Rocky Linux 9 con un server Nginx e 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.