Magento 2 : Les extensions à désactiver par défaut

Tutoriel publié le 02/06/2019, mis à jour le 18/07/2019.

 

Voici, par version de Magento 2, les extensions qui peuvent être désactivées par défaut.

Magento 2.1.17

Pour terminer, lancer la commande :

Magento 2.2.8

Pour terminer, lancer la commande :

Magento 2.2.9

Pour terminer, lancer la commande :

Magento 2.3.1

Pour terminer, lancer la commande :

Magento 2.3.2

Pour terminer, lancer la commande :

Magento 2 : Comment mettre en place Let’s Encrypt et Varnish

Pré-requis

  • Disposer d’un serveur sous Linux Debian 9 avec NGINX
  • Avoir installer Magento 2.2.x
  • Avoir une connexion au serveur par SSH ou par un Terminal

Objectifs

Mettre en place un certificat SSL Let’s Encrypt et mettre en place le cache Varnish

Tutoriel

Installation et obtention du certificat SSL

Pour obtenir un certificat SSL, il est nécessaire d’installer Certbot. Pour cela, il faut ajouter le dépôt dans le fichier /etc/apt/sources.list :

sudo nano /etc/apt/sources.list

Ajouter à la fin du fichier :

# Certbot
deb http://deb.debian.org/debian stretch-backports main contrib non-free
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free

Procéder à l’installation de Certbot :

sudo apt-get update && sudo apt install python-certbot-nginx -t stretch-backports

Dès que l’installation est terminée, il faut obtenir le certificat :

sudo certbot --nginx -d nomdedomaine.com -d www.nomdedomaine.com

Il faut remplacer nomdedomaine.com et www.nomdedomaine.com par la valeur server_name présent dans le vhost NGINX de l’hébergement souhaité.

Lors de la récupération du certificat SSL, il vous sera demandé de faire votre choix entre No Redirect et Redirect :

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Sélectionner le choix qui vous convient pour finaliser la configuration.

Installation et paramétrage de Varnish

Tout d’abord, il est nécessaire d’installer Varnish :

sudo apt-get install varnish

Accéder ensuite à l’interface d’administraiton de votre site Magento 2, cliquer sur STORES > Configuration > ADVANCED > System > Full Page Cache.

Au lieu de choisir le système de cache Built-in Cache, sélectionner Varnish Cache (Recommended).

Cliquer sur Varnish Configuration et procéder au paramétrage suivant :

  • Access list : Renseigner l’adresse IP du serveur ayant Magento 2 installé
  • Backend host : Renseigner l’adresse IP du serveur ayant Magento 2 installé
  • Backend port : 8080
  • Grace period : 300

Cliquer sur Save Config et exporter le fichier de configuration Varnish en cliquant sur Export VCL for Varnish 4

La version 2.2 de Magento n’est pas compatible avec Varnish 5. Le fichier exporté pour Varnish 5 sera éxécuté avec le moteur Varnish 4.

Une fois le fichier default.vcl téléchargé. Ouvrir, sur le serveur Varnish, le fichier /etc/varnish/default.vcl et remplacer son contenu par le fichier téléchargé.

Avant cela, je vous invite à créer une copie du fichier de configuration par défaut :

sudo cp /etc/varnish/default.vcl /etc/varnish/default.vcl.origin && sudo nano /etc/varnish/default.vcl

Remplacer tout le contenu du fichier par le contenu du fichier de configuration généré par Magento.

Avant d’enregistrer et de fermer le fichier, il faut procéder à quelques modifications.

Remplacer dans backend default, la valeur de l’url probe : .url = "/pub/health_check.php"; par .url = "/health_check.php";

afin d’éviter d’obtenir l’erreur suivante 503 Backend fetch failed.

Rechercher la ligne # Static files caching et commenter l’instruction return (pass); et supprimer les commentaires sur les 3 instructions unset … afin de mettre en cache les fichiers statiques.

Enregistrer et fermer le fichier de configuration.

Sur le serveur NGINX, ouvrir le fichier nginx.conf.sample du site Magento 2 et vérifier la présence de health_check dans l’instruction située après le commentaire # PHP entry point for main application.

Pour finaliser la configuration de Varnish, il est nécessaire de modifier le fichier /lib/systemd/system/varnish.service :

sudo nano /lib/systemd/system/varnish.service

Remplacer la ligne :

ExecStart=/usr/sbin/varnishd -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

par le contenu ci-dessous :

