GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Magento 2 sur Ubuntu 18.04

Magentois est la plate-forme de commerce électronique de classe entreprise leader basée sur une technologie open source combinant des fonctionnalités puissantes avec une flexibilité et une interface conviviale.

Avec des fonctionnalités telles que des expériences d'achat engageantes, une architecture modulaire flexible et une évolutivité et des performances de niveau entreprise, Magento est une plate-forme de choix pour la plupart des marchands en ligne.

Dans ce tutoriel, nous allons vous montrer comment installer Magento 2.3 sur une machine Ubuntu 18.04. Nous utiliserons Nginx comme serveur Web, le dernier PHP 7.2 et MySQL/MariaDB comme serveur de base de données.

Prérequis #

Assurez-vous que vous avez satisfait aux prérequis suivants avant de poursuivre ce didacticiel :

  • Avoir un nom de domaine pointant vers l'adresse IP de votre serveur public. Nous utiliserons example.com .
  • Nginx est installé sur votre serveur Ubuntu en suivant ces instructions.
  • Un certificat SSL installé pour votre domaine afin de chiffrer les informations de l'utilisateur. Vous pouvez installer un certificat SSL Let's Encrypt gratuit en suivant ces instructions.

Pour pouvoir accéder au référentiel de code Magento 2, vous devrez générer des clés d'authentification. Si vous n'avez pas de compte Magento Marketplace, vous pouvez en créer un ici. Une fois le compte créé, veuillez consulter ces instructions pour savoir comment générer un nouveau jeu de clés d'authentification.

Mettez à jour les packages système vers les dernières versions et installez l'utilitaire de décompression :

sudo apt update && sudo apt upgradesudo apt install unzip

Création de la base de données MySQL #

Si vous avez installé MySQL ou MariaDB sur votre serveur, vous pouvez ignorer cette étape, sinon vous pouvez installer le package de serveur MySQL 5.7 à partir des référentiels par défaut d'Ubuntu en tapant :

sudo apt install mysql-server mysql-client
Pour les nouvelles installations de MySQL, il est recommandé d'exécuter le mysql_secure_installation commande pour améliorer la sécurité de votre serveur MySQL.

Connectez-vous au shell MySQL à l'aide de la commande suivante :

sudo mysql

Depuis le shell MySQL, exécutez l'instruction SQL suivante pour créer une nouvelle base de données nommée magento :

CREATE DATABASE magento;

Ensuite, créez un compte utilisateur MySQL nommé magento et accordez les autorisations nécessaires à l'utilisateur en exécutant la commande suivante :

GRANT ALL ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Assurez-vous de modifier change-with-strong-password avec un mot de passe fort.

Une fois cela fait, quittez la console MySQL en tapant :

EXIT;

Création du numéro d'utilisateur système

Créez un nouvel utilisateur et groupe, qui sera le propriétaire du système de fichiers Magento , pour plus de simplicité nous nommerons l'utilisateur magento :

sudo useradd -m -U -r -d /opt/magento magento

Ajoutez le www-data utilisateur au magento groupe et changez le /opt/magento autorisations de répertoire pour que le Nginx puisse accéder à l'installation de Magento :

sudo usermod -a -G magento www-datasudo chmod 750 /opt/magento

Installation et configuration de PHP #

PHP 7.2, qui est la version PHP par défaut dans Ubuntu 18.04, est entièrement pris en charge et recommandé pour Magento 2.3. Puisque nous utiliserons Nginx comme serveur Web, nous installerons également le package PHP-FPM.

Exécutez la commande suivante pour installer PHP et tous les modules PHP requis :

sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap

Le service PHP-FPM démarrera automatiquement une fois le processus d'installation terminé, vous pouvez le vérifier en imprimant l'état du service :

sudo systemctl status php7.2-fpm

La sortie doit indiquer que le service fpm est actif et en cours d'exécution.

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-12-12 15:47:16 UTC; 5s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 16814 (php-fpm7.2)
   Status: "Ready to handle connections"
    Tasks: 3 (limit: 505)
   CGroup: /system.slice/php7.2-fpm.service

Définissez les options PHP requises et recommandées en modifiant le php.ini fichier avec sed ::

sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini

Ensuite, nous devons créer un pool FPM pour le magento utilisateur.

Ouvrez votre éditeur de texte et créez le fichier suivant :

sudo nano /etc/php/7.2/fpm/pool.d/magento.conf
/etc/php/7.2/fpm/pool.d/magento.conf
[magento]
user = magento
group = www-data
listen.owner = magento
listen.group = www-data
listen = /var/run/php/php7.2-fpm-magento.sock
pm = ondemand
pm.max_children =  50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /

Redémarrez le service PHP-FPM pour que les modifications prennent effet :

systemctl restart php7.2-fpm

Vérifiez si le socket PHP a bien été créé en exécutant la commande ls suivante :

ls -al /var/run/php/php7.2-fpm-magento.sock

Le résultat devrait ressembler à ceci :

srw-rw---- 1 magento www-data 0 Dec 12 16:07 /var/run/php/php7.2-fpm-magento.sock=

Installation de Composer #

Composer est un gestionnaire de dépendances pour PHP et nous l'utiliserons pour télécharger le noyau Magento et installer tous les composants Magento nécessaires.

Pour installer composerglobally, téléchargez le programme d'installation de Composer avec curland déplacez le fichier vers /usr/local/bin répertoire :

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Vérifiez l'installation en imprimant la version composer :

composer --version

Le résultat devrait ressembler à ceci :

Composer version 1.8.0 2018-12-03 10:31:16

Installation de Magento #

Il existe plusieurs façons d'installer Magento 2. Évitez d'installer Magento à partir du référentiel Github car cette version est destinée au développement et non aux installations de production.

Au moment de la rédaction de cet article, la dernière version stable de Magento est la version 2.3.0 . Dans ce didacticiel, nous allons installer Magento à partir de leurs référentiels à l'aide de composer.

Passez à l'utilisateurmagento en tapant :

sudo su - magento

Lancez l'installation en téléchargeant les fichiers magento dans le répertoire /opt/magento/public_html :

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html

Vous serez invité à entrer les clés d'accès, à copier les clés de votre compte de marché Magento et à les stocker dans le auth.json fichier, ainsi plus tard lors de la mise à jour de votre installation, vous n'aurez pas à ajouter à nouveau les mêmes clés.

    Authentication required (repo.magento.com):
      Username: e758ec1745d190320ca246e4e832e12c
      Password: 
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y

La commande ci-dessus récupérera tous les packages PHP requis. Le processus peut prendre quelques minutes et s'il réussit, la fin de la sortie devrait ressembler à ceci :

Writing lock file
Generating autoload files

Une fois le projet créé, nous pouvons démarrer l'installation de Magento. Nous pouvons installer Magento soit à partir de la ligne de commande, soit à l'aide de l'assistant de configuration Web. Dans ce tutoriel, nous allons installer Magento en utilisant la ligne de commande.

Nous utiliserons les options suivantes pour installer la boutique Magento :

  • Les URL sécurisées de base et de base sont définies sur https://example.com , remplacez-le par votre domaine.
  • Administrateur Magento :
    • John Doe comme prénom et nom.
    • [email protected] par e-mail.
    • John comme nom d'utilisateur et j0hnP4ssvv0rD comme mot de passe.
  • Nom de la base de données magento , nom d'utilisateur magento , mot de passe change-with-strong-password et le serveur de base de données se trouve sur le même hôte que le serveur Web.
  • en_US , l'anglais américain comme langue par défaut.
  • USD dollars comme devise par défaut.
  • America/Chicago comme fuseau horaire.
Vous pouvez trouver toutes les options d'installation ici.

Passez à Magento ~/public_html répertoire :

cd ~/public_html

Exécutez la commande suivante pour démarrer l'installation :

php bin/magento setup:install --base-url=https://example.com/ \
        --base-url-secure=https://example.com/ \
        --admin-firstname="John" \
        --admin-lastname="Doe" \
        --admin-email="[email protected]" \
        --admin-user="john" \
        --admin-password="j0hnP4ssvv0rD" \
        --db-name="magento" \
        --db-host="localhost" \
        --db-user="magento" \
        --currency=USD \
        --timezone=America/Chicago \
        --use-rewrites=1 \
        --db-password="change-with-strong-password"
N'oubliez pas de changer le mot de passe (j0hnP4ssvv0rD ) à quelque chose de plus sûr.

Le processus peut prendre quelques minutes et une fois terminé, un message contenant l'URI du tableau de bord d'administration de Magento s'affichera.

[Progress: 773 / 773]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_13nv5k
Nothing to import.

Création de crontab Magento #

Magento utilise des tâches cron pour planifier des tâches telles que la réindexation, les notifications, les plans de site, les e-mails, etc.

Pour créer la crontab Magento, exécutez la commande suivante en tant que magento utilisateur :

php ~/public_html/bin/magento cron:install
Crontab has been generated and saved

Vérifiez que la crontab est installée en tapant :

crontab -l
#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /opt/magento/public_html/var/log/magento.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d

Configuration de Nginx #

À présent, vous devriez déjà avoir Nginx avec certificat SSL installé sur votre serveur Ubuntu, sinon vérifiez les prérequis pour ce tutoriel.

Nous allons inclure la configuration Nginx par défaut livrée avec Magento.

Passez à votre utilisateur sudo, ouvrez votre éditeur de texte et créez le fichier suivant :

sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
upstream fastcgi_backend {
  server   unix:/var/run/php/php7.2-fpm-magento.sock;
}

server {
    listen 80;
    server_name example.com www.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    set $MAGE_ROOT /opt/magento/public_html;
    set $MAGE_MODE developer; # or production

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    include /opt/magento/public_html/nginx.conf.sample;
}
N'oubliez pas de remplacer example.com par votre domaine Magento et de définir le chemin correct vers les fichiers de certificat SSL. Les extraits utilisés dans cette configuration sont créés dans ce guide.

Avant de redémarrer le service Nginx faites un test pour vous assurer qu'il n'y a pas d'erreurs de syntaxe :

sudo nginx -t

S'il n'y a pas d'erreurs, la sortie devrait ressembler à ceci :

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

Enfin, redémarrez le service Nginx en tapant :

sudo systemctl restart nginx

Vérification du numéro d'installation

Ouvrez votre navigateur, tapez votre domaine et en supposant que l'installation est réussie, un écran similaire au suivant apparaîtra :

Vous pouvez maintenant accéder à l'URI d'administration de Magento, vous connecter en tant qu'utilisateur administrateur et commencer à personnaliser votre nouvelle installation de Magento.


Ubuntu
  1. Comment installer PHP 7.4 / 7.3 / 7.2 sur Ubuntu 18.04 / Ubuntu 16.04

  2. Comment installer Magento2 sur Ubuntu 16.04

  3. Comment installer PHP 7 sur Ubuntu 14.04

  4. Comment installer PHP 7 sur Ubuntu 15.04

  5. Comment installer Magento sur Ubuntu 18.04

Comment installer Magento sur Ubuntu 15.10

Comment installer Magento sur Ubuntu 16.04 LTS

Comment installer Magento sur Ubuntu 18.04 LTS

Comment installer OwnCloud sur Ubuntu 18.04

Comment installer Joomla sur Ubuntu 18.04

Comment installer Magento sur Ubuntu 20.04