Magento est une plate-forme de commerce électronique d'entreprise de premier plan 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.
Ceci est le premier article de la série Comment installer et configurer Magento 2 sur CentOS 7. Dans ce tutoriel, nous vous guiderons à travers les étapes d'installation de Magento 2 sur votre machine CentOS 7.
Prérequis #
Comme prérequis pour suivre ce tutoriel, vous aurez besoin de :
- Serveur CentOS 7, selon la configuration système officielle de Magento 2, vous avez besoin d'au moins 2 Go de RAM. Si vous utilisez un serveur avec moins de 2 Go de RAM, vous devez créer un fichier d'échange.
- Connecté en tant qu'utilisateur avec des privilèges sudo.
- Un nom de domaine pointant vers l'adresse IP de votre serveur public. Dans ce tutoriel, nous utiliserons
example.com
. - Installation et configuration de Nginx, MySQL et PHP 7.1. Si ce n'est pas le cas, consultez notre guide LEMP sur CentOS 7.
- Un certificat SSL valide. Si vous n'en avez pas, vous pouvez créer un certificat SSL Let's Encrypt gratuit en suivant Secure Nginx avec Let's Encrypt sur CentOS 7.
Paire de clés d'accès Magento #
Nous devons générer des clés d'accès pour authentifier l'accès au référentiel de code Magento 2 et aux extensions et thèmes tiers.
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'accès.
Créer la base de données MySQL #
Magento 2 est compatible avec MySQL 5.6 et 5.7, MariaDB 10.x et Percona 5.7. Si MySQL ou MariaDB n'est pas installé sur votre serveur, vous pouvez consulter ce guide.
Connectez-vous au shell MySQL :
mysql -u root -p
Et exécutez les commandes suivantes pour créer une nouvelle base de données et un nouvel utilisateur et accordez des privilèges à cet utilisateur sur la base de données nouvellement créée :
CREATE DATABASE magento;
GRANT ALL ON magento.* TO magento@localhost IDENTIFIED BY 'P4ssvv0rD';
Installer les extensions PHP #
Nous supposons que vous avez déjà activé le référentiel PHP 7.1 Remi à l'aide de notre guide.
Installez toutes les extensions PHP requises avec la commande suivante :
sudo yum install php-mysql php-opcache php-xml php-mcrypt php-gd php-soap php-redis php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip
Une fois l'installation terminée, 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 = 756M/" /etc/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php.d/10-opcache.ini
Installer le compositeur #
Composer est un gestionnaire de dépendances pour PHP qui est utilisé pour installer, mettre à jour et gérer les bibliothèques.
Pour installer composerglobally, téléchargez le programme d'installation de Composer avec curl
et déplacez le fichier vers /usr/local/bin
répertoire :
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Créer un nouveau numéro d'utilisateur système
Créez un nouvel utilisateur et groupe, qui exécutera notre installation Magento, pour plus de simplicité nous nommerons notre utilisateur magento
:
sudo useradd -m -U -r -d /opt/magento magento
Ajouter le nginx
utilisateur au magento
groupand changer le /opt/magento
autorisations de répertoire pour que le Nginx puisse accéder à notre installation Magento :
sudo usermod -a -G magento nginx
sudo chmod 750 /opt/magento
Configurer PHP FPM #
Ensuite, nous devons configurer PHP et créer un pool FPM pour notre magento
utilisateur.
Ouvrez votre éditeur de texte et créez le fichier suivant :
/etc/php-fpm.d/magento.conf[magento]
user = magento
group = nginx
listen.owner = magento
listen.group = nginx
listen = /run/php-fpm/magento.sock
pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /
Enregistrez le fichier et redémarrez le service PHP FPM pour que les modifications prennent effet :
sudo systemctl restart php-fpm
Installer Magento #
Il existe plusieurs façons d'installer Magento. É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. Dans ce didacticiel, nous allons installer Magento à partir de leurs référentiels à l'aide de composer.
Passez à l'utilisateurmagento
:
sudo su - magento
Démarrez l'installation en téléchargeant les fichiers magento sur /opt/magento/public_html
répertoire :
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html
Lors de la création du projet, le compositeur vous demandera de saisir les clés d'accès, de copier les clés de votre compte marketplace Magento et de 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: e758ec1745d190520ca246e4e832e12c
Password:
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn]
Une fois le projet créé, nous pouvons commencer l'installation. Nous pouvons installer Magento soit en utilisant la ligne de commande, soit en utilisant 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 notre 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 passeP4ssvv0rD
, et le serveur de base de données se trouve sur le même hôte que le serveur Web. en_US
, 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="P4ssvv0rD"
N'oubliez pas de changer le mot de passe (j0hnP4ssvv0rD
) à quelque chose de plus sûr. Si l'installation réussit, un message contenant l'URI du tableau de bord d'administration de Magento s'affichera.
[Progress: 485 / 485]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1csalp
Nothing to import.
Créer le 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
Nous pouvons vérifier que la crontab est installée en exécutant :
crontab -l
#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php /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/php /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d
Configurer Nginx #
Si vous avez suivi notre guide LEMP sur CentOS 7, Nginx devrait déjà être installé sur votre machine. Il ne nous reste plus qu'à créer un nouveau bloc serveur pour notre installation Magento. Nous allons inclure la configuration Nginx par défaut livrée avec magento :
/etc/nginx/conf.d/example.com.confupstream fastcgi_backend {
server unix:/run/php-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;
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;
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;
}
Rechargez le service Nginx pour que les modifications prennent effet :
sudo systemctl reload nginx
Enfin, vous devriez pouvoir vous connecter à votre installation Magento sur https://example.com/admin_1csalp
en utilisant l'utilisateur admin que vous avez spécifié lors de l'exécution du programme d'installation de Magento.