GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Magento 2 sur Ubuntu 18.04

Magento 2 est le successeur de la puissante plateforme de commerce électronique open source Magento disponible sur vos distributions Linux. Ce tutoriel donnera les étapes pour installer Magento 2 avec Nginx sur Ubuntu 18.04. Ce logiciel est écrit en PHP et utilise Mysql ou MariaDB pour la base de données ce qui signifie que la configuration peut se faire avec LEMP.

Magento 2 est la dernière mise à jour de Magento qui offre quelques améliorations telles que

  • frontend et backend, un pour l'administration et un pour les clients du magasin
  • flexibilité et assistance complète
  • la vitesse du site et les plugins intégrés...

Le diagramme de la base de données de Magento 2 est différent de Magento 1. Certaines tables ont été renommées ou modifiées depuis Magento 1 vers Magento 2

  • core_website - store_website (la structure est modifiée)
  • core_store - magasin (la structure n'est pas modifiée)
  • core_translate - traduction
  • core_url_rewrite - url_rewrite
  • core_store_group - store_group (la structure n'est pas modifiée)
  • core_email_template - email_template
  • admin_role - autorisation_role (la structure est modifiée)
  • admin_rule - autorisation_rule (la structure est modifiée)
  • sales_flat_order - sales_order
  • sales_flat_order_address - sales_order_address
  • sales_flat_order_grid - sales_order_grid
  • sales_flat_order_item - sales_order_item
  • sales_flat_order_payment - sales_order_payment
  • sales_flat_order_status_history - sales_order_status_history
  • coupon_aggregated_order - salesrule_coupon_aggregated_order

Magento ne semble pas être entièrement compatible avec php 7.2 qui est la valeur par défaut installée sur Ubuntu 18.04. Il existe une communauté magento sur GitHub où ils essaient d'implémenter le support de php-7.2 dans Magento.

Vous pouvez ci-dessous les différentes versions de php actuellement compatibles avec magento 2. Vous pouvez voir les autres pré-requis sur le site officiel de magento

1) Installer les pré-requis

Dans notre tutoriel, nous installerons Magento 2 avec Nginx sur Ubuntu 18.04 et nous utiliserons la base de données MySQL. Cela signifie que vous aurez besoin d'avoir un serveur LEMP en cours d'exécution sur votre serveur. Magento nécessite certaines extensions PHP que vous devrez installer

  • 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

Vous devez avoir le software-properties-common qui est déjà présent dans Ubuntu 18.04 et le ondrej/php dépôt que nous allons ajouter

# add-apt-repository ppa:ondrej/php -y

Installez maintenant php 7.1 avec les dépendances

# 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
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  autoconf automake autopoint autotools-dev binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 debhelper dh-autoreconf
  dh-php dh-strip-nondeterminism dpkg-dev fakeroot g++ g++-7 gcc gcc-7
...
...

Veuillez noter que si vous n'installez pas toutes ces dépendances php, vous serez bloqué lors d'une prochaine étape de notre tutoriel.

Editez ensuite les lignes du fichier /etc/php/7.1/fpm/php.ini pour avoir quelque chose comme ci-dessous et assurez-vous d'adapter les valeurs aux vôtres

# vim /etc/php/7.1/fpm/php.ini
file_uploads = On
upload_max_filesize = 150M
memory_limit = 256M
cgi.fix_pathinfo=0
date.timezone = Cameroon/Douala

Redémarrez php 7.1-fpm

# systemctl restart php7.1-fpm

2) Créer la base de données Magento 2

Nous devons maintenant nous connecter à la base de données MySQL afin de créer la base de données pour Magento

# mysql -u root -p
Enter password:

Créez ensuite la base de données magento, l'utilisateur et accordez les privilèges

mysql> CREATE DATABASE magentodb;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'magento'@'localhost' IDENTIFIED BY 'magentodb-password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost' IDENTIFIED BY 'magentodb-password';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

3) Téléchargez et configurez Magento 2

Ce tutoriel montrera l'installation de Magento 2.2.5 qui est en fait la dernière version disponible. Nous allons le télécharger directement depuis le dépôt officiel GitHub de Magento

# wget https://github.com/magento/magento2/archive/2.2.5.tar.gz
--2018-07-13 08:24:37-- https://github.com/magento/magento2/archive/2.2.5.tar.gz
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
Connecting to github.com (github.com)|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 302 Found
...
...

