Comment installer Magento 2 avec Nginx et Letsencrypt sur Ubuntu 18.04

Magento est un logiciel de commerce électronique Open Source largement utilisé et un système de gestion de contenu pour les sites de commerce électronique basé sur le PHP Zend Framework. Il utilise MySQL ou MariaDB comme backend de base de données. Le développement de Magento a été lancé en 2008 par Varien.

Dans ce tutoriel, je vais te montrer comment installer Magento 2 avec Nginx, PHP 7.1 FPM et MySQL comme base de données. J’utiliserai ubuntu 18.04 (Bionic Beaver) comme système d’exploitation du serveur. Si tu n’as pas encore de configuration minimale de serveur, consulte ce tutoriel pour obtenir une configuration de base correcte.

Conditions préalables

  • Ubuntu 18.04
  • 2 Go de mémoire RAM ou plus
  • Privilèges de racine

Ce que nous allons faire

  1. Installer Nginx sur Ubuntu 18.04
  2. Installer et configurer PHP-FPM 7.1
  3. Installer et configurer le serveur MySQL
  4. Installer et configurer Magento 2
    1. Installer PHP Composer
    2. Télécharger Magento 2
    3. Installer les composants Magento
    4. Générer SSL Letsencrypt
    5. Configurer l’hôte virtuel Nginx pour Magento
    6. Post-installation de Magento
  5. Tester

Étape 1 – Installer Nginx sur Ubuntu 18.04 LTS

Dans ce tutoriel, nous utiliserons le serveur Web Nginx pour notre installation Magento.

Connecte-toi au serveur, mets à jour le référentiel et mets à niveau tous les paquets.

sudo apt update
sudo apt upgrade

Installe maintenant le serveur Web Nginx à l’aide de la commande apt ci-dessous.

sudo apt install nginx -y

Une fois l’installation terminée, démarre le service Nginx et active-le pour qu’il se lance à chaque fois au démarrage du système.

systemctl start nginx
systemctl enable nginx

Le serveur Web Nginx a été installé, vérifie-le à l’aide de la commande netstat et assure-toi que le port HTTP 80 est à l’état ‘LISTEN’. Tu peux aussi utiliser la commande curl comme ci-dessous.

netstat -plntu
curl -I localhost

Installe le serveur web Nginx

Étape 2 – Installe et configure PHP-FPM 7.1

Après l’installation du serveur Web Nginx, nous allons installer PHP 7.1 sur le serveur car Magento ne prend pas encore en charge PHP 7.2. Nous installerons PHP-FPM avec toutes les extensions nécessaires à Magento 2.

Liste des extensions PHP nécessaires à l’installation de Magento 2 :

  • bc-math
  • ctype
  • curl
  • dom
  • gd, ImageMagick 6.3.7 (ou plus récent) ou les deux
  • intl
  • mbstring
  • mcrypt
  • hachage
  • openssl
  • PDO/MySQL
  • SimpleXML
  • soap
  • spl
  • libxml
  • xsl
  • zip
  • json
  • iconv

Pour ce guide, nous allons installer les paquets PHP-FPM à partir du dépôt PPA. Nous utiliserons le dépôt ‘ondrej/php’.

Installe le paquet ‘software-properties-common’ et ajoute le dépôt ‘ondrej/php’ à l’aide des commandes ci-dessous.

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y

Installer PHP 7.1

Installe maintenant PHP-FPM 7.1 avec toutes les extensions nécessaires.

sudo apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath -y

Une fois l’installation terminée, vérifie la version de PHP et les extensions installées à l’aide des commandes PHP.

php -v
php -me

Vérifie l'installation de PHP

Ensuite, nous allons configurer le fichier php.ini pour le PHP-FPM et le PHP-CLI.

Modifie les fichiers php.ini à l’aide de vim.

vim /etc/php/7.1/fpm/php.ini
vim /etc/php/7.1/cli/php.ini

Change la valeur de ces lignes comme ci-dessous.

memory_limit = 512M
max_execution_time = 180
zlib.output_compression = On

Sauvegarde et quitte.

Redémarre maintenant le service PHP-fpm et active-le pour qu’il se lance chaque fois au démarrage du système.

systemctl restart php7.1-fpm
systemctl enable php7.1-fpm

L’installation et la configuration de PHP-FPM 7.1 sont terminées, vérifie le service à l’aide de la commande netstat.

netstat -pl | grep php

Et tu obtiendras le fichier socks de PHP-fpm comme ci-dessous.

Vérifie le socket PHP-FPM

Étape 3 – Installe et configure le serveur MySQL

