eCommerce · 22 min read · Oct 20, 2025

Comment installer Magento eCommerce sur Ubuntu 22.04 avec Nginx et Elasticsearch

Magento est une plateforme de commerce électronique open-source écrite en PHP. Elle a été acquise par Adobe en 2018 et a été renommée Adobe eCommerce. 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 dont vous avez besoin 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 Ubuntu 22.04 avec un minimum de 2 Go de RAM. Vous pourriez avoir besoin de plus de RAM en fonction de vos exigences.
  • 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 apt update $ sudo apt upgrade
  • Quelques paquets dont votre système a besoin. $ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -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. Ubuntu est livré avec ufw (Uncomplicated Firewall) par défaut.

Vérifiez si le pare-feu est en cours d’exécution.

$ sudo ufw status

Vous devriez obtenir la sortie suivante.

Status: inactive

Autorisez le port SSH afin que le pare-feu ne rompe pas la connexion actuelle lors de son activation.

$ sudo ufw allow OpenSSH

Autorisez également les ports HTTP et HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Activez le pare-feu

$ sudo ufw enable
La commande peut perturber les connexions ssh existantes. Poursuivre l'opération (y|n)? y
Le pare-feu est actif et activé au démarrage du système

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

$ sudo ufw status

Vous devriez voir une sortie similaire.

Status: active

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

Étape 2 - Installer PHP et ses extensions

Ubuntu 22.04 est livré avec la version PHP 8.1.2 qui est un peu obsolète. Nous allons installer la dernière version PHP 8.2 en utilisant le dépôt PHP d’Ondrej.

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

Ensuite, installez PHP et ses extensions requises par Magento.

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

Vérifiez l’installation.

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

É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 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.21 2023-02-15 13:07:40

Étape 4 - Installer MySQL

Ubuntu 22.04 est livré avec la dernière version de MySQL. Vous pouvez l’installer avec une seule commande.

$ sudo apt install mysql-server

Vérifiez la version de MySQL.

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

Cette étape est nécessaire pour les versions de MySQL 8.0.28 et supérieures. Entrez dans le shell MySQL.

$ sudo mysql

Exécutez la commande suivante pour définir le mot de passe de votre utilisateur root. Assurez-vous qu’il contient un mélange de chiffres, de majuscules, de minuscules et de caractères spéciaux.

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

Quittez le shell.

mysql> exit

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

$ sudo mysql_secure_installation

Tout d’abord, on vous demandera votre mot de passe root. Entrez-le. Ensuite, on vous demandera d’installer le composant de validation des mots de passe. Il vérifie la force des mots de passe utilisés dans MySQL. Appuyez sur Y pour l’installer. Ensuite, on vous demandera de définir le niveau de la politique de validation des mots de passe. Choisissez 2 car c’est le plus fort.

Sécurisation du déploiement du serveur MySQL.

Entrez le mot de passe pour l'utilisateur root :

LE COMPOSANT DE VALIDATION DES MOTS DE PASSE peut être utilisé pour tester les mots de passe
et améliorer la sécurité. Il vérifie la force des mots de passe
et permet aux utilisateurs de définir uniquement les mots de passe suffisamment sécurisés. Souhaitez-vous configurer le composant de VALIDATION DES MOTS DE PASSE ?

Appuyez sur y|Y pour Oui, toute autre touche pour Non : Y

Il existe trois niveaux de politique de validation des mots de passe :

FAIBLE    Longueur >= 8
MOYENNE Longueur >= 8, numérique, casse mixte et caractères spéciaux
FORT Longueur >= 8, numérique, casse mixte, caractères spéciaux et fichier dictionnaire

Veuillez entrer 0 = FAIBLE, 1 = MOYENNE et 2 = FORT : 2
Utilisation du mot de passe existant pour root.

Force estimée du mot de passe : 100

Ensuite, entrez N pour refuser de changer votre mot de passe root. Entrez également 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.

