Installation Magento · 25 min read · Oct 19, 2025

Comment installer Magento eCommerce Suite sur Rocky Linux 9 avec Elasticsearch

Magento est une plateforme de commerce électronique open-source écrite en PHP. Elle a été acquise par Adobe en 2018. Elle est également proposée comme produit commercial et basé sur le cloud. Vous pouvez utiliser Magento pour créer des sites web de shopping professionnels à haute capacité. Il offre à la fois un mode mono-boutique et un mode multi-boutique. Il est livré avec de nombreux modules pour étendre sa fonctionnalité.

Dans ce tutoriel, nous allons installer l’édition communautaire open-source de Magento. Elle offre toutes les fonctionnalités nécessaires pour configurer une boutique en ligne professionnelle. Nous allons également installer Elasticsearch pour rechercher dans le catalogue de produits, Redis pour la session et le cache de fichiers, et le servir en utilisant le serveur Nginx.

Prérequis

  • Un serveur exécutant Rocky Linux 9 avec un minimum de 2 Go de RAM. Vous pourriez avoir besoin de plus de RAM, selon vos besoins.
  • Un utilisateur non-root avec des privilèges sudo.
  • Un nom de domaine entièrement qualifié (FQDN) pour le serveur, magento.example.com
  • Assurez-vous que tout est à jour. $ sudo dnf update
  • Quelques paquets dont votre système a besoin. $ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -y Certains de ces paquets peuvent déjà être installés sur votre système.

Étape 1 - Configurer le pare-feu

La première étape consiste à configurer le pare-feu. Rocky Linux utilise le pare-feu Firewalld. Vérifiez l’état du pare-feu.

$ sudo firewall-cmd --state
running

Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous allons utiliser. Listez tous les services et ports actifs sur le pare-feu.

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

Cela devrait afficher la sortie suivante.

cockpit dhcpv6-client ssh

Autorisez les ports HTTP et HTTPS.

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

Vérifiez à nouveau l’état du pare-feu.

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

Vous devriez voir une sortie similaire.

cockpit dhcpv6-client http https ssh

Rechargez le pare-feu pour activer les modifications.

$ sudo firewall-cmd --reload

Étape 2 - Installer PHP et ses extensions

Rocky Linux 9 est livré avec PHP 8.1 par défaut. Pour rester toujours sur la dernière version de PHP ou si vous souhaitez installer plusieurs versions de PHP, nous devons utiliser le dépôt REMI.

La première étape consiste à récupérer le dépôt Epel.

$ sudo dnf install epel-release -y

Ensuite, installez le dépôt Remi.

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

Vérifiez les flux PHP disponibles.

$ 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 version par défaut est 8.1. Au moment de la rédaction de ce tutoriel, Magento est compatible avec PHP 8.2. Par conséquent, activez le dépôt PHP 8.2 de Remi.

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

Vous pouvez l’installer ainsi que les extensions requises par Magento en exécutant la commande suivante.

$ 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

Vérifiez l’installation.

$ 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

Étape 3 - Installer Composer

Composer est un outil de gestion des dépendances pour PHP et est requis pour l’installation de Magento.

Exécutez les commandes suivantes pour télécharger le binaire de Composer. Magento nécessite Composer 2.2 LTS, nous avons donc modifié la commande en conséquence.

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

Installez Composer en déplaçant le binaire vers le répertoire /usr/local/bin.

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

Vérifiez l’installation en vérifiant sa version.

$ composer --version
Composer version 2.2.22 2023-09-29 10:53:45

Étape 4 - Installer MariaDB

Rocky Linux 9 est livré avec une version plus ancienne de MariaDB. Par conséquent, nous allons utiliser le dépôt de MariaDB pour l’installation. Au moment de la rédaction de ce tutoriel, Magento prend en charge MariaDB 10.6, que nous allons installer.

Importez la clé GPG de MariaDB.

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

Créez et ouvrez le fichier /etc/yum.repos.d/mariadb.repo pour l’édition.

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

Collez le code suivant dedans.

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

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

$ sudo dnf install MariaDB-server

Vérifiez la version de MySQL.

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

Activez et démarrez le service MariaDB.

$ sudo systemctl enable mariadb --now

Exécutez le script d’installation sécurisée de MariaDB.

$ sudo mariadb-secure-installation

On vous demandera le mot de passe root. Appuyez sur Entrée car nous n’avons pas encore défini de mot de passe pour cela.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):