Le logiciel Magento nécessite MySQL 5.6.x, et Magento 2.1.2 ou plus récent nécessite MySQL 5.7.x. Dans ce tutoriel, nous allons installer le dernier serveur MySQL 5.8 sur le système Ubuntu 18.04.

Installe MySQL 5.8 à l’aide de la commande apt ci-dessous.

sudo apt install mysql-server mysql-client -y

Une fois l’installation terminée, démarre le service MySQL et active-le pour qu’il se lance à chaque fois au démarrage du système.

systemctl start mysql
systemctl enable mysql

Nous allons maintenant configurer le mot de passe de la racine de MySQL à l’aide de la commande ‘mysql_secure_installation’.

mysql_secure_installation

Dans cette version de MySQL 5.8, il y a une amélioration de la sécurité pour la politique de mot de passe MySQL. Tu dois choisir la politique de mot de passe – 0 pour la politique FAIBLE, 1 pour la politique MOYENNE et 2 pour une politique de mot de passe FORTE.

Pour ce guide, nous utiliserons la politique de mot de passe ‘MEDIUM’, et il est recommandé d’utiliser la politique de mot de passe ‘STRONG’ sur le serveur de production.

Choisis le numéro ‘1’ et appuie sur Entrée, puis tape ton nouveau mot de passe MySQL ‘root’.

Secure MySQL installation

 Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Le mot de passe root MySQL a été configuré.

Ensuite, nous allons créer une nouvelle base de données pour notre installation Magento. Nous allons créer une nouvelle base de données nommée ‘magentodb’ avec l’utilisateur ‘magentouser’ et le mot de passe ‘Magento0463@#’.

Connecte-toi au shell MySQL en utilisant l’utilisateur root.

mysql -u root -p

Exécute maintenant les requêtes MySQL ci-dessous pour créer la base de données et l’utilisateur.

create database magentodb;
create user magentouser@localhost identified by 'Magento0463@#';
grant all privileges on magentodb.* to magentouser@localhost identified by 'Magento0463@#';
flush privileges;

L’installation et la configuration du serveur MySQL pour l’installation de Magento sont terminées.

Crée une base de données MySQL et un utilisateur pour Magento

Étape 4 – Installation et configuration de Magento 2

Dans cette étape, nous allons installer la dernière version de Magento 2.2.4 à partir du dépôt Github. Nous installerons le compositeur PHP pour installer les composants de Magento, téléchargerons Magento depuis le dépôt Github, configurerons l’hôte virtuel Nginx pour Magento et installerons Magento à l’aide de la post-installation basée sur le Web.

– Installer PHP Composer

Installe PHP Composer sur ubuntu 18.04 à l’aide de la commande apt ci-dessous.

sudo apt install composer -y

Une fois l’installation terminée, vérifie la version de Composer installée sur le système.

composer -V

Install PHP composer

La dernière version de PHP Composer a été installée.

– Télécharge Magento 2

Va dans le répertoire ‘/var/www’ et télécharge le code source de l’archive Magento depuis Github en utilisant la commande wget.

cd /var/www/
wget https://github.com/magento/magento2/archive/2.2.4.tar.gz

Extrais maintenant le fichier d’archive Magento et renomme le répertoire en ‘magento2’.

tar -xf 2.2.4.tar.gz
mv magento2-2.2.4/ magento2/

Le code source de Magento a été téléchargé et le répertoire ‘/var/www/magento2’ sera la racine web du site Magento.

– Installer les composants Magento

Installe les composants Magento à l’aide du compositeur PHP. Va dans le répertoire ‘magento2’ et installe tous les composants PHP nécessaires à Magento à l’aide de la commande ‘composer’.

cd /var/www/magento2
composer install -v

Une fois l’installation terminée, tu obtiendras le résultat indiqué ci-dessous.

Vérifie la version du compositeur

– Générer SSL Letsencrypt

Nous allons sécuriser notre installation Magento en utilisant le SSL de Letsencrypt. Installe Letsencrypt à l’aide de la commande apt ci-dessous.

sudo apt install letsencrypt -y

Une fois l’installation terminée, arrête le service nginx.

systemctl stop nginx

Génère maintenant les certificats SSL pour le nom de domaine en utilisant la commande certbot comme ci-dessous.

certbot certonly --standalone -d magento.hakase-labs.pw

Tape ton adresse e-mail, accepte les CGU de Letsencrypt, puis tape ‘N’ pour le partage d’e-mail.

Active le certificat SSL de Let's encrypt

Quand c’est terminé, tu obtiendras le résultat comme ci-dessous.