Maintenant, décompressez-le

# tar xvf 2.2.5.tar.gz

Déplacez-le ensuite dans le dossier racine de votre serveur nginx

# mv magento2-2.2.5/ /var/www/html/magento

Assurez-vous de mettre à jour l'autorisation à l'aide de la commande chmod et la propriété à l'aide de la commande chown comme indiqué ci-dessous :

# chown -R www-data:www-data /var/www/html/ && chmod -R 755 /var/www/html/

Vous pouvez également avoir besoin de composer si vous envisagez de développer des extensions Magento. Vous en aurez également besoin si vous souhaitez contribuer à la base de code Magento 2.

# apt install composer -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
jsonlint php-cli-prompt php-composer-ca-bundle 
....
....

Vérifiez ensuite

# composer -V
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer 1.6.3 2018-01-31 16:28:17

Nous pouvons maintenant installer les composants magento avec composer. Cela ne peut être fait que si vous avez installé toutes les exigences php

# cd /var/www/html/magento/ && composer install -v
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Dependency resolution completed in 0.001 seconds
Analyzed 177 packages to resolve dependencies
Analyzed 482 rules to resolve dependencies
Package operations: 117 installs, 0 updates, 0 removals
Installs: magento/magento-composer-installer:0.1.13, braintree/braintree_php:3.28.0, colinmollenhour/cache-backend-file:1.4, colinmollenhour/cache-bac
kend-redis:1.10.4, colinmollenhour/credis:1.8.2
...
...

4) Configurer nginx pour magento

Nous allons maintenant configurer Nginx pour Magento. Vérifiez l'emplacement du socket PHP auquel Nginx se connectera. Alors Lister le contenu du répertoire /var/run/php/

# ls /var/run/php/
php7.1-fpm.pid php7.1-fpm.sock

Modifiez maintenant le fichier de configuration

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

upstream fastcgi_backend {
        server unix:/var/run/php/php7.1-fpm.sock;
}       
        
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name www.mywebstore.com;

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

Vous pouvez enregistrer la configuration, quitter et activer l'hôte virtuel en créant le lien symbolique comme ci-dessous

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

Pour éviter certaines erreurs sur l'hôte virtuel par défaut à utiliser, assurez-vous de modifier le bloc serveur de la configuration par défaut de nginx /etc/nginx/sites-available/default afin de supprimer le default_server mentionner comme ci-dessous

#vim /etc/nginx/sites-available/default

server {
        listen 80;
        listen [::]:80;
        # your others line below
}

Si vous ne le faites pas, vous aurez une erreur similaire à celle ci-dessous

[emerg] 2369#2369: a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/magento:22

montrant que les deux hôtes virtuels ont été considérés comme l'hôte virtuel par défaut à utiliser. Vérifiez la configuration

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Redémarrez maintenant le serveur nginx

# systemctl restart nginx

4) Installation Web complète de l'assistant magento

Vous pouvez maintenant lancer votre navigateur web pour continuer l'installation de Magento http://www.votreboutiqueweb.com puis accepter

Vérifier l'environnement php

Si votre environnement est correct, vous aurez tout en vert

Configurez maintenant la base de données déjà créée avec les informations utilisées précédemment avec la ligne de commande mysql

Configurez l'accès Web. Assurez-vous de conserver l'adresse d'administration de magento. Vous pouvez jeter un œil aux options avancées

Choisissez maintenant la devise, la langue et le fuseau horaire qui seront utilisés par votre boutique

Vous pouvez voir l'option avancée montrant les modules qui seront installés

Configurer le compte administrateur

L'installation peut maintenant démarrer

Vous pouvez maintenant voir un résumé de la configuration. N'oubliez pas les mentions importantes sur cette page pour des raisons de sécurité

Vous verrez maintenant la page de connexion. Entrez vos paramètres d'administration créés auparavant

Vous pouvez voir la page d'accueil du tableau de bord de votre boutique en ligne magento. N'hésitez pas à parcourir chaque fonctionnalité fournie par magento2

Vous pouvez ouvrir la page d'accueil de votre boutique en ligne. C'est la page pour le client

Vous pouvez rencontrer des erreurs au cours du processus, nous couvrirons les éventuelles erreurs qui peuvent survenir.

5) Corrigez quelques erreurs possibles

