GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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 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, je vais vous 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 serveur. Si vous n'avez pas encore de configuration minimale du serveur, veuillez consulter ce didacticiel pour obtenir une configuration de base appropriée.

Prérequis

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

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

Étape 1 - Installer Nginx sur Ubuntu 18.04 LTS

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

Connectez-vous au serveur, mettez à jour le référentiel et mettez à niveau tous les packages.

sudo apt update
sudo apt upgrade

Installez 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émarrez le service Nginx et activez-le pour qu'il se lance à chaque démarrage du système.

systemctl start nginx
systemctl enable nginx

Le serveur Web Nginx a été installé, vérifiez-le à l'aide de la commande netstat et assurez-vous que le port HTTP 80 est à l'état 'LISTEN'. Une autre méthode consiste à utiliser la commande curl comme ci-dessous.

netstat -plntu
curl -I localhost

Étape 2 - Installer et configurer PHP-FPM 7.1

Après l'installation du serveur Web Nginx, nous installerons 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-maths
  • ctype
  • boucle
  • dom
  • gd, ImageMagick 6.3.7 (ou version ultérieure) ou les deux
  • international
  • mbstring
  • mcrypt
  • hachage
  • openssl
  • PDO/MySQL
  • SimpleXML
  • savon
  • spl
  • libxml
  • xsl
  • zip
  • json
  • iconv

Pour ce guide, nous allons installer les packages PHP-FPM à partir du référentiel PPA. Nous utiliserons le dépôt 'ondrej/php'.

Installez le package 'software-properties-common' et ajoutez le dépôt 'ondrej/php' en utilisant les commandes ci-dessous.

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

Installez 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érifiez la version de PHP et les extensions installées à l'aide des commandes PHP.

php -v
php -me

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

Modifiez les fichiers php.ini à l'aide de vim.

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

Modifiez la valeur de ces lignes comme ci-dessous.

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

Enregistrez et quittez.

Redémarrez maintenant le service PHP-fpm et activez-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érifiez le service à l'aide de la commande netstat.

netstat -pl | grep php

Et vous obtiendrez le fichier chaussettes PHP-fpm comme ci-dessous.

Étape 3 - Installer et configurer le serveur MySQL

Le logiciel Magento nécessite MySQL 5.6.x, et Magento 2.1.2 ou version ultérieure nécessite MySQL 5.7.x. Dans ce didacticiel, nous allons installer le dernier serveur MySQL 5.8 sur le système Ubuntu 18.04.

Installez 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émarrez le service MySQL et activez-le pour qu'il se lance à chaque démarrage du système.

systemctl start mysql
systemctl enable mysql

Nous allons maintenant configurer le mot de passe root MySQL à l'aide de la commande 'mysql_secure_installation'.

mysql_secure_installation

Dans cette version MySQL 5.8, il y a une amélioration de la sécurité pour la politique de mot de passe MySQL. Vous devez choisir la politique de mot de passe - 0 pour la politique BASSE, 1 pour la politique MOYENNE et 2 pour une politique de mot de passe FORT.

Pour ce guide, nous utiliserons la politique de mot de passe "MOYEN", et il est recommandé d'utiliser la politique de mot de passe "FORT" sur le serveur de production.

Choisissez le numéro '1' et appuyez sur Entrée, puis tapez votre nouveau mot de passe MySQL 'root'.

 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 est '[email protected]#'.

Connectez-vous au shell MySQL en utilisant l'utilisateur root.

mysql -u root -p

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

create database magentodb;
create user [email protected] identified by '[email protected]#';
grant all privileges on magentodb.* to [email protected] identified by '[email protected]#';
flush privileges;

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

Étape 4 - Installer et configurer Magento 2

Dans cette étape, nous allons installer la dernière version de Magento 2.2.4 à partir du référentiel Github. Nous allons installer le compositeur PHP pour installer les composants Magento, télécharger Magento à partir du référentiel Github, configurer l'hôte virtuel Nginx pour Magento et installer Magento à l'aide de la post-installation basée sur le Web.

- Installer PHP Composer

Installez 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érifiez la version de composer installée sur le système.

composer -V

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

- Télécharger Magento 2

Accédez au répertoire '/var/www' et téléchargez le code source de l'archive Magento depuis Github à l'aide de la commande wget.

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

Extrayez maintenant le fichier d'archive Magento et renommez 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