Changer le mot de passe pour root ? ((Appuyez sur y|Y pour Oui, toute autre touche pour Non) : N

 ... en cours d'ignorance.
Par défaut, une installation MySQL a un utilisateur anonyme,
permettant à quiconque de se connecter à MySQL sans avoir à créer
un compte utilisateur pour eux. Ceci est destiné uniquement aux tests,
et pour faciliter un peu l'installation.
Vous devriez les supprimer avant de passer à un environnement de production.

Supprimer les utilisateurs anonymes ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : Y
Succès.

Normalement, root ne devrait être autorisé à se connecter que depuis
'localhost'. Cela garantit que quelqu'un ne peut pas deviner le mot de passe root depuis le réseau.

Interdire la connexion root à distance ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : Y
Succès.

Par défaut, MySQL est livré avec une base de données nommée 'test' que
quiconque peut accéder. Ceci est également destiné uniquement aux tests,
et doit être supprimé avant de passer à un environnement de production.

Supprimer la base de données de test et l'accès à celle-ci ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : Y
 - Suppression de la base de données de test...
Succès.

 - Suppression des privilèges sur la base de données de test...
Succès.

Recharger les tables de privilèges garantira que tous les changements
effectués jusqu'à présent prendront effet immédiatement.

Recharger les tables de privilèges maintenant ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : Y
Succès.

Tout est fait !

Étape 5 - Configurer MySQL

Connectez-vous au shell MySQL. Entrez votre mot de passe root lorsque vous y êtes invité.

$ sudo mysql -u root -p

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

mysql> CREATE DATABASE magento;

Créez un compte utilisateur SQL.

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

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

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

Rafraîchissez les privilèges de l’utilisateur.

mysql> FLUSH PRIVILEGES;

Quittez le shell.

mysql> exit

Étape 6 - Installer Nginx

Ubuntu 22.04 est livré avec une version plus ancienne de Nginx. Pour installer la dernière version, vous devez télécharger le dépôt officiel de Nginx.

Importez la clé de signature de Nginx.

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

Ajoutez le dépôt pour la version stable de Nginx.

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

Mettez à jour les dépôts du système.

$ sudo apt update

Installez Nginx.

$ sudo apt install nginx

Vérifiez l’installation.

$ nginx -v
nginx version: nginx/1.24.0

Démarrez le serveur Nginx.

$ sudo systemctl start nginx

Étape 7 - Installer SSL

Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot en utilisant le dépôt d’Ubuntu, soit obtenir la dernière version en utilisant l’outil Snapd. Nous allons utiliser la version Snapd.

Ubuntu 22.04 est livré avec Snapd installé par défaut. Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.

$ sudo snap install core && sudo snap refresh core

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

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 pour s’exécuter.

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

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

$ sudo certbot renew --dry-run

Si vous ne voyez pas d’erreurs, 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.

Importez la clé GPG d’Elasticsearch.

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

Ajoutez le dépôt Elasticsearch.

$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

Mettez à jour la liste des dépôts du système.

$ sudo apt update

Installez Elasticsearch.

$ sudo apt install 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.

-Xms1g
-Xmx1g

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. Vous pouvez utiliser n’importe quelle valeur selon vos besoins.

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",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6yks8tZ6T4GskIwWoXuSLA",
  "version" : {
    "number" : "7.17.10",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "fecd68e3150eda0c307ab9a9d7557f5d5fd71349",
    "build_date" : "2023-04-23T05:33:18.138275597Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "Vous savez, pour la recherche"
}

É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. Ubuntu est livré avec Redis 6.0, nous allons donc utiliser le dépôt Redis pour l’installation.

Importez la clé GPG officielle de Redis.

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

Ajoutez le dépôt APT à votre liste de sources.

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

Mettez à jour la liste des dépôts du système.

$ sudo apt update

Émettez la commande suivante pour installer le serveur Redis.

$ sudo apt install redis

Confirmez la version de Redis.

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

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 avec 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/magento -p

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

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

Passez au répertoire /var/www.

$ cd /var/www

Avant de continuer, vous avez besoin des clés d’authentification requises par le dépôt Magento. Visitez le site https://account.magento.com/ et vous obtiendrez la page suivante vous demandant de vous connecter avec votre ID Adobe.

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 ID Adobe, 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://marketplace.magento.com/customer/accessKeys/. Vous pouvez également accéder à cette page en visitant votre profil et en cliquant sur le lien Clés d’accès.

Page des clés d'accès du 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 projet Magento.

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

On vous demandera le nom d’utilisateur et le mot de passe pour le dépôt. Utilisez la clé publique comme nom d’utilisateur et la clé privée comme mot de passe. On vous demandera si vous souhaitez stocker les identifiants dans le répertoire de configuration de Composer. Entrez y pour le faire.

Création d'un projet "magento/project-community-edition" à "./magento"
    Authentification requise (repo.magento.com) :
      Nom d'utilisateur : 53211xxxxxxxxxxxxxxxxxxxxxxxxxxx
      Mot de passe :
Souhaitez-vous stocker les identifiants pour repo.magento.com dans /home/navjot/.config/composer/auth.json ? [Yn] y
Installation de magento/project-community-edition (2.4.6)
  - Téléchargement de magento/project-community-edition (2.4.6)
  - Installation de magento/project-community-edition (2.4.6) : Extraction de l'archive
Projet créé dans /var/www/magento
Chargement des dépôts composer avec les informations sur les paquets
Info de https://repo.packagist.org: #StandWithUkraine
Mise à jour des dépendances
Opérations sur le fichier de verrouillage : 564 installations, 0 mises à jour, 0 suppressions
  - Verrouillage de 2tvenom/cborencode (1.0.2)
  - Verrouillage d'adobe-commerce/adobe-ims-metapackage (2.2.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.

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

Étape 11 - Installer Magento

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

$ cd /var/www/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=localhost \
--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]: Installation de Magento terminée.
[SUCCESS]: URI Admin de Magento : /admin_19uadb
Rien à importer.

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 DÉBUT d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.2 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO FIN d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c

