Installation de Magento 2.3 avec Composer, php7.2-fpm, Nginx

Magento 2
Magento 2

Magento est une plateforme de commerce électronique Open Source, créée en Mars 2008. Magento repose sur le Framework Zend. Plus de 250 000 commerçants dans le monde utilisent la plate-forme Magento Commerce, qui représente environ 30 % de la part de marché totale.

Pour php7.2 sur Ubuntu, Magento requiert en particulier les extensions bcmath, bcmath, calendar, Core, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, intl, json, libxml, mbstring, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_mysql, Phar, readline, Reflection, session, SimpleXML, soap, sockets, SPL, standard, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, Zend OPcache, zip, zlib.

Pour verifier cela, on tape $ php -me . On ajoute les extensions maquantes, par exemple pour soap :

Configuration PHP

Le paramètre date.timezone de /etc/php/7.2/fpm/php.ini et /etc/php/7.2/cli/php.ini doit être défini. Si la ligne est commentée, on la décommente et on ajoute le fuseau horaire, par exemple Europe/Paris.

  • fpm: FastCGI Process Manager, pour exécuter php depuis une page web,
  • cli : Command Line Interface, pour exécuter php depuis le serveur.

On règle la limite de mémoire PHP. Les recommandations sont :

  • Compilation de code, génération des assets, 756M
  • Installation et mise à jour de composants Magento depuis le Marketplace, 2G
  • Pour les tests, ~3-4G

On active PHP OpCache et opcache.save_comments, activés par défaut pour php7.2.

On règle un pool php-fpm en ajoutant les paramètres suivants :

Magento authentification key

Pour installer Magento via Composer, on doit obtenir des clés d’authentification. On se connecte au Magento Marketplace, on s’enregistre si ce n’est déjà fait, et on choisit My Profile. On clique sur Access Keys, et l’on crée de nouvelles clés, en enregistrant un nom pour les clés. Les clés générées sont associés à votre compte Magento.

Installation

On crée un répertoire racine pour Magento, et dans ce répertoire $ cd <root-folder> , on exécute :

Pour la suite, mon répertoire racine est /var/www/Magento, avec les droits pour www-data:www-data.

Si l’on veut la version Magento Entreprise, on change project-community-edition par project-enterprise-edition. Il faudra alors des clés d’authentification que l’on peut obtenir sur Magento Marketplace.

Régler les permissions des fichiers

Configuration Nginx

Magento possède un fichier de configuration dans le répertoire racine nginx.conf.sample, il suffit alors de l’inclure dans la configuration Nginx dans sites-available.

/etc/nginx/sites-available/Magento

On crée le lien symbolique dans sites-enabled, on teste la config et on relance Nginx.

On lance l’install en se rendant à l’adresse http://magento.domain.tld. Si tout se passe bien, on obtient l’écran Success à la fin de l’install.

Succès de l'installation de Magento
Succès de l’installation de Magento

Réglages

On se connecte à l’administration en cliquant sur le lien. On peut voir alors :

One or more indexers are invalid. Make sure your Magento cron job is running.

On exécute alors la commande suivante pour les indexers :

One or more of the Cache Types are invalidated: Page Cache. Please go to Cache Management and refresh cache types.

  • On va à System > Cache Management,
  • On clique sur Flush Magento Cache,
  • Puis sur Flush Cache Storage.

Magento cron job

On peut lancer manuellement les taches cron à exécuter, pour tester :

Magento préconise d’exécuter les commandes toutes les minutes, les taches commenceront avec * * * * *. Sur mon petit serveur 4G de mémoire RAM, je choisis de les exécuter 2 fois par jour, donc 30 00,12 * * * : à 0h30 et 12h30 tous les jours.

On installe les taches CRON pour Magento, on peut utiliser la commande suivante pour l’utilisateur www-data :

Sinon, plus manuellement :

Sample data installation

Si l’on veut tester avec des données, on installe les samples :

Magento-2-blog installation (mageplaza)

Magento 2 Blog de Mageplaza est un module de blog intégré dans le backend de Magento. On peut gérer le blog et la boutique e-commerce au même endroit.

log de la commande composer  require mageplaze/magento-2-blog-extension
log de la commande composer require mageplaze/magento-2-blog-extension

Si le cron est réglé pour être lancé toutes les minutes, mon petit serveur reste bloqué sur la première commande : Problème de mémoire pour Composer sur un serveur de RAM 4G. Avec 16G, cela doit mieux se passer, en limitant la mémoire de php-cli à 4G.

Bon, Magento réclame quand même pas de ressources. La mise en cache, et en statique pour la production doit améliorer les choses, mais cela rame vraiment par rapport à PrestaShop. Je choisis donc pour le moment la seconde solution.

Et hop, Magento est installé.

Soumettre un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables.