Comment installer Magento 2 sur Ubuntu 20.04 LTS

Un guide complet sur la configuration et le déploiement du magasin Magento2 sur un serveur Ubuntu 20.04.

Magento est une plate-forme de commerce électronique populaire construite et écrite en PHP, elle est utilisée par de nombreuses petites entreprises pour vendre des produits et créer une présence en ligne. Il vous permet de créer une boutique en ligne à part entière avec des fonctionnalités telles que la gestion des stocks, les catalogues de produits, l'expédition, la facturation et bien plus encore.

Si vous cherchez à créer une plate-forme d'achat élégante et de qualité professionnelle pour votre entreprise, Magento devrait être un excellent point de départ. Ainsi, dans ce guide, nous verrons comment configurer l'édition communautaire Magento version 2.3 avec la pile LAMP sur un serveur Ubuntu 20.04.

Conditions préalables

Vous aurez besoin d'un serveur Ubuntu 20.04 LTS et connecté en tant que sudo utilisateur autorisé. Vous aurez également besoin d'un nom de domaine pointant vers l'IP de votre serveur Ubuntu 20.04. Nous utiliserons exemple.com partout où le nom de domaine est requis, remplacez-le par votre domaine. Avant de commencer, mettez à jour la liste des packages, puis mettez à niveau les packages sur votre serveur Ubuntu 20.04.

mise à jour sudo apt && mise à jour sudo apt

Installer le serveur Web Apache

Magento nécessite un serveur Web pour fonctionner, dans ce guide, nous avons choisi d'utiliser l'application Magento sur la pile LAMP (Linux, Apache, MySQL, PHP). Nous allons donc installer tous les packages constitués de la pile LAMP.

Le serveur Web Apache est l'un des serveurs Web les plus populaires sur Internet, avec près de 37,2% de la part de marché totale des serveurs Web. Vous pouvez également choisir d'installer Magento sur la pile LEMP qui utilise le serveur Web Nginx au lieu d'Apache. Mais dans ce guide, nous allons déployer notre serveur Megento à l'aide d'Apache.

Pour installer le serveur Web Apache, exécutez la commande ci-dessous :

sudo apt installer apache2

Saisissez votre mot de passe utilisateur et appuyez sur Oui si vous y êtes invité. Une fois l'installation terminée, nous devons configurer le pare-feu simple d'Ubuntu (UFW) pour autoriser le trafic sur le port 80 & 443.

L'UFW est livré avec des profils préconfigurés qui peuvent être basculés pour permettre à l'application d'accéder aux ports de votre serveur Ubuntu 20.04. Ainsi, lorsque vous avez installé le serveur Web Apache, des profils UFW appelés « Apache », « Apache complet » et « Apache sécurisé » ont été ajoutés à la liste des applications UFW. Autoriser le serveur Web Apache à servir sur le port 80 & 443 en exécutant:

sudo ufw autorise 'Apache Full'

Maintenant, tout ce que nous avons à faire est d'activer l'UFW, mais avant cela, assurez-vous que vous avez autorisé le port 22 (SSH). Si vous ne modifiez pas les règles SSH UFW, vous risquez d'être bloqué hors de votre serveur Ubuntu 20.04.

sudo ufw autorise 'OpenSSH'

Enfin, activez le pare-feu UFW en exécutant :

sudo ufw activer

presse Oui si vous recevez une invite indiquant que la commande pourrait perturber les connexions SSH, car nous avons déjà ajouté une règle pour autoriser SSH à passer. Vous pouvez maintenant accéder au serveur Web Apache via votre navigateur, saisissez l'adresse IP de votre serveur Ubuntu 20.04 dans la barre d'URL et appuyez sur Entrée.

page par défaut d'apache2 ubuntu

Installer le serveur MySQL

Vous aurez également besoin d'un serveur de base de données pour exécuter Magento car c'est là que tout le contenu de la boutique Magento est stocké. Nous allons installer le serveur MySQL et créer un utilisateur appelé magentouser et une base de données appelée magento pour le Magento.

Le package MySQL s'appelle serveur mysql dans les référentiels Ubuntu, installez-le en exécutant :

sudo apt installer mysql-server