Installez les composants Magento à l'aide du composeur PHP. Allez dans le répertoire 'magento2' et installez 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, vous obtiendrez le résultat comme indiqué ci-dessous.

- Générer SSL Letsencrypt

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

sudo apt install letsencrypt -y

Une fois l'installation terminée, arrêtez le service nginx.

systemctl stop nginx

Générez maintenant les certificats SSL pour le nom de domaine à l'aide de la commande certbot comme ci-dessous.

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

Tapez votre adresse e-mail, acceptez les conditions d'utilisation de Letsencrypt, puis tapez 'N' pour le partage d'e-mails.

Une fois terminé, vous obtiendrez le résultat ci-dessous.

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

- Configurer l'hôte virtuel Nginx

Allez dans le répertoire '/etc/nginx/sites-available' et créez un nouveau fichier d'hôte virtuel 'magento' à l'aide de vim.

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

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

Enregistrez la configuration et quittez.

Activez maintenant l'hôte virtuel en créant le lien symbolique du fichier de l'hôte virtuel Magento vers le répertoire 'sites-enabled'.

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

Testez le fichier de configuration nginx et assurez-vous qu'il n'y a pas d'erreur.

nginx -t

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

systemctl restart php7.1-fpm
systemctl restart nginx

Et changez le propriétaire du répertoire racine Web de Magento en utilisateur et 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

Ouvrez le navigateur Web et saisissez l'URL de Magento. Le mien est :

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

Pour les "Conditions d'utilisation", cliquez sur le bouton "Accepter et configurer Magento".

Vérifiez maintenant toute la configuration du système et du serveur pour Magento 'Readlines Check', et assurez-vous qu'il "passe" toutes les vérifications du système et de la configuration comme ci-dessous.

Cliquez maintenant sur le bouton "Suivant".

Configuration de la base de données pour Magento - saisissez toutes nos informations de base de données et cliquez sur "Suivant".

Pour la configuration Web, changez l''adresse du magasin' en HTTPS, 'Adresse d'administration Magento' avec l'URL de votre chemin d'administration et décochez les 'Apache Rewrites', car nous utilisons le serveur Web Nginx.

Cliquez à nouveau sur le bouton "Suivant".

Laissez « Personnaliser votre boutique » par défaut et cliquez sur « Suivant ».

Saisissez votre nom d'utilisateur et votre mot de passe administrateur, puis cliquez sur "Suivant".

Et cliquez sur le bouton "Installer maintenant" pour installer Magento.

Et lorsque l'installation est terminée, vous obtiendrez le résultat "succès" comme ci-dessous.

Nous devons maintenant désactiver l'accès en écriture pour le répertoire '/var/www/magento2/app/etc'. Exécutez 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 - Tester

Tapez l'adresse d'accueil de l'URL de Magento et assurez-vous d'obtenir la page d'accueil par défaut de Magento. Le mien est :https://magento.hakase-labs.pw/

Connectez-vous maintenant au tableau de bord d'administration de Magento en visitant l'URL définie lors de l'installation 'admin_hakase'. Le mien est :

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

Tapez le nom d'utilisateur et le mot de passe, puis cliquez sur le bouton "Connexion".

Et vous obtiendrez le tableau de bord d'administration de Magento comme ci-dessous.

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 vous obtenez une erreur concernant un cronjob d'indexeur Magento manquant, vous pouvez 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érifiez maintenant le script crontab de liste pour l'utilisateur 'www-data'.

crontab -u www-data -l


Ubuntu
  1. Comment installer et configurer ownCloud avec Apache sur Ubuntu 18.04

  2. Comment installer Magento 2 sur Ubuntu 18.04

  3. Comment installer Nextcloud avec Nginx sur Ubuntu 18.04 LTS

  4. Comment installer Magento 2 avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

  5. Comment installer Nginx avec PHP5 et MySQL sur Ubuntu 11.10

Comment installer Django avec PostgreSQL et Nginx sur Ubuntu 16.04

Comment installer Bolt CMS avec Nginx sur Ubuntu 20.04

Comment installer plusieurs WordPress avec Nginx sur Ubuntu 18.04

Comment installer et configurer Magento 2 sur Ubuntu 18.04

Comment installer et configurer Magento 2.3.0 sur Ubuntu 18.04

Comment installer LetsEncrypt avec Nginx sur Ubuntu 15.04