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 upgrade
sudo 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-data
sudo 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.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini
sudo 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 etj0hnP4ssvv0rD
comme mot de passe.
- Nom de la base de données
magento
, nom d'utilisateurmagento
, mot de passechange-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.
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.comupstream 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.