Ensuite, nous devons configurer correctement les paramètres de sécurité MySQL. Heureusement, le package MySQL est livré avec un script de sécurité qui facilite la configuration du serveur MySQL. Alors, exécutez ce script en exécutant la commande suivante :

sudo mysql_secure_installation

Plusieurs questions vous seront posées, voici les paramètres optimaux pour le serveur MySQL :

  • Souhaitez-vous configurer le composant VALIDATE PASSWORD ?[y/n] : Entrez Oui
  • Il existe trois niveaux de politique de validation de mot de passe.
    • Veuillez saisir 0 = FAIBLE, 1 = MOYEN et 2 = FORT : saisissez 2
  • Veuillez définir le mot de passe pour root ici.
    • Nouveau mot de passe : saisissez un mot de passe pour l'utilisateur root MySQL.
    • Saisissez à nouveau le nouveau mot de passe : répétez le mot de passe que vous avez choisi.
  • Supprimer les utilisateurs anonymes ? [o/n] : Entrez Oui
  • Interdire la connexion root à distance ? [o/n] : Entrer Oui
  • Supprimer la base de données de test et y accéder ? [o/n] : Entrer Oui
  • Recharger les tables de privilèges maintenant ? [o/n] : Entrer Oui

Ensuite, pour vérifier et valider que le serveur MySQL est installé et fonctionne correctement, connectez-vous au serveur MySQL en tant qu'utilisateur root en :

sudo mysql

Entrez votre sudo mot de passe utilisateur lorsque vous y êtes invité et appuyez sur Entrée. L'utilisateur root de MySQL utilise le unix_socket pour authentifier la connexion. Cela signifie essentiellement que vous devez être un sudo user pour se connecter au serveur MySQL en tant qu'utilisateur root.

Créer une nouvelle base de données et un nouvel utilisateur pour Magento

Nous pouvons maintenant créer un utilisateur MySQL pour Magento et si vous avez suivi chaque étape de ce guide, vous devez avoir la console MySQL ouverte. Créer une base de données appelée magento en entrant la requête suivante dans la console MySQL :

CRÉER UNE BASE DE DONNÉES magento ;

Pour créer un nouvel utilisateur MySQL appelé magentouser, exécutez cette requête dans la console :

CRÉER UN UTILISATEUR 'magentouser'@'%' IDENTIFIÉ AVEC mysql_native_password PAR 'password' ;

Noter: Remplace le le mot de passe dans la requête avec un mot de passe fort de votre choix.

Puis accordez le nouveau magentouser accès complet à la magento base de données:

GRANT ALL ON magento.* TO 'magentouser'@'%' AVEC GRANT OPTION ;

Nous devons définir le log_bin_trust_function_creators paramètre à 1 car il est désactivé dans la dernière version de MySQL et sans l'activer, Magento génère quelques erreurs lors de l'installation. Pour ce faire, exécutez la requête suivante :

SET GLOBAL log_bin_trust_function_creators=1 ;

Enfin, rechargez les privilèges et les paramètres de la base de données que nous avons modifiés et quittez la console en utilisant ces requêtes :

PRIVILÈGES DE FLASH ; SORTIR;

Installer PHP et les extensions requises

Magento nécessite PHP et quelques extensions PHP pour fonctionner. Au moment de la rédaction de cet article, la version de l'édition communautaire de Magento 2.3 ne fonctionne pas avec la dernière version de PHP 7.4 et donc nous devons installer la version PHP 7.3.

Nous devons ajouter un PPA PHP tiers pour pouvoir installer la version PHP 7.3 car les référentiels Ubuntu n'ont que le dernier 7.4 paquets. Ajoutez le PPA et mettez à jour la liste des packages en exécutant ces commandes :

sudo add-apt-repository ppa:ondrej/php && sudo apt update

Installez ensuite PHP 7.3 et tous les modules PHP dont Magento a besoin en exécutant la commande suivante :

sudo apt install php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

Une fois PHP 7.3 installé, nous devons configurer certains paramètres de base recommandés par Magento pour fonctionner correctement. Exécutez cette commande pour ouvrir le fichier de configuration de l'extension FPM à l'aide de nano

sudo nano /etc/php/7.3/fpm/php.ini

Voici quelques-uns des paramètres recommandés pour la plupart des sites Web Magento.