Ensuite, on vous demandera si vous souhaitez passer à la méthode d’authentification par socket Unix. Le plugin unix_socket vous permet d’utiliser vos identifiants système pour vous connecter au serveur MariaDB. Comme vous avez déjà un compte root protégé, entrez n pour continuer.

OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n

Ensuite, on vous demandera si vous souhaitez changer votre mot de passe root. Tapez Y pour continuer et changez votre mot de passe root en quelque chose de fort et sécurisé.

 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

Ensuite, on vous posera certaines questions pour améliorer la sécurité de MariaDB. Tapez Y pour supprimer les utilisateurs anonymes, interdire les connexions root à distance, supprimer la base de données de test et recharger les tables de privilèges.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB 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? [Y/n] 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? [Y/n] y
 ... Success!

By default, MariaDB 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? [Y/n] 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? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Vous pouvez entrer dans le shell de MariaDB en tapant sudo mysql ou sudo mariadb dans la ligne de commande.

Étape 5 - Configurer MariaDB

Connectez-vous au shell de MariaDB.

$ sudo mariadb

Créez une base de données pour Magento.

MariaDB > CREATE DATABASE magento;

Créez un compte utilisateur SQL.

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

Accordez tous les privilèges sur la base de données à l’utilisateur.

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

Rafraîchissez les privilèges des utilisateurs.

MariaDB > FLUSH PRIVILEGES;

Quittez le shell.

MariaDB > exit

Étape 6 - Installer Nginx

Rocky Linux 9 est livré avec une version plus ancienne de Nginx. Vous devez utiliser le dépôt officiel de Nginx pour installer la dernière version.

Créez et ouvrez le fichier /etc/yum.repos.d/nginx.repo pour l’édition.

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

Collez le code suivant dedans.

