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

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

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.

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.

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.

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.

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

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.

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

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.

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.

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.

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.

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.

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.

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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.