Magento est un logiciel de commerce électronique open source largement utilisé et un système de gestion de contenu pour les sites Web de commerce électronique basé sur 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, nous allons vous montrer étape par étape comment installer Magento 2 sur la dernière version Ubuntu 20.04. Nous installerons Magento sous la pile LEMP, le serveur Web Nginx, PHP-FPM 7.3 et le serveur MariaDB.
Exigences
Pour ce tutoriel, nous allons installer Magento 2 sur le système Ubuntu 20.04 avec 2 Go de RAM, 50 Go d'espace disque libre et 2 processeurs.
Qu'allons-nous faire ?
- Installer le serveur Web Nginx
- Installer et configurer PHP-FPM 7.3
- Installer et configurer le serveur MySQL
- Installer PHP Composer
- Télécharger et installer Magento
- Générer SSL Letsencrypt
- Configurer Nginx Virtualhost pour Magento
- Post-installation de Magento
Étape 1 - Installer le serveur Web Nginx
Tout d'abord, nous allons installer le serveur Web Nginx sur le système Ubuntu 20.04.
Installez Nginx à l'aide de la commande apt ci-dessous.
sudo apt install nginx
Une fois l'installation terminée, démarrez le service Nginx et ajoutez-le au démarrage du système.
systemctl start nginx
systemctl enable nginx
Après cela, vérifiez l'état du service Nginx à l'aide de la commande suivante.
systemctl status nginx
Le serveur Web Nginx est opérationnel sur le serveur Ubuntu 20.04.
Ensuite, nous allons ouvrir les ports HTTP et HTTPS sur notre système Ubuntu.
Exécutez la commande ufw ci-dessous.
for svc in ssh http https
do
ufw allow $svc
done
Par conséquent, les services SSH, HTTP et HTTPS ont été ajoutés à la règle de pare-feu ufw.
Exécutez maintenant l'activation du pare-feu ufw à l'aide de la commande suivante.
ufw enable
Tapez 'y' et appuyez sur Entrée, et vous avez activé le pare-feu ufw.
Étape 2 - Installer et configurer PHP-FPm 7.3
Après avoir installé le serveur Web Nginx, nous installerons le PHP-FPM sur notre serveur Ubuntu 20.04.
Par défaut, Ubuntu 20.04 est livré avec la dernière version de PHP/PHP-FPM 7.4. Mais pour l'instant, le Magento ne fonctionne qu'avec PHP/PHP-FPM 7.3. Et dans cette étape, nous allons installer PHP-FPM 7.3 à partir du référentiel PPA.
Avant d'aller plus loin, installez le package 'software-properties-common' et ajoutez le référentiel PPA pour PHP 7.3 à l'aide de la commande suivante.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
Le "add-apt-repository" mettra automatiquement à jour tous les référentiels du système.
Installez maintenant les packages PHP-FPM 7.3 à partir du référentiel PPA à l'aide de la commande apt ci-dessous.
sudo apt install php7.3-fpm php7.3-common php7.3-curl php7.3-cli php7.3-mysql php7.3-gd php7.3-xml php7.3-json php7.3-intl php-pear php7.3-dev php7.3-common php7.3-mbstring php7.3-zip php7.3-soap php7.3-bcmath php7.3-opcache -y
Et l'installation de PHP-FPM 7.3 est terminée.
Après cela, allez dans le répertoire '/etc/php/7.3' et modifiez la configuration 'php.ini' pour PHP-FPM.
cd /etc/php/7.3/
vim fpm/php.ini
Décommentez et modifiez la configuration comme ci-dessous.
date.timezone = Asia/Singapore
memory_limit = 1G
max_execution_time = 1800
zlib.output_compression = On
cgi.fix_pathinfo = 0
opcache.enable=1
opcache.save_comments = 1
Enregistrez et fermez.
Ensuite, démarrez le service PHP-FPM et ajoutez-le au démarrage du système.
systemctl start php7.3-fpm
systemctl enable php7.3-fpm
Le service PHP-FPM est opérationnel, vérifiez-le à l'aide de la commande ci-dessous.
ss -xa | grep php
systemctl status php7.3-fpm
En conséquence, le PHP-FPM est opérationnel sur le serveur Ubuntu 20.04, il s'exécute sous le fichier sock '/run/php/php7.3-fpm.sock'.
Étape 3 - Installer et configurer le serveur MariaDB
Dans cette étape, nous allons installer le serveur de base de données MariaDB, configurer le mot de passe root par défaut pour MariaDB et créer une nouvelle base de données et un nouvel utilisateur pour Magento.
Installez les packages MariaDB Server sur Ubuntu 20.04 à l'aide de la commande apt ci-dessous.
sudo apt install mariadb-server
Une fois l'installation terminée, démarrez le service MariaDB et ajoutez-le au démarrage du système.
systemctl start mariadb
systemctl enable mariadb
Le service MariaDB est opérationnel.
Ensuite, nous allons configurer le mot de passe root de MariaDB à l'aide de l'utilitaire 'mysql_secure_instalaltion'.
Exécutez la commande 'mysql_secure_instalaltion' ci-dessous.
mysql_secure_installation
Tapez votre mot de passe fort pour l'utilisateur root de MariaDB et tapez 'Y' pour toute la configuration.
Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
En conséquence, le mot de passe root MariaDB a été configuré.
Ensuite, nous allons créer une nouvelle base de données et un nouvel utilisateur pour l'installation de Magento.
Connectez-vous au shell MariaDB/MySQL à l'aide de la commande mysql ci-dessous.
mysql -u root -p
Créez maintenant une nouvelle base de données pour notre installation Magento. Créez la base de données 'magentodb' et l'utilisateur 'magentouser' avec le mot de passe 'magentodbpass'.
Exécutez les requêtes MySQL ci-dessous.
create database magentodb;
create user [email protected]'localhost' identified by 'magentopassdb';
grant all privileges on magentodb.* to [email protected]'localhost';
flush privileges;
Tapez maintenant 'exit' pour vous déconnecter du shell MySQL.
En conséquence, l'installation de la nouvelle base de données et de l'utilisateur pour Magento est terminée.
Étape 4 - Installer Composer
Composer est un gestionnaire de dépendances pour PHP. il s'agit d'un gestionnaire de packages au niveau de l'application pour PHP qui vous permet de télécharger des dépendances et des bibliothèques PHP supplémentaires dans votre projet PHP.
Dans cette étape, nous allons installer PHP Composer à partir du référentiel Ubuntu.
Installez Composer à l'aide de la commande apt ci-dessous.
sudo apt install composer -y
Une fois l'installation terminée, vérifiez la version de composer ci-dessous.
composer --version
Vous trouverez ci-dessous la réponse que vous obtiendrez.
Composer 1.10.1 2020-03-13 20:34:27
Comme on peut le voir, Composer 1.10 a été installé sur le serveur Ubuntu 20.04.
Étape 5 - Télécharger et installer Magento 2
Dans cette étape, nous allons télécharger et installer Magento 2 et tous les packages PHP nécessaires à l'aide de Composer.
Tout d'abord, allez dans le répertoire '/var/www/' et téléchargez le code source de Magento 2.3.5 CE (Community Edition) en utilisant la commande wget comme ci-dessous.
cd /var/www/
wget -q https://github.com/magento/magento2/archive/2.3.5.tar.gz
Une fois que tout est terminé, extrayez le code source de Magento et renommez le répertoire extrait en répertoire 'magento2'.
tar -xf 2.3.5.tar.gz
mv magento2-*/ magento2/
Ensuite, allez dans le répertoire d'installation de Magento '/var/www/magento2' et installez toutes les dépendances des packages PHP pour Magento en utilisant la commande Composer comme ci-dessous.
cd /var/www/magento2/
composer install
Une fois toute l'installation terminée, fixez la propriété du répertoire d'installation de Magento 2 à l'utilisateur 'www-data'.
chown -R www-data:www-data /var/www/magento2
En conséquence, l'installation de Magento 2 et de toutes les dépendances de packages est terminée.
Étape 6 - Générer SSL Letsencrypt
Pour ce tutoriel, nous allons sécuriser l'installation de Magento 2 à l'aide du SSL Letsencrypt. Et dans cette étape, nous allons générer le SSL Letsencrypt à l'aide de la commande certbot. Assurez-vous également que votre nom de domaine correspond à l'adresse IP du serveur.
Installez l'outil certbot à l'aide de la commande apt ci-dessous.
sudo apt install certbot
Une fois l'installation terminée, arrêtez le service Nginx.
systemctl stop nginx
certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d magento.hakase-labs.io
Une fois que tout est terminé, vous obtiendrez vos certificats SSL dans le répertoire '/etc/letsencrypt/live/magento.your-domain.com'.
En conséquence, l'installation de SSL Letsencrypt pour Magento 2 a été générée.
Étape 7 - Configurer Nginx Virtualhost pour Magento 2
Dans cette étape, nous ajouterons une nouvelle configuration d'hôte virtuel Nginx pour Magento 2.
Allez dans le répertoire '/etc/nginx/sites-available/' et créez une nouvelle configuration 'magento' à l'aide de l'éditeur vim.
cd /etc/nginx/sites-available/
vim magento
Collez-y la configuration suivante.
upstream fastcgi_backend {
server unix:/run/php/php7.3-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name magento.hakase-labs.io;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name magento.hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.io/privkey.pem;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer;
include /var/www/magento2/nginx.conf.sample;
}
Enregistrez et fermez.
Ensuite, activez l'hôte virtuel Magento Nginx et testez la configuration nginx, et assurez-vous qu'il n'y a pas d'erreur.
ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
nginx -t
Redémarrez maintenant le service Nginx à l'aide de la commande suivante.
systemctl restart nginx
En conséquence, la configuration de l'hôte virtuel Nginx pour Magento 2 a été créée et activée.
Étape 8 - Post-installation de Magento
Ouvrez votre navigateur Web et saisissez votre nom de domaine d'installation Magento dans la barre d'adresse.
https://magento.hakase-labs.io/
Vous serez maintenant redirigé vers la connexion sécurisée HTTPS et vous obtiendrez la page d'accueil et les conditions d'utilisation de Magento.
Cliquez sur 'Accepter et configurer Magento ' pour continuer.
Sur la page "Vérification de l'état de préparation", assurez-vous que toutes les exigences sont en vert et cliquez sur "Suivant ' bouton.
Tapez les détails de la base de données MariaDB et l'utilisateur que nous avons créé ci-dessus et cliquez sur 'Suivant '.
Pour la 'Configuration Web', changez tous les protocoles HTTP en HTTPS et assurez-vous de changer l''Adresse d'administration Magento'.
Maintenant, cliquez sur "Options avancées" et cochez toutes les options HTTPS, puis décochez l'option "Apache réécrit" et cliquez sur "Suivant ' à nouveau.
Ensuite, sur la configuration Magento "Customize Your Store", laissez-la par défaut et cliquez sur "Suivant ' bouton.
Tapez maintenant les détails de l'utilisateur administrateur, de l'e-mail et du mot de passe. Cliquez ensuite sur Suivant bouton.
Cliquez sur "Installer maintenant" bouton pour installer votre boutique Magento 2.
Maintenant, assurez-vous que toutes les installations n'ont pas d'erreur.
Une fois toute l'installation terminée, vous obtiendrez 'Réussite ' comme ci-dessous.
Cliquez sur 'Lancer l'administration Magento ' pour vous connecter à votre tableau de bord d'administration Magento.
Tapez maintenant votre utilisateur et votre mot de passe administrateur Magento, puis cliquez sur 'Connexion' et vous obtiendrez le tableau de bord d'administration de Magento comme ci-dessous.
Pour la page d'index par défaut de Magento, ouvrez un nouvel onglet et saisissez votre nom de domaine dans la barre d'adresse.
Ci-dessous se trouve la page d'index par défaut de Magento.
En conséquence, l'installation de Magento 2 est terminée.
Ensuite, revenez à votre shell de serveur et nous configurerons le Magento Cron et supprimerons l'autorisation d'écriture de certains répertoires d'installation de Magento.
Pour configurer le cron Magento, exécutez la commande ci-dessous.
cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --force
Le cron Magento s'exécutera sous l'utilisateur 'www-data', vérifiez-le à l'aide de la commande suivante.
crontab -u www-data -l
En conséquence, le Magento Cron a été ajouté au système.
Ensuite, nous devons supprimer l'autorisation d'écriture du répertoire '/var/www/magento2/app/etc'.
Exécutez la commande chmod ci-dessous.
chmod u-w /var/www/magento2/app/etc
Et enfin, l'installation de Magento 2 avec le serveur Web Nginx, le serveur MariaDB, PHP-FPM 7.3 sur le dernier Ubuntu 20.04 s'est terminée avec succès.