Au cours du processus, vous pouvez rencontrer des problèmes qui peuvent arrêter l'installation de votre Magento 2. Nous avons donc répertorié quelques erreurs avec les correctifs qui pourraient être appliqués

php FastCGI refusé

Vous pouvez avoir une autorisation refusée en raison du fichier de configuration nginx par défaut de Magento 2 qui ne peut pas fonctionner. En vérifiant votre journal nginx, vous pouvez voir l'erreur ci-dessous

Pour le résoudre, éditez le /var/www/html/magento/nginx.conf.sample /setup location block en ajoutant une ligne spécifique comme ci-dessous

 # vim /var/www/html/magento/nginx.conf.sample

location ~* ^/setup($|/) {
    root $MAGE_ROOT;
    location ~ ^/setup/index.php {

        ### The only line to add is the one below:
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        ###################
        ## Don't change anything else in the file

Redémarrez ensuite nginx. Vous pouvez suivre un fil sur Magento Github à propos de ce problème si vous ne parvenez pas à exécuter la configuration Web sur nginx

Un ou plusieurs indexeurs ne sont pas valides. Assurez-vous que votre tâche cron Magento est en cours d'exécution

En accédant au panneau d'administration pour la première fois, vous pouvez avoir un message concernant les index invalides et le travail cron magento qui ne fonctionnent pas correctement comme ci-dessous

Ici, vous devez réindexer toutes les indexations disponibles dans Magento 2. Pour cela, allez dans le répertoire racine du projet

# cd /var/www/html/magento

et exécutez le CLI magento

# php bin/magento indexer:reindex
Design Config Grid index has been rebuilt successfully in 00:00:00
Customer Grid index has been rebuilt successfully in 00:00:00
Category Products index has been rebuilt successfully in 00:00:00
Product Categories index has been rebuilt successfully in 00:00:00
Catalog Rule Product index has been rebuilt successfully in 00:00:00
Product EAV index has been rebuilt successfully in 00:00:00
Stock index has been rebuilt successfully in 00:00:00
Product Price index has been rebuilt successfully in 00:00:00
Catalog Product Rule index has been rebuilt successfully in 00:00:00
Catalog Search index has been rebuilt successfully in 00:00:00

Maintenant, pour configurer et exécuter cron pour Magento 2, utilisez la commande

# php bin/magento cron:run
Ran jobs by schedule.

Les types de cache sont invalidés

Vous pouvez faire face aux types de cache qui sont invalidés. Le message apparaîtra en haut

Un ou plusieurs des types de cache sont invalidés :Cache de page. Veuillez accéder à la gestion du cache et actualiser les types de cache.
Les raisons de l'invalidation du cache de bloc peuvent provenir de mises à jour de produits, de modifications de règles de prix catalogue et également d'extensions tierces. Certaines tâches cron en cours d'exécution peuvent également entraîner l'invalidation des caches de blocs. La résolution est indiquée dans le message, allez dans système> gestion du cache

Vous verrez tous les types de cache. Cliquez maintenant sur Rincez M agent du cache

A lire aussi :

  • Comment installer la pile LAMP sur Ubuntu 18.04
  • Comment installer PhpMyAdmin avec LAMP sur Ubuntu 18.04

Vous avez les différentes étapes pour avoir un Magento 2 fonctionnel sur Ubuntu 18.04. Le support du php-7.2 ne semble pas prêt mais une communauté magento travaille dans ce sens. Vous pouvez forcer l'adaptation de Magento 2 avec php-7.2 mais, lorsque le support officiel sera prêt, votre patch ne fonctionnera peut-être plus.


Ubuntu
  1. Comment installer et configurer Redis sur Ubuntu 18.04

  2. Comment installer et configurer Redmine sur Ubuntu 18.04

  3. Comment installer Magento 2 sur Ubuntu 18.04

  4. Comment installer et configurer Samba sur Ubuntu 18.04

  5. Comment installer et configurer Redis sur Ubuntu 20.04

Comment installer et configurer Magento 2.3.0 sur Ubuntu 18.04

Comment installer et configurer OpenVAS 9 sur Ubuntu

Comment installer et configurer Redis dans Ubuntu 20.04

Comment installer et configurer Neo4j sur Ubuntu 20.04

Comment installer et configurer le SDK Ubuntu dans Ubuntu 16.04 et 14.04

Comment installer et configurer PostgreSQL sur Ubuntu