ExecStart=/usr/sbin/varnishd -a :8080 \
    -T localhost:6082 \
    -f /etc/varnish/default.vcl \
    -p thread_pools=4 \
    -p thread_pool_max=1000 \
    -p connect_timeout=300 \
    -p http_resp_hdr_len=65536 \
    -p http_resp_size=98304 \
    -S /etc/varnish/secret \
    -s malloc,1024m

Enregister, et fermer le fic et relancer Varnish :

sudo systemctl daemon-reload && sudo service varnish restart

Vérifier que Varnish est actif avec les paramètres renseignés :

sudo service varnish status

Configuration de Varnish avec Let’s Encrypt

Pour faire fonctionner une boutique en HTTPS avec Varnish, il est faut que NGINX écoute les ports 443, pour cela, il faut modifier le fichier de vhost

sudo nano /etc/nginx/sites-available/votre_fichier_vhost

Remplacer l’instruction listen 80 par listen 8080 et ajouter un bloc server pour le HTTPS, voici le résultat final :

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

server {
    listen 8080;
    server_name nom_de_domaine;
    set $MAGE_ROOT /var/www/dossier_du_site_magento_2;
    include /var/www/dossier_du_site_magento_2/nginx.conf.sample;
}

server {
    listen 443 ssl http2;
    server_name nom_de_domaine;

    fastcgi_param HTTPS on;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/nom_de_domaine/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/nom_de_domaine/privkey.pem;

    if ($scheme = https) {
        set $ssl_offloaded on;
    }

    location / {
        # Renvoi sur le serveur Varnish
        proxy_pass http://adresse_ip_du_serveur_varnish:8080;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Ssl-Offloaded "1";
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Port 443;
        proxy_hide_header X-Varnish;
        proxy_hide_header Via;
        proxy_set_header HTTPS "on";
    }
}

Enregister et fermer le fichier. Tester ensuite la configuration en utilisant la commande sudo nginx -t et redémarrer si il n’y a aucune erreur :

sudo service nginx restart

Avant de terminer, il faut lancer la commande :

sudo php /var/www/dossier_du_site_magento_2/bin/magento setup:config:set --use-secure=1 --use-secure-admin=1 --base-url-secure=https://nom_de_domaine --use-rewrites=1 --http-cache-hosts=adresse_ip_du_serveur_varnish:8080

Vider le cache de Magento :

sudo php /var/www/dossier_du_site_magento_2/bin/magento cache:flush

L’installation et le paramétrage de Varnish avec SSL et terminer.

Debian 9 : Installation de Magento 2.x via Composer

Tutoriel publié le 17/08/2018, mis à jour le 18/07/2019.

 

Pour le tutoriel, j’utilise une machine virtuelle composée de 8 processeurs et de 16 Go de mémoire vive.

Pré-requis

  • Disposer d’un serveur sous Linux Debian 9
  • Avoir une connexion au serveur par SSH ou par un Terminal

Objectifs

Installer Magento 2.1.17, 2.2.8 ou 2.3.2 depuis Composer.

Tutoriel

Installation des composants indispensables

Pour installer Magento, il est nécessaire d’avoir les composants suivants :

  • Curl
  • Nginx
  • MariaDB
  • PHP 7.0 FPM ou PHP 7.1 FPM ou PHP 7.2 FPM

Attention, la version 2.1.x de Magento ne fonctionne que sous PHP 7.0 ou PHP 7.1 et la version 2.3.x de Magento ne fonctionne que sur PHP 7.1 ou PHP 7.2.

Lancer un Terminal ou une connexion SSH et installer les composants suivants :

Avant d’installer PHP, exécuter les commandes suivantes :

Installer PHP 7.0 FPM :

Installer PHP 7.1 FPM :

Installer PHP 7.2 FPM :

Installer Composer :

Copier le fichier composer.phar dans le dossier bin et modifier les droits pour l’exécution :

Configuration des composants installés

Configurer MariaDB :

Ne pas oublier de créer un utilisateur ainsi que la base de données MySQL, voici la commande de création d’un utilisateur et d’une base de données :

Configurer PHP :

Utiliser la commande suivante pour connaître l’emplacement du fichier de configuration :

Ouvrir le fichier de configuration dans un éditeur :

ou

ou

Rechercher date.timezone, supprimer le commentaire et insérer le timezone suivante « Europe/Paris »

Rechercher memory_limit et modifier la valeur par 2G

Rechercher max_execution_time et modifier la valeur par 1800

Rechercher zlib.output_compression et modifier la valeur par On

Rechercher opcache.save_comments et supprimer le commentaire

Faire de même dans le fichier :

ou

ou

Relancer PHP FPM et Nginx en utilisant la commande :

ou

ou

Installation de Magento 2

Installer Magento 2.1.17 depuis Composer :

Installer Magento 2.2.8 depuis Composer :

Installer Magento 2.3.2 depuis Composer :

Renseigner vos accès à Magento Marketplace.

Ajuster les droits via les commandes suivantes :

Créer le vhost pour Nginx :

Insérer le contenu ci-dessous en remplaçant les valeurs nom_de_domaine.ext et nom_du_dossier :

Pensez à modifier la ligne server unix:/run/php/php7.0-fpm.sock; en fonction de la version de PHP.

Enregistrer et quittez, puis activer le vhost :

Vérifier qu’il n’y a aucune erreur en exécutant la commande :

Puis, relancer Nginx :

 

Installer Magento en suivant le tutoriel : Créer une boutique Magento 2 en ligne de commande

Créer une boutique Magento 2 en ligne de commande

Pré-requis

  • Disposer d’un serveur sous Linux Debian 8
  • Avoir une connexion au serveur par SSH ou par un Terminal
  • Avoir créer une base de données MySQL ou autre compatible avec Magento 2
  • Avoir créer un vhost pour Apache 2 ou Ngnix
  • Avoir télécharger les fichiers Magento 2 nécessaires à l’installation

Objectifs

Créer une boutique Magento 2 en utilisant une ligne de commande

Tutoriel

Lancer la ligne de commande

La ligne de commande est très simple, elle nécessite quelques paramètres obligatoires :

  • –admin-firstname
  • –admin-lastname
  • –admin-email
  • –admin-user
  • –admin-password

Afin de faciliter l’accès à la boutique, il est recommandé d’intégrer les paramètres suivants dans la ligne de commande :

  • –base-url
  • –backend-frontname
  • –db-host
  • –db-name
  • –db-user
  • –db-password

Si vous le souhaitez, d’autres paramètres sont également disponibles, tels que :

  • –language
  • –currency
  • –timezone

La ligne de commande peut maintenant être lancée :

php bin/magento setup:install --base-url=http://url_de_la_boutique/ --backend-frontname=admin --db-host=localhost --db-name=nom_de_la_base_de_données --db-user=utilisateur_de_la_base_de_données --db-password=mot_de_passe_de_la_base_de_données --admin-firstname=prénom_de_l_administrateur --admin-lastname=nom_de_l_administrateur --admin-email=adresse_email_de_l_administrateur --admin-user=identifiant_de_l_administrateur --admin-password=mot_de_passe_de_l_administrateur --language=code_de_langue --currency=devise --timezone=fuseau_horaire

Pour connaître la liste des codes de langue disponibles, la commande est la suivante :

php bin/magento info:language:list

Pour connaître la liste des différentes devises disponibles, la commande est la suivante :

php bin/magento info:currency:list

Pour connaître la liste des fuseaux horaires disponibles, la commande est la suivante :

php bin/magento info:timezone:list

Ressources

http://devdocs.magento.com/guides/v2.1/install-gde/install/cli/install-cli-install.html

Installer le module sample data depuis Git

Pré-requis

  • Avoir installer Git
  • Disposer d’un site Magento 2
  • Avoir accès aux fichiers et dossiers du site Magento 2

Objectifs

Installer le module sample data dans Magento 2 depuis GitHub.

Tutoriel

Cloner le dépôt Git

Créer un dossier sample-data dans /var/www et y accéder :

mkdir /var/www/sample-data && cd /var/www/sample-data

Cloner le dépôt Git au sein du dossier :

git clone -b 2.1 https://github.com/magento/magento2-sample-data.git .

Installer les samples datas

Créer les liens symboliques dans le dossier d’installation de Magento 2:

php -f dev/tools/build-sample-data.php -- --ce-source="/var/www/dossier_magento_2/"

Attribuer les droits :

sudo find . -type d -exec chmod g+ws {} \;

Mettre à jour le site Magento 2

Finaliser l’installation en supprimant les dossiers suivants :