file_uploads = Sur allow_url_fopen = Sur short_open_tag = Sur memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Enregistrez les modifications en appuyant sur Ctrl+O puis quittez l'éditeur nano en appuyant sur Ctrl+X. Nous avons maintenant PHP et toutes les extensions nécessaires et nous pouvons donc passer à Magento.

Installer le compositeur

Composer est un gestionnaire de dépendances PHP qui facilite l'installation de frameworks et de bibliothèques PHP. Nous avons besoin de Composer pour télécharger et installer Magento sur notre serveur Ubuntu 20.04.

Composer requiert un package appelé décompresser pour extraire les bibliothèques et frameworks téléchargés, installez-le en exécutant :

sudo apt installer décompresser

Installez ensuite composer au niveau du système en exécutant cette commande :

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

La commande ci-dessus doit installer le gestionnaire de dépendances Composer sur le serveur Ubuntu 20.04. Vérifiez que Composer est correctement installé en exécutant :

compositeur
 SORTIR:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Compositeur version 1.10.8 2020-06- 24 21:23:30 Utilisation : commande [options] [arguments] 

Télécharger et installer Magento

Nous pouvons maintenant passer au téléchargement et à l'installation de Magento car nous avons installé et configuré tous les packages nécessaires requis par Magento.

Créer un compte Magento

Pour télécharger Magento sur votre serveur Ubuntu 20.04, vous aurez besoin d'une clé d'accès Magento 2. Pour obtenir cette clé d'accès, vous aurez besoin d'un compte Magento. Si vous n'êtes pas inscrit et que vous n'avez pas de compte Magento, rendez-vous sur cette page et cliquez sur « S'inscrire ».

Une fois que vous avez terminé de créer un compte Magento, vous pourrez créer une nouvelle clé d'accès afin de pouvoir télécharger Magento 2 sur votre machine à l'aide de composer. Vous pouvez voir toutes vos clés d'accès Magento sur cette page. S'il n'y a pas de clé d'accès sous l'onglet Magento 2, cliquez sur le bouton « Créer une nouvelle clé d'accès » et donnez-lui un nom, puis appuyez sur « OK ».

Ces clés sont vos informations d'identification utilisées pour télécharger Magento 2 à partir du référentiel Magento via Composer. Nous utiliserons ces clés lorsque nous téléchargerons Magento, mais avant cela, nous allons configurer la propriété et les autorisations du répertoire.

Propriété de pré-installation et configuration des autorisations

Les autorisations de fichier peuvent faire ou défaire la sécurité de n'importe quel site Web, il est donc nécessaire de définir correctement la propriété et l'autorisation de la racine du document du serveur Apache.

Le propriétaire par défaut du /var/www/ est l'utilisateur root, mais nous devons accéder et modifier les fichiers sous ce répertoire. De plus, le serveur Web a également besoin d'accéder à la racine du document pour réécrire et modifier le contenu du site Magento.

Donc, pour résoudre ce problème, nous allons ajouter l'utilisateur actuel au www-données groupe, pour ce faire, exécutez :

sudo usermod -a -G www-data $USER

le -une-G les options sont importantes car elles ajoutent www-données en tant que groupe secondaire du compte utilisateur, ce qui préserve le groupe principal de l'utilisateur. Après avoir ajouté l'utilisateur au groupe de serveurs Web, modifiez le propriétaire de /var/www/ et ses sous-répertoires à l'aide de cette commande :

sudo chown -R $USER:www-data /var/www/

Maintenant que nous avons configuré les autorisations de pré-installation pour Magento, nous pouvons passer au téléchargement dans la racine du document du serveur Web.

Téléchargement de Magento

À ce stade, vous devriez avoir un compte Magento avec des clés d'accès et des autorisations de pré-installation correctement configurés. Nous allons donc utiliser Composer pour télécharger Magento dans la racine du document Apache, puis l'installer.

Changer le répertoire courant en /var/www/ donc le terminal pointe vers lui en exécutant :

cd /var/www/

Exécutez la commande ci-dessous pour créer un nouveau projet à l'aide de Composer appelé magento.

compositeur create-project --repository=//repo.magento.com/magento/project-community-edition magento

