Installation de Nginx pour les déploiements sur site nginx
Ce guide vous guide tout au long de l’installation de Nginx pour les déploiements sur site d’Adobe Commerce et de la configuration des paramètres Nginx requis par Commerce. Il comprend des procédures spécifiques au système d'exploitation pour Ubuntu et CentOS, ainsi que des conseils pour la configuration de PHP-FPM. Adobe recommande de suivre les instructions de configuration fournies dans ce guide afin de préserver les fonctionnalités et la sécurité de l’application Commerce.
Adobe prend en charge les versions de Nginx répertoriées dans la configuration requise pour votre version d’Adobe Commerce. Les versions prises en charge varient selon les versions. Nginx nécessite également une configuration PHP-FPM prise en charge. Pour les exigences PHP associées, voir PHP.
Installer sur Ubuntu
Utilisez cette section pour installer Adobe Commerce sur Ubuntu avec Nginx, PHP et MySQL.
Installer Nginx
sudo apt -y install nginx
Vous pouvez également créer Nginx à partir de la source.
Une fois que vous avez terminé les sections suivantes et installé l’application, utilisez l’exemple de fichier de configuration pour configurer Nginx. Cette configuration recommandée permet de préserver les fonctionnalités et la sécurité de l’application Commerce.
Installer et configurer PHP-FPM
Adobe Commerce requiert plusieurs extensions PHP pour fonctionner correctement. En plus de ces extensions, vous devez également installer et configurer l’extension php-fpm si vous utilisez Nginx.
Pour installer et configurer php-fpm :
-
Installez les packages
php-fpmetphp-clipour la version PHP prise en charge par votre version d’Adobe Commerce. Sur Ubuntu, les noms de package suivent généralement le modèle suivant :code language-bash apt-get -y install php<php-version>-fpm php<php-version>-clinote note NOTE Remplacez <php-version>par la version PHP mineure prise en charge répertoriée dans configuration requise pour la version d’Adobe Commerce que vous installez. Utilisez la même valeur dans les chemins d’accès aux fichiers, le nom du service et le chemin d’accès au socket dans les étapes suivantes. -
Ouvrez les fichiers
php.inidans un éditeur :code language-bash vim /etc/php/<php-version>/fpm/php.inicode language-bash vim /etc/php/<php-version>/cli/php.ini -
Modifiez les deux fichiers pour qu’ils correspondent aux lignes suivantes :
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote note NOTE Adobe recommande de définir la limite de mémoire sur 2 Go lors du test d’Adobe Commerce. Pour plus d’informations, voir Paramètres PHP requis. -
Enregistrez et quittez l’éditeur.
-
Redémarrez le service
php-fpm:code language-bash systemctl restart php<php-version>-fpm
Installation et configuration de MySQL
Voir MySQL pour plus d’informations.
Installation d’Adobe Commerce
Vous pouvez télécharger Adobe Commerce de plusieurs façons :
Cet exemple illustre une installation basée sur le compositeur à l’aide de la ligne de commande .
-
Connectez-vous à votre serveur d’applications en tant que propriétaire du système de fichiers.
-
Passez au répertoire docroot du serveur web ou à un répertoire que vous avez configuré en tant qu'hôte virtuel docroot. Pour cet exemple, nous utilisons le
/var/www/htmlpar défaut Ubuntu.code language-bash cd /var/www/html -
Installez Composer globalement. Le compositeur est nécessaire pour mettre à jour les dépendances avant d’installer Adobe Commerce :
code language-bash curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer -
Créez un projet Composer à l’aide du métapaquet Adobe Commerce.
code language-bash composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
code language-bash composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>A l’invite, saisissez vos clés d’authentification. Votre clé publique est votre nom d’utilisateur ; votre clé privée est votre mot de passe.
-
Définissez les autorisations de lecture et d’écriture pour le groupe de serveurs web avant d’installer l’application. Cela est nécessaire pour que la ligne de commande puisse écrire des fichiers dans le système de fichiers.
code language-bash cd /var/www/html/<magento install directory>code language-bash find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +code language-bash find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +code language-bash chown -R :www-data . # Ubuntucode language-bash chmod u+x bin/magento -
Installez à partir de la ligne de commande. Cet exemple suppose que le répertoire d’installation est nommé
magento2eeet que l’hôte de base de données se trouve sur le même ordinateur (localhost) :code language-bash bin/magento setup:install \ --base-url=http://localhost/magento2ee \ --db-host=localhost \ --db-name=<db-name> \ --db-user=<db-user> \ --db-password=<db-password> \ --backend-frontname=<backend-uri> \ --admin-firstname=<admin-first-name> \ --admin-lastname=<admin-last-name> \ --admin-email=<admin-email> \ --admin-user=<admin-user> \ --admin-password=<admin-password> \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 \ --search-engine=<search-engine-value> \ --<search-engine-host-parameter>=search-host.example.com \ --<search-engine-port-parameter>=9200note note NOTE Utilisez la valeur --search-engineet les options hôte/port correspondantes requises par la version d’Adobe Commerce que vous installez. Pour les versions antérieures à la version 2.4.6, utilisezelasticsearch7avec les options--elasticsearch-*pour Elasticsearch 7 ou OpenSearch. Pour les versions 2.4.6 et ultérieures, utilisez la valeur du moteur de recherche et les options de ligne de commande correspondantes prises en charge par cette version. -
Basculez vers le mode Développeur :
code language-bash cd /var/www/html/magento2/bincode language-bash ./magento deploy:mode:set developer
Configurer Nginx
Adobe recommande de configurer Nginx à l'aide du fichier de configuration nginx.conf.sample fourni dans le répertoire d'installation et de la configuration de votre hôte virtuel Nginx afin de préserver les fonctionnalités et la sécurité de l'application Commerce.
nginx.conf.sample fournit le routage d’application requis ainsi que des règles de renforcement de la sécurité. Par exemple, elle limite l’exécution des scripts nuisibles chargés sur le serveur. Si vous n’utilisez pas ce fichier ou ne modifiez pas ses règles, vous êtes responsable de l’implémentation de contrôles de sécurité équivalents dans votre configuration d’onglets personnalisés.Ces instructions supposent que vous utilisez l'emplacement par défaut Ubuntu pour l'hôte virtuel Nginx, tel que /etc/nginx/sites-available, et le docroot par défaut Ubuntu, tel que /var/www/html. Vous pouvez modifier ces emplacements en fonction de votre environnement.
-
Créez un hôte virtuel pour votre site :
code language-bash vim /etc/nginx/sites-available/magento -
Ajoutez la configuration suivante :
code language-conf upstream fastcgi_backend { server unix:/run/php/php<php-version>-fpm.sock; } server { listen 80; server_name www.magento-dev.com; set $MAGE_ROOT /var/www/html/magento2; include /var/www/html/magento2/nginx.conf.sample; }note note NOTE La directive includedoit pointer vers l'exemple de fichier de configuration nginx dans votre répertoire d'installation. -
Remplacez
www.magento-dev.compar votre nom de domaine. Elle doit correspondre à l’URL de base que vous avez spécifiée lors de l’installation d’Adobe Commerce. -
Enregistrez et quittez l’éditeur.
-
Activez l’hôte virtuel que vous venez de créer en y créant un lien symbolique dans le répertoire
/etc/nginx/sites-enabled:code language-bash ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled -
Vérifiez que la syntaxe est correcte :
code language-bash nginx -t -
Redémarrez Nginx :
code language-bash systemctl restart nginx
Vérification de l’installation
Pour vérifier l’installation, ouvrez un navigateur web et accédez à l’URL de base de votre site. Pour plus d’informations, voir Vérification de l’installation.
Installer sous CentOS 7
Utilisez cette section pour installer Adobe Commerce sur CentOS 7 avec Nginx, PHP et MySQL.
Installer Nginx
yum -y install epel-release
yum -y install nginx
Une fois l’installation terminée, démarrez nginx et configurez-le pour qu’il démarre au moment du démarrage :
systemctl start nginx
systemctl enable nginx
Une fois que vous avez terminé les sections suivantes et installé l’application, utilisez un exemple de fichier de configuration pour configurer Nginx.
Installer et configurer PHP-FPM
Adobe Commerce requiert plusieurs extensions PHP pour fonctionner correctement. En plus de ces extensions, vous devez également installer et configurer l’extension php-fpm si vous utilisez Nginx.
-
Installez
php-fpm:code language-bash yum -y install <php-fpm-package> -
Ouvrez le fichier
/etc/php.inidans un éditeur.note note NOTE Installez le package qui fournit les php-fpmpour la version PHP prise en charge par la version Adobe Commerce que vous installez. Les noms de packages varient selon le référentiel et le système d’exploitation. Voir Configuration requise . -
Supprimez les commentaires de la ligne de
cgi.fix_pathinfoet définissez la valeur sur0. -
Modifiez le fichier pour qu’il corresponde aux lignes suivantes :
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote note NOTE Adobe recommande de définir la limite de mémoire sur 2 Go lors du test d’Adobe Commerce. Pour plus d’informations, voir Paramètres PHP requis. -
Supprimez les commentaires du répertoire de chemin de session et définissez le chemin d’accès :
code language-conf session.save_path = "/var/lib/php/session" -
Enregistrez et quittez l’éditeur.
-
Ouvrez
/etc/php-fpm.d/www.confdans un éditeur. -
Modifiez le fichier pour qu’il corresponde aux lignes suivantes :
code language-conf user = nginx group = nginx listen = /run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660 -
Supprimez les commentaires des lignes d’environnement :
code language-conf env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp -
Enregistrez et quittez l’éditeur.
-
Créez un répertoire pour le chemin de session PHP et modifiez le propriétaire en utilisateur et groupe
nginx:code language-bash mkdir -p /var/lib/php/session/code language-bash chown -R nginx:nginx /var/lib/php/ -
Créez un répertoire pour le socket PHP-FPM et remplacez le propriétaire par l'utilisateur et le groupe
nginx:code language-bash mkdir -p /run/php-fpm/code language-bash chown -R nginx:nginx /run/php-fpm/ -
Démarrez le service
php-fpmet configurez-le pour qu'il démarre au démarrage :code language-bash systemctl start php-fpmcode language-bash systemctl enable php-fpm -
Vérifiez que le service
php-fpmest en cours d’exécution :code language-bash netstat -pl | grep php-fpm.sock
Installation et configuration de MySQL
Voir MySQL pour plus d’informations.
Installation d’Adobe Commerce
Vous pouvez télécharger Adobe Commerce de plusieurs façons :
Cet exemple illustre une installation basée sur le compositeur à l’aide de la ligne de commande .
-
Connectez-vous à votre serveur d’applications en tant que propriétaire du système de fichiers.
-
Passez au répertoire docroot du serveur web ou à un répertoire que vous avez configuré en tant qu'hôte virtuel docroot. Pour cet exemple, utilisez la
/usr/share/nginx/htmlpar défaut de CentOS.code language-bash cd /usr/share/nginx/html -
Installez Composer globalement. Le compositeur est nécessaire pour mettre à jour les dépendances avant d’installer Adobe Commerce :
code language-bash curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer -
Créez un projet Composer à l’aide du métapaquet Adobe Commerce.
code language-bash composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
code language-bash composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>A l’invite, saisissez vos clés d’authentification. Votre clé publique est votre nom d’utilisateur ; votre clé privée est votre mot de passe.
-
Définissez les autorisations de lecture et d’écriture pour le groupe de serveurs web avant d’installer l’application. Cela est nécessaire pour que la ligne de commande puisse écrire des fichiers dans le système de fichiers.
code language-bash cd /usr/share/nginx/html/<magento install directory>code language-bash find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +code language-bash find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +code language-bash chown -R :nginx . # CentOScode language-bash chmod u+x bin/magento -
Installez à partir de la ligne de commande. Cet exemple suppose que le répertoire d’installation est nommé
magento2eeet que l’hôte de base de données se trouve sur le même ordinateur (localhost) :code language-bash bin/magento setup:install \ --base-url=http://localhost/magento2ee \ --db-host=localhost \ --db-name=<db-name> \ --db-user=<db-user> \ --db-password=<db-password> \ --backend-frontname=<backend-uri> \ --admin-firstname=<admin-first-name> \ --admin-lastname=<admin-last-name> \ --admin-email=<admin-email> \ --admin-user=<admin-user> \ --admin-password=<admin-password> \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 -
Basculez vers le mode Développeur :
code language-bash cd /usr/share/nginx/html/magento2/bincode language-bash ./magento deploy:mode:set developer
Configurer Nginx
Nous vous recommandons de configurer Nginx en utilisant le fichier nginx.conf.sample dans le répertoire d'installation et votre configuration d'hôte virtuel Nginx.
nginx.conf.sample fournit le routage d’application requis ainsi que des règles de renforcement de la sécurité. Par exemple, elle limite l’exécution des scripts nuisibles chargés sur le serveur. Si vous n’utilisez pas ce fichier ou ne modifiez pas ses règles, vous êtes responsable de l’implémentation de contrôles de sécurité équivalents dans votre configuration d’onglets personnalisés.Ces instructions supposent que vous utilisez l’emplacement par défaut de CentOS pour l’hôte virtuel Nginx, tel que /etc/nginx/conf.d, et la racine docroot par défaut, telle que /usr/share/nginx/html. Vous pouvez modifier ces emplacements en fonction de votre environnement.
-
Créez un hôte virtuel pour votre site :
code language-bash vim /etc/nginx/conf.d/magento.conf -
Ajoutez la configuration suivante :
code language-conf upstream fastcgi_backend { server unix:/run/php-fpm/php-fpm.sock; } server { listen 80; server_name www.magento-dev.com; set $MAGE_ROOT /usr/share/nginx/html/magento2; include /usr/share/nginx/html/magento2/nginx.conf.sample; }note note NOTE La directive includedoit pointer vers l'exemple de fichier de configuration nginx dans votre répertoire d'installation. -
Remplacez
www.magento-dev.compar votre nom de domaine. -
Enregistrez et quittez l’éditeur.
-
Vérifiez que la syntaxe est correcte :
code language-bash nginx -t -
Redémarrez Nginx :
code language-bash systemctl restart nginx
Configuration de SELinux et du pare-feu
SELinux est activé par défaut sur CentOS 7. Utilisez la commande suivante pour confirmer qu’il est en cours d’exécution :
sestatus
Pour configurer SELinux et le pare-feu :
-
Installez les outils de gestion SELinux :
code language-bash yum -y install policycoreutils-python -
Exécutez les commandes suivantes pour modifier le contexte de sécurité du répertoire d'installation :
code language-bash semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/app/etc(/.*)?'code language-bash semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/var(/.*)?'code language-bash semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/media(/.*)?'code language-bash semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/static(/.*)?'code language-bash restorecon -Rv '/usr/share/nginx/html/magento2/' -
Installez le package de pare-feu :
code language-bash yum -y install firewalld -
Démarrez le service de pare-feu et configurez-le pour qu'il démarre au démarrage :
code language-bash systemctl start firewalldcode language-bash systemctl enable firewalld -
Exécutez les commandes suivantes pour ouvrir les ports HTTP et HTTPS afin de pouvoir accéder à l’URL de base à partir d’un navigateur web :
code language-bash firewall-cmd --permanent --add-service=httpcode language-bash firewall-cmd --permanent --add-service=httpscode language-bash firewall-cmd --reload
Vérification de l’installation
Pour vérifier l’installation, ouvrez un navigateur web et accédez à l’URL de base de votre site. Pour plus d’informations, voir Vérification de l’installation.