cd /var/www/dossier_magento_2/ && rm -rf var/cache/* var/page_cache/* var/generation/*

Lancer les dernières commandes pour mettre à jour votre boutique :

php bin/magento setup:upgrade && php bin/magento setup:di:compile && php bin/magento indexer:reindex

Installation de Magento 2 sur une distribution Linux Debian 8

Pour le tutoriel, j’utilise une machine virtuelle composée de 4 processeurs et de 4 Go de mémoire vive sous Virtualbox.

Pré-requis

  • Disposer d’un serveur sous Linux Debian 8
  • Avoir une connexion au serveur par SSH ou par un Terminal

Objectifs

Installer Magento 2 depuis le dépôt GIT officiel.

Tutoriel

Installation des composants indispensables

Pour installer Magento 2, il est nécessaire d’avoir les composants suivants :

  • Curl
  • Apache 2
  • MariaDB
  • PHP 7
  • Git
  • Node.js
  • Grunt

Lancer un Terminal ou une connexion SSH, se connecter avec l’utilisateur « root ».

PHP 7 n’étant pas dans les dépôts officiels de Debian, il est nécessaire d’ajouter le dépôt maintenu par dotdeb.org. Pour cela, lancer les commandes suivantes :

echo "deb http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.list
wget -O- https://www.dotdeb.org/dotdeb.gpg | apt-key add -
apt update

S’authentifier en tant qu’administrateur du serveur :

su nom_de_l'administrateur

Installer les composants :

sudo apt-get install -y curl git apache2 mariadb-server mariadb-client php7.0 php-curl php7.0-gd imagemagick php7.0-intl php7.0-intl php7.0-xsl php7.0-mbstring libapache2-mod-php7.0 mcrypt php7.0-mcrypt php-xml php-soap php7.0-zip php7.0-mysql

Installer Node.js :

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

Finisser par l’installation de Grunt :

sudo npm install -g grunt-cli

Installer Composer :

php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"

Visiter le site (Composer Public Keys / Signatures) suivant et copier la clé SHA-384.

Coller la clé SHA-384 à la place de sha_384_string dans la commande ci-dessous :

php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === 'sha_384_string') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"

Lancer la commande pour terminer l’installation :

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Configuration des composants installés

Activer le mode rewrite d’Apache et redémarrer le service :

sudo a2enmod rewrite && sudo service apache2 restart

Configurer MariaDB :

sudo mysql_secure_installation

Ne pas oublier de créer un utilisateur et une base de données dans MySQL, voici la commande de création d’un utilisateur et d’une base de données :

CREATE USER 'nom_de_l'utilisateur'@'%' IDENTIFIED BY '***';GRANT USAGE ON *.* TO 'nom_de_l'utilisateur'@'%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS `nom_de_la_bdd`;GRANT ALL PRIVILEGES ON `nom_de_la_bdd`.* TO 'nom_de_l'utilisateur'@'%';

Changer le propriétaire du dossier /var/www/ et modifier les droits :

sudo chown -R www-data:www-data /var/www/
sudo chmod -R 775 /var/www/

Installation de Magento 2

Au préalable, créer un nouvel utilisateur

sudo adduser nom_de_l'utilisateur

Ajouter l’utilisateur précédemment créé dans le groupe www-data :

sudo usermod -g www-data nom_de_l'utilisateur

Changer d’utilisateur :

su nom_de_l'utilisateur

Créer un dossier boutique dans /var/www/ :

mkdir /var/www/nom_du_dossier && cd /var/www/nom_du_dossier/

Créer le vhost pour Apache :

sudo nano /etc/apache2/sites-available/nom_du_fichier.conf
sudo a2ensite nom_du_fichier.conf && sudo service apache2 restart

Installer Magento 2 depuis Git :

cd /var/www/nom_du_dossier/ && git clone -b 2.1 https://github.com/magento/magento2.git .

Modifier le fichier composer.json et remplacer la ligne :

"fabpot/php-cs-fixer": "~1.2"

par :

"friendsofphp/php-cs-fixer": "~2.0"

Lancer la commande :

composer update

Attribuer les droits aux différents dossiers :

sudo find . -type d -exec chmod 755 {} \; && sudo find . -type f -exec chmod 644 {} \; && sudo chmod u+x bin/magento; sudo chmod -R g+w ./{pub,var}; sudo chmod -R g+s ./{pub,var} && chmod -R 775 app/etc/

Ouvrir le site dans un navigateur pour finaliser l’installation.

Magento 2 : Les extensions utiles

Tutoriel publié le 02/06/2019.

 

MagePal Reindex

Très utile pour ré-indexer depuis l’interface d’administration.

Pour terminer, lancer la commande :

MagePal Gmail SMTP

Pour mieux paramétrer l’envoi des emails.

Pour terminer, lancer la commande :

Experius Email Catcher

Permet d’avoir un suivi des emails envoyés. Attention, le module n’est pas compatible avec Magento 2.1.x

Pour terminer, lancer la commande :

MagePlaza : French Language Pack

Permet d’obtenir une version française de l’interface consommateur et de l’administration.

Pour terminer, lancer la commande :

Magehost : Performance Dashboard

Vous indique quelles sont les paramètres de performances à ajuster.

Pour terminer, lancer la commande :

Pour installer en 1 seule fois les modules ci-dessus, lancer la commande :