Vous serez invité à saisir le nom d'utilisateur et le mot de passe après avoir utilisé la commande ci-dessus. Les clés d'accès que nous avons créées doivent être utilisées ici. Copiez la clé publique et collez-la en tant que nom d'utilisateur, puis copiez de la même manière votre clé privée et collez-la dans le terminal en tant que mot de passe. Puis appuyez Oui pour enregistrer les informations d'identification pour une utilisation future.

 Sortir:  Création d'un projet "magento/project-community-edition" sur "./magento" Avertissement de repo.magento.com : Vous n'avez pas fourni vos clés d'authentification Magento. Pour obtenir des instructions, visitez //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Authentification requise (repo.magento.com) : Nom d'utilisateur : e8b6120dce14c3d982a85525264897c4 Mot de passe : Voulez-vous stocker les informations d'identification pour repo.magento.com dans /home/ath/.config/composer/auth.json ? [Oui] Oui

Une fois Magento et toutes ses dépendances téléchargés via Composer, nous devons également définir la propriété et l'autorisation du nouveau répertoire de projet magento et de ses fichiers. Remplacez le répertoire par la racine du projet Magento en :

cd /var/www/magento/

Modifiez ensuite le propriétaire du groupe du répertoire du projet Magento et de ses sous-répertoires en exécutant :

trouver le fournisseur généré par var pub/static pub/media app/etc -type f -exec chmod g+w {} + && trouver le fournisseur généré par var pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

Cette commande donnera au groupe de serveurs Web (www-données) les autorisations d'écrire dans les répertoires et fichiers du fournisseur, pub/static, pub/media & app/etc. De plus, cela rendra le bin/magento fichier exécutable, afin que nous puissions l'exécuter et installer Magento sur notre système.

Configuration d'Apache pour Magento

Nous allons installer Magento via l'interface graphique, car il est plus intuitif que l'installation CLI dans ce cas. Ainsi, nous devons créer un hôte virtuel pour le serveur Web Apache avant de pouvoir procéder à l'installation de Magento.

Ouvrez le fichier hôte virtuel par défaut d'Apache avec nano à l'aide de la commande suivante :

sudo nano /etc/apache2/sites-available/000-default.conf

Remplacez la racine du document par /var/www/magento et ajoutez l'extrait de code suivant en dessous.

 AllowOverride All ServerName example.com ServerAlias ​​www.example.com

Remplace le exemple.com dans ServerName et ServerAlias ​​avec votre nom de domaine. Les changements dans votre 000-default.conf doit ressembler au texte surligné ci-dessous. Enregistrez les modifications en appuyant sur Ctrl+O et quittez l'éditeur en utilisant Ctrl+X clés.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/magento AllowOverride All ServerName example.com ServerAlias ​​www.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combiné 

Ensuite, nous devons activer un mod Apache appelé comme mod_rewrite requis par Magento. Il fournit un moyen flexible et puissant de manipuler les URL, alors activez le mod en exécutant :

sudo a2enmod réécriture

Redémarrez le serveur Apache afin que toutes les modifications que nous avons apportées soient appliquées au serveur :

sudo systemctl redémarrer apache2

Installer Magento

Nous pouvons enfin procéder à l'installation de Magento, car nous avons tout ce dont Magento a besoin pour fonctionner. Tapez l'adresse IP de votre serveur Ubuntu 20.04 dans la barre d'URL de votre navigateur préféré.

Cliquez sur « Accepter et configurer Magento » pour continuer l'installation de Magento. La première étape du programme d'installation de Magento Web est la vérification de l'état de préparation, il vérifiera que toutes les exigences de Magento sont remplies. Cliquez sur « Démarrer la vérification de l'état de préparation » et une fois le processus terminé, appuyez sur « Suivant ».

La prochaine étape consiste à configurer les détails et à ajouter une base de données pour Magento. Nous avons déjà créé un utilisateur MySQL pour Magento appelé magentouser et une base de données appelée magento dans la section ci-dessus. Remplissez les détails appropriés dans cette section, à savoir le nom d'utilisateur du serveur de base de données, son mot de passe et le nom de la base de données, puis appuyez sur « Suivant » pour continuer.

La troisième étape de la configuration de Magento est la configuration Web. Remplacez l'adresse IP de l'entrée « Adresse de magasin » par votre nom de domaine si vous en avez un. N'oubliez pas de mettre une barre oblique (/) après votre nom de domaine sinon, l'URL de l'adresse Admin devient inaccessible.