Étape 12 - Configurer PHP-FPM

Ouvrez le fichier /etc/php/8.2/fpm/pool.d/www.conf.

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

Nous devons définir l’utilisateur/groupe Unix des processus PHP sur nginx. Trouvez les lignes user=www-data et group=www-data dans le fichier et changez-les en nginx.

...
; Utilisateur/groupe Unix des processus
; Remarque : L'utilisateur est obligatoire. Si le groupe n'est pas défini, le groupe de l'utilisateur par défaut
;       sera utilisé.
; RPM : utilisateur apache choisi pour fournir l'accès aux mêmes répertoires que httpd
user = nginx
; RPM : Gardez un groupe autorisé à écrire dans le répertoire des journaux.
group = nginx
...

Trouvez les lignes listen.owner = www-data et listen.group = www-data dans le fichier et changez-les en nginx.

; Définir les permissions pour le socket unix, si un est utilisé. Dans Linux, les permissions de lecture/écriture
; doivent être définies pour permettre les connexions d'un serveur web. De nombreux
; systèmes dérivés de BSD permettent des connexions indépendamment des permissions. Le propriétaire
; et le groupe peuvent être spécifiés soit par nom, soit par leurs ID numériques.
; Valeurs par défaut : l'utilisateur et le groupe sont définis comme l'utilisateur en cours
;                 le mode est défini sur 0660
listen.owner = nginx
listen.group = nginx

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

Augmentez le temps d’exécution pour PHP-FPM et PHP-CLI à 180 secondes.

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

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

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

Activez la compression Zlib.

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

Redémarrez le service PHP-FPM.

$ sudo systemctl restart php8.2-fpm

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

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

Étape 13 - 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/php8.2-fpm.sock;
}

server {
  # Rediriger toutes les requêtes http vers https
  listen 80;
  listen [::]:80;
  server_name magento.example.com;
  return 301 https://$host$request_uri;
}

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

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

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

  # Configuration 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 ---
  # récupérer les enregistrements OCSP à partir de l'URL dans ssl_certificate et les mettre en cache
  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 de Nginx.

$ sudo nginx -t
nginx: le fichier de configuration /etc/nginx/nginx.conf a une syntaxe correcte
nginx: le test du fichier de configuration /etc/nginx/nginx.conf est réussi

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 pour vous, exécutez les commandes suivantes.

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

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

Avant d’accéder au panneau d’administration, nous devons désactiver l’authentification à deux facteurs qui est activée par défaut. Magento essaie d’envoyer des mails via sendmail pour activer l’authentification à deux facteurs lors de 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. Pour désactiver l’authentification à deux facteurs, nous devons désactiver deux des modules de Magento en utilisant les commandes suivantes.

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

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

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

Nettoyez également le cache.

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

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

Vous devrez 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_19uadb

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

Page de connexion au tableau de bord d'administration Magento

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

Tableau de bord d'administration Magento

Vous obtiendrez une fenêtre contextuelle 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 Magento Stores >> Config

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

Décochez la case Utiliser la valeur système devant 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 de mails.

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 d’e-mail du magasin afin que nous puissions les tester.

Faites défiler vers le haut et 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 e-mails de votre magasin. Cliquez sur le bouton Enregistrer la configuration lorsque vous avez terminé. De même, ouvrez l’écran Contacts et apportez les mêmes modifications, puis 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.

$ php /var/www/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 16 - Activer et configurer l’authentification à deux facteurs

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

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

Mettez à niveau la configuration pour les modules.

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

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

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

Nettoyez également le cache.

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

Si vous ne parvenez pas à accéder à la zone d’administration, exécutez également les commandes suivantes.

Déployez de force le contenu statique.

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

Définissez les permissions de fichiers.

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

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 d’administration.

Conclusion

Cela conclut notre tutoriel sur l’installation du site eCommerce Magento sur un serveur Ubuntu 22.04 avec le 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.