[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

Une fois que vous avez terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Nous allons installer la version principale de Nginx, donc activez le paquet pour cela.

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

Installez Nginx.

$ sudo dnf install nginx -y

Vérifiez l’installation.

$ nginx -v
nginx version: nginx/1.25.3

Activez et démarrez le service du serveur Nginx.

$ sudo systemctl enable nginx --now

Vérifiez l’état du service.

? nginx.service - nginx - high performance web server
     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"

Étape 7 - Installer SSL

Nous devons installer Certbot pour générer le certificat SSL. Nous allons utiliser le gestionnaire de paquets Snapd pour cela. Comme Rocky Linux ne l’inclut pas, installez le gestionnaire Snapd. Il nécessite le dépôt EPEL (Extra Packages for Enterprise Linux) pour fonctionner. Mais comme nous l’avons déjà installé à l’étape 3, nous pouvons directement avancer.

Installez le paquet Snapd.

$ sudo dnf install -y snapd

Activez et démarrez le service Snap.

$ sudo systemctl enable snapd --now

Installez le paquet de base Snap et assurez-vous que votre version de Snapd est à jour.

$ sudo snap install core && sudo snap refresh core

Créez les liens nécessaires pour que Snapd fonctionne.

$ 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

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

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

Vérifiez si Certbot fonctionne correctement.

$ certbot --version
certbot 2.8.0

Exécutez la commande suivante pour générer un certificat SSL.

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

La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/magento.example.com sur votre serveur.

Générez un certificat de groupe Diffie-Hellman.

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

Vérifiez le service de planification de renouvellement de Certbot.

$ sudo systemctl list-timers

Vous trouverez snap.certbot.renew.service comme l’un des services programmés à exécuter.

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

Faites un essai à blanc du processus pour vérifier si le renouvellement SSL fonctionne correctement.

$ sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 8 - Installer Elasticsearch

Elasticsearch est utilisé par Magento pour les recherches de produits. Nous allons installer Elasticsearch 7.x en utilisant son dépôt officiel car c’est la version compatible avec Magento 2.4.6, qui est la dernière version disponible. La page des exigences mentionne également Elasticsearch 8.5, mais cela ne fonctionne pas correctement avec Magento.

Importez la clé GPG d’Elasticsearch.

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

Créez un fichier appelé elasticsearch.repo dans le répertoire /etc/yum.repos.d/ et ouvrez-le pour l’édition.

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

Collez le code suivant dedans.

[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

Une fois que vous avez terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Installez Elasticsearch.

$ sudo dnf install --enablerepo=elasticsearch elasticsearch

Elasticsearch utilise beaucoup de mémoire. Vous devez limiter son utilisation en fonction de la taille de votre serveur. Créez le fichier /etc/elasticsearch/jvm.options.d/memory.options et ouvrez-le pour l’édition.

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

Collez le code suivant dedans. Modifiez les valeurs en fonction de la taille de votre serveur. La première valeur fait référence à la mémoire initiale et la seconde à la mémoire maximale disponible. Pour 1 Go et plus, utilisez le format -Xms1g.

-Xms512m
-Xmx784m

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité. Cela configure Elasticsearch pour utiliser 1 Go de RAM. Modifiez-le selon vos besoins et les spécifications de votre serveur.

Démarrez et activez le service.

$ sudo systemctl enable elasticsearch --now

Vérifiez si Elasticsearch fonctionne.

$ curl http://localhost:9200

Vous devriez voir la sortie suivante.

{
  "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"
}

Étape 9 - Installer le serveur Redis

Magento utilise Redis pour le stockage des sessions et du cache. C’est entièrement optionnel et vous pouvez utiliser la base de données pour le stockage des sessions. Mais Redis fait un meilleur travail. La dernière version de Magento fonctionne avec Redis 7.0. Rocky Linux est livré avec Redis 6.0, donc nous allons utiliser le dépôt Remi pour l’installation.

Nous avons déjà installé le dépôt Remi lorsque nous avons installé PHP à l’étape 2. Listez tous les modules Redis disponibles.

$ 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

Activez Redis 7.0.

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

Exécutez la commande suivante pour installer le serveur Redis.

$ sudo dnf install redis

Confirmez la version de Redis.

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

Activez et démarrez le service Redis.

$ sudo systemctl enable redis --now

Vérifions la connexion au service en utilisant la commande suivante.

$ redis-cli

Vous serez transféré dans le shell Redis.

La première étape consiste à définir le mot de passe pour l’utilisateur par défaut de Redis. Remplacez Your_Redis_Password par un mot de passe fort de votre choix. Assurez-vous de préfixer le mot de passe par le caractère >.

127.0.0.1:6379> acl setuser default >Your_Redis_Password

Testez l’authentification Redis.

127.0.0.1:6379> AUTH Your_Redis_Password
OK

Ping le service.

127.0.0.1:6379> ping
PONG

Quittez le service en tapant exit.

Étape 10 - Télécharger Magento

Créez un répertoire racine web pour Magento.

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

Donnez les droits au répertoire Magento à l’utilisateur actuel.

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

Avant de continuer, vous avez besoin des clés d’authentification requises par le dépôt Magento. Visitez le site https://commercemarketplace.adobe.com/, cliquez sur le lien Se connecter en haut à droite, et vous obtiendrez la page suivante vous demandant de vous connecter avec votre Adobe ID.

Page de connexion Adobe ID

Cliquez sur le bouton Se connecter avec Adobe ID pour accéder à la page suivante.

Page de connexion Magento Adobe

Si vous avez un Adobe ID, entrez vos identifiants pour continuer ou vous pouvez créer un compte ici. Une fois que vous avez créé votre compte et que vous êtes connecté, ouvrez l’URL https://commercemarketplace.adobe.com/customer/accessKeys/. Vous pouvez également accéder à cette page en visitant votre profil ( https://commercemarketplace.adobe.com/customer/account/) et en cliquant sur le lien Clés d’accès.

Page de profil Adobe Magento

Cliquez sur le bouton Créer une nouvelle clé d’accès pour créer votre clé d’authentification. Donnez un nom à votre clé pour identification.

Clés d'accès Magento

Notez les deux clés, publique et privée, pour l’étape suivante.

Créez le fichier ~/.config/composer/auth.json et ouvrez-le pour l’édition.

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

Collez le code suivant dedans. Utilisez la clé publique pour le nom d’utilisateur et la clé privée pour le mot de passe.

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

}
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Passez au répertoire /var/www/html/magento.

$ cd /var/www/html/magento

Créez le projet Magento. Notez le point à la fin de la commande. Il fait référence au répertoire actuel dans lequel la commande est exécutée.

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

Vous devriez voir une sortie similaire.

Creating a "magento/project-community-edition" project at "./"
Installing magento/project-community-edition (2.4.6-p3)
  - Downloading magento/project-community-edition (2.4.6-p3)
  - Installing magento/project-community-edition (2.4.6-p3): Extracting archive
Created project in /var/www/html/magento/.
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 566 installs, 0 updates, 0 removals
  - Locking 2tvenom/cborencode (1.0.2)
  - Locking adobe-commerce/adobe-ims-metapackage (2.2.0)
  - Locking allure-framework/allure-codeception (v2.3.0)
  - Locking allure-framework/allure-php-commons (v2.3.1)
  - Locking allure-framework/allure-phpunit (v2.1.0)
...............................................

Exécutez les commandes suivantes pour définir les permissions de fichiers et rendre le binaire Magento exécutable. De plus, définissez le propriétaire du répertoire Magento sur l’utilisateur Nginx afin qu’il puisse accéder au site 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

Étape 11 - Installer Magento

Assurez-vous d’être dans le répertoire Magento.

$ cd /var/www/html/magento

Exécutez la commande suivante pour installer 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

Une fois le processus terminé, vous obtiendrez une sortie similaire.

.......
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_l5pv1h
Nothing to import.

Notez l’URI Admin que vous aurez besoin plus tard pour accéder au panneau d’administration.

Créez des tâches cron Magento.

$ php bin/magento cron:install

Vérifiez la tâche cron.

$ crontab -l

Vous devriez voir la sortie suivante.

#~ MAGENTO START 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 END f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d

Étape 12 - Configurer PHP-FPM

Ouvrez le fichier /etc/php-fpm.d/www.conf.

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

Nous devons définir l’utilisateur/groupe Unix des processus PHP sur nginx. Trouvez les lignes user = apache et group = apache dans le fichier et changez-les en 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
...

Trouvez les lignes listen.owner = nobody, listen.group = nobody, listen.mode = 0660 dans le fichier et changez-les comme suit après les avoir décommentées.

; 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

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Augmentez le temps d’exécution à 180 secondes.

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

Augmentez la limite de mémoire pour PHP-FPM de 128 Mo à 512 Mo. Vous pouvez augmenter la limite en fonction de la taille de votre serveur et de vos besoins.

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

Magento définit par défaut la limite de taille de fichier pour la bibliothèque multimédia à 2 Mo. Exécutez les commandes suivantes pour augmenter la limite de taille de fichier à 25 Mo.

$ 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

Activez la compression Zlib.

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

Augmentez la configuration realpath_cache comme indiqué.

$ 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

Ouvrez le fichier /etc/php.d/10-opcache.ini pour l’édition.

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

Trouvez la ligne ;opcache.save_comments=1 et décommentez-la comme indiqué.

opcache.save_comments=1

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez le service PHP-FPM.

$ sudo systemctl restart php-fpm

Changez le groupe du répertoire des sessions PHP en Nginx.

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

Étape 13 - Configurer SELinux

Exécutez les commandes suivantes pour changer le contexte de sécurité pour le répertoire 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/'

Appliquez la politique pour permettre les connexions aux hôtes externes.

$ sudo setsebool -P httpd_can_network_connect 1

Appliquez la politique pour permettre à Nginx d’accéder à PostgreSQL.

$ sudo setsebool -P httpd_can_network_connect_db 1

Étape 14 - Configurer Nginx

Ouvrez le fichier /etc/nginx/nginx.conf pour l’édition.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Créez et ouvrez le fichier /etc/nginx/conf.d/magento.conf pour l’édition.

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

Collez le code suivant dedans.

upstream fastcgi_backend {
  server  unix:/run/php-fpm/www.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/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;

  # 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;
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité une fois terminé.

Magento est livré avec un modèle de configuration Nginx à /var/www/magento/nginx.conf.sample que nous avons inclus dans notre configuration. La variable $MAGE_ROOT pointe vers le répertoire racine web de Magento que nous avons défini dans notre fichier et est utilisée dans le fichier de configuration d’exemple.

Vérifiez la syntaxe du fichier de configuration 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

Redémarrez le service Nginx.

$ sudo systemctl restart nginx

Ouvrez le site web Magento via l’URL https://magento.example.com. Vous devriez voir la page suivante.

Page d'accueil Magento

Si le CSS et le JS ne se chargent pas, exécutez les commandes suivantes.

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

Étape 15 - Désactiver l’authentification à deux facteurs

Avant d’accéder au panneau d’administration, nous devons désactiver l’authentification à deux facteurs activée par défaut. Magento essaie d’envoyer des mails via sendmail pour activer l’authentification à deux facteurs pendant l’installation, mais comme nous ne l’avons pas configuré, le seul moyen d’accéder au tableau de bord est de désactiver d’abord la fonctionnalité.

Si vous avez sendmail configuré sur votre serveur pour envoyer des e-mails, vous pouvez sauter cette étape. Nous devons désactiver deux des modules de Magento en utilisant les commandes suivantes pour désactiver l’authentification à deux facteurs.

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

Exécutez la commande suivante pour créer les classes.

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

Nettoyez également le cache.

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

Étape 16 - Accéder au portail d’administration

Vous devez ouvrir le portail d’administration en utilisant l’URI que le script d’installation de Magento vous a donné. Si vous avez oublié de le noter ou l’avez perdu, vous pouvez récupérer l’URI à nouveau en utilisant la commande suivante.

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

Ouvrez l’URL https://magento.example.com/admin_l5pv1h dans votre navigateur et vous obtiendrez l’écran suivant.

Page de connexion Admin Magento

Entrez les identifiants administratifs que vous avez fournis lors de l’installation et cliquez sur le bouton Se connecter pour continuer. Vous serez accueilli par l’écran suivant.

Tableau de bord Admin Magento

Vous obtiendrez une popup demandant la permission à Adobe de collecter des données d’utilisation. Cliquez sur le bouton Ne pas autoriser pour continuer.

La prochaine étape consiste à configurer SMTP pour les e-mails afin que nous puissions réactiver l’authentification à deux facteurs. Visitez le menu Stores >> Configuration.

Menu Configuration Magento Stores >>

Développez le menu Avancé sur le côté gauche et cliquez sur l’option Systèmes pour ouvrir la page des paramètres d’e-mail.

Paramètres d'envoi d'e-mail Magento

Décochez l’option Utiliser la valeur système avant les options Transport, Hôte et Port. Cliquez sur le menu déroulant pour le Transport et sélectionnez SMTP. Pour notre tutoriel, nous utilisons Amazon SES comme expéditeur.

Paramètres de messagerie Amazon SES Magento

Entrez votre hôte SMTP, 587 comme port, nom d’utilisateur et mot de passe, définissez Auth sur LOGIN, et définissez SSL sur TLS dans les champs donnés. Cliquez sur le bouton Enregistrer la configuration lorsque vous avez terminé. Maintenant que nous avons configuré les paramètres d’e-mail, la prochaine étape consiste à configurer les identifiants e-mail du magasin afin que nous puissions les tester.

Faites défiler vers le haut, développez le menu Général sur la même page, et sélectionnez l’option Adresses e-mail du magasin.

Page des adresses e-mail du magasin Magento

Décochez les champs d’e-mail de l’expéditeur par défaut et entrez les identifiants e-mail de votre magasin. Cliquez sur le bouton Enregistrer la configuration lorsque vous avez terminé. De même, ouvrez l’écran Contacts, apportez les mêmes modifications et cliquez sur le bouton Enregistrer la configuration pour terminer.

Paramètres d'e-mail Contactez-nous Magento

Modifier les options administratives peut affecter le cache et vous recevrez un avertissement. Exécutez la commande suivante pour vider le cache manuellement.

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

Pour tester les e-mails, visitez la page de la vitrine et ouvrez la page Contactez-nous. Vous pouvez utiliser l’URL https://magento.example.com/contact/ directement pour y accéder. Envoyez un message test et cliquez sur le bouton Soumettre. Vous devriez recevoir un e-mail similaire.

E-mail test Magento

Étape 17 - Activer et configurer l’authentification à deux facteurs

Maintenant que nous avons activé le service de messagerie SMTP, il est temps de réactiver l’authentification à deux facteurs. Exécutez les commandes suivantes pour activer l’authentification à deux facteurs.

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

Mettez à niveau la configuration pour les modules.

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

Exécutez la commande suivante pour créer les classes.

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

Nettoyez également le cache.

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

Si vous n’arrivez pas à accéder à la zone admin, exécutez également les commandes suivantes.

Déployez de force le contenu statique.

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

Définissez les permissions de fichiers.

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

Visitez le portail Admin et vous obtiendrez l’écran suivant.

Configuration 2FA Magento

Nous utiliserons la méthode Google Authenticator. Vous pouvez utiliser une clé matérielle si vous en avez une. La méthode Google Authenticator fonctionne avec n’importe quelle application TOTP, y compris Authy, 1Password, Bitwarden, Microsoft Authenticator, etc. Cliquez sur le bouton Appliquer pour continuer.

Configuration Google 2FA Magento

À la page suivante, vous obtiendrez le code QR à scanner avec votre application 2FA. Entrez les détails dans votre application et copiez le code généré dans le champ Code Authenticator. Cliquez sur le bouton Confirmer pour accéder au tableau de bord admin.

Conclusion

Cela conclut notre tutoriel sur l’installation d’un site eCommerce Magento sur un serveur Rocky Linux 9 avec un serveur Nginx et Elasticsearch. Si vous avez des questions, postez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.