Problèmes de certificat SSL réussis

Les fichiers du certificat SSL Letsencrypt ont été générés dans le répertoire ‘/etc/letsencrypt/live’.

– Configure l’hôte virtuel Nginx

Va dans le répertoire ‘/etc/nginx/sites-available’ et crée un nouveau fichier d’hôte virtuel ‘magento’ en utilisant vim.

cd /etc/nginx/sites-available/
vim magento

Colle-y la configuration suivante.

upstream fastcgi_backend {
        server  unix:/run/php/php7.1-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;
    server_name magento.hakase-labs.pw;
    return 301 https://$server_name$request_uri;
}

server {

        listen 443 ssl;
        server_name magento.hakase-labs.pw;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem;

        set $MAGE_ROOT /var/www/magento2;
        set $MAGE_MODE developer;
        include /var/www/magento2/nginx.conf.sample;
}

Sauvegarde la configuration et quitte.

Active maintenant l’hôte virtuel en créant le lien symbolique pour le fichier d’hôte virtuel Magento dans le répertoire ‘sites-enabled’.

ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/

Teste le fichier de configuration de nginx et vérifie qu’il n’y a pas d’erreur.

nginx -t

Redémarre maintenant le service PHP-FPM et Nginx.

systemctl restart php7.1-fpm
systemctl restart nginx

Et change le propriétaire du répertoire web-root de Magento pour l’utilisateur et le groupe ‘www-data’.

chown -R www-data:www-data /var/www/magento2/

L’hôte virtuel nginx pour Magento a été ajouté.

– Post-installation de Magento

Ouvre le navigateur Web et tape l’URL de Magento. La mienne est :

https://magento.hakase-labs.pw/

Pour les ‘Conditions et accord’, clique sur le bouton ‘Accepter et installer Magento’.

Installateur web Magento

Vérifie maintenant toute la configuration du système et du serveur pour Magento ‘Readlines Check’, et assure-toi qu’il ‘passe’ tous les contrôles de système et de configuration comme ci-dessous.

Vérifie les conditions préalables

Clique maintenant sur le bouton ‘Suivant’.

Configuration de la base de données pour Magento – saisis toutes nos informations de base de données et clique sur ‘Suivant’.

Configuration de la base de données

Pour la configuration Web, change l’adresse du magasin en HTTPS, l’adresse de l’administrateur Magento en URL de ton chemin d’administration et décoche la case « Réécritures Apache », car nous utilisons le serveur Web Nginx.

Web configuration

Clique à nouveau sur le bouton ‘Suivant’.

Laisse l’option ‘Personnaliser ta boutique’ par défaut et clique sur ‘Suivant’.

Personnalise la boutique Magento

Saisis ton utilisateur et ton mot de passe d’administrateur, puis clique sur ‘Suivant’.

Configuration du compte d'administrateur

Et clique sur le bouton ‘Installer maintenant’ pour installer Magento.

Lance l'installation de Magento

Une fois l’installation terminée, tu obtiendras le résultat ‘success’ comme ci-dessous.

Installation de Magento réussie

Nous devons maintenant désactiver l’accès en écriture pour le répertoire ‘/var/www/magento2/app/etc’. Exécute la commande ci-dessous.

sudo chmod -w /var/www/magento2/app/etc

Magento a été installé sur le serveur Ubuntu 18.04 Bionic Beaver.

Étape 5 – Test

Tape l’adresse URL d’accueil de Magento et vérifie que tu obtiens la page d’accueil par défaut de Magento. La mienne est : https://magento.hakase-labs.pw/

Page d'accueil de Magento

Connecte-toi maintenant au tableau de bord d’administration de Magento en visitant l’URL définie pendant l’installation ‘admin_hakase’. La mienne est :

https://magento.hakase-labs.pw/admin_hakase/

Connexion au backend de Magento

Saisis le nom d’utilisateur et le mot de passe, puis clique sur le bouton « Se connecter ».

Et tu obtiendras le tableau de bord d’administration de Magento comme ci-dessous.

Tableau de bord Magento

Magento 2 a été installé sur Ubuntu 18.04 avec le serveur Web Nginx, la base de données MySQL et PHP-FPM 7.1.

Supplémentaire :

Si tu reçois une erreur concernant un cronjob d’indexeur Magento manquant, tu peux le résoudre en générant le script crontab à l’aide de la commande ci-dessous :

cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --force

Vérifie maintenant le script crontab de la liste pour l’utilisateur ‘www-data’.

crontab -u www-data -l

Configurer le cronjob de l'indexeur de Magento

Référence

Vous aimerez aussi...