Cliquez ensuite sur Options avancées et cochez les deux options HTTPS si vous souhaitez utiliser une connexion sécurisée pour votre site Magento. Conservez le reste des paramètres tels qu'ils sont et appuyez sur suivant.

Noter: Si vous cochez les options HTTPS, vous devrez obtenir des certificats SSL pour cela. Nous verrons comment obtenir des certificats SSL dans la section suivante de ce tutoriel.

Sous les paramètres « Personnaliser votre magasin », il vous suffira de changer le fuseau horaire, la devise par défaut utilisée dans la boutique et la langue par défaut de la boutique en fonction de vos besoins. Regardez autour de ces paramètres et configurez-les si nécessaire sinon cliquez sur suivant pour continuer.

Dans la cinquième étape, vous devrez créer un compte administrateur pour votre tableau de bord Magento Admin. Entrez un nouveau nom d'utilisateur pour votre administrateur et entrez une adresse e-mail fournie par votre fournisseur de nom de domaine. Créez un mot de passe fort pour le compte administrateur, puis appuyez sur suivant lorsque vous avez terminé.

La dernière et dernière étape consiste simplement à cliquer sur le bouton « Installer » pour confirmer les paramètres et commencer le processus d'installation. Une fois l'installation terminée, le programme d'installation de Magento vous montrera le résumé et quelques détails importants sur votre site Magento.

Notez ces détails dans un endroit sûr, comme un enregistrement papier hors ligne ou dans une base de données sécurisée. L'adresse administrateur et la clé de cryptage Magento ne doivent jamais être partagées publiquement. La clé de cryptage est utilisée pour crypter la base de données Magento afin que les données de l'utilisateur soient en sécurité, même en cas de fuite de données.

Créer un certificat SSL pour votre site Magento

Le site Magento est déployé et il est accessible juste après la fin de l'installation. Mais si vous souhaitez servir le trafic Web via HTTPS, vous devrez configurer un certificat SSL pour votre domaine.

Letsencrypt est une autorité de certification à but non lucratif qui fournit des certificats TLS gratuitement. Nous allons utiliser un package appelé certbot ce qui aide à obtenir le certificat et à configurer automatiquement l'hôte virtuel Apache. Exécutez cette commande dans le terminal pour installer certbot :

sudo apt installer certbot python3-certbot-apache

Pour obtenir votre certificat de Letsencrypt et configurer l'hôte virtuel Apache, exécutez la commande suivante :

sudo certbot --apache

Certbot commencera le processus d'obtention des certificats de Letsencrypt, fournira votre adresse e-mail lorsque vous y serez invité, puis appuyez sur la touche Entrée. Ensuite, tapez UNE d'accepter les conditions d'utilisation de Letsencrypt. Il vous sera demandé si vous souhaitez partager votre adresse e-mail avec l'EFF, saisissez Oui ou N selon votre choix.

Ensuite, vous recevrez une liste de noms de domaine pour lesquels vous souhaitez activer HTTPS. Tapez le numéro approprié correspondant à votre nom de domaine et appuyez sur Entrée.

Après avoir sélectionné votre nom de domaine, il vous sera demandé si vous souhaitez rediriger le trafic HTTP vers HTTPS, tapez 2 et appuyez sur Entrée. Certbot va maintenant configurer automatiquement l'hôte virtuel Apache pour le domaine exemple.com.

Le package Certbot est fourni avec cronjob qui renouvelle automatiquement vos certificats de serveur avant leur expiration.Testez si le renouvellement automatique fonctionne en exécutant :

sudo certbot renouveler --dry-run

La sortie ci-dessus signifie que la tâche cron à renouvellement automatique fonctionne correctement. Pour confirmer que Certbot a fonctionné, ouvrez votre navigateur et visitez votre domaine //exemple.com.

De même, vous pouvez accéder à la page de connexion administrateur en utilisant le //exemple.com/admin_SecretString, cette URL était à la fin de l'installation de Magento.

Vous avez maintenant installé avec succès Magento sur le serveur Ubuntu 20.04 LTS et vous pouvez maintenant commencer à personnaliser votre boutique en fonction de vos besoins. Pour en savoir plus sur Magento et en savoir plus sur le développement de magasins, rendez-vous sur la page Magento Docs.