Magento est une boutique open source (logiciel e-commerce) et un système de gestion de contenu pour les sites e-commerce basés sur PHP Zend Framework. Magento applique les conventions de la programmation orientée objet et de l'architecture MVC (modèle-vue-contrôleur) et utilise MySQL/MariaDB comme base de données. Le logiciel développé a été lancé en 2008 par Varien Inc. Au cours des dernières années, Magento est devenu une plate-forme de confiance pour les logiciels de commerce électronique qui alimente les entreprises en ligne du monde entier.
Dans ce tutoriel, je vais vous guider à travers l'installation de Magento 2.1. Nous installerons Magento 2.1 avec Nginx et Php7.0-fpm et MySQL comme base de données. À cette fin, j'utiliserai un serveur CentOS 7 avec SELinux activé.
Étape 1 - Installer Nginx
Dans cette étape, nous allons installer Nginx à partir du référentiel epel. Epel n'est pas disponible par défaut, nous devons donc installer le référentiel epel avant d'installer Nginx.
Installez le référentiel epel avec cette commande yum.
yum -y install epel-release
Nous pouvons maintenant installer Nginx à partir du référentiel epel.
yum -y installer nginx
Une fois l'installation terminée, démarrez Nginx et ajoutez-le pour démarrer au démarrage.
systemctl démarrer nginx
systemctl activer nginx
Nginx est démarré sur le port 80, vous pouvez le vérifier avec la commande netstat ci-dessous.
netstat -plntu
Si vous voyez le résultat "commande introuvable", vous pouvez installer net-tools comme celui-ci.
yum -y install net-tools
Étape 2 - Installer et configurer PHP-FPM
Dans ce tutoriel, nous utiliserons PHP-FPM 7 pour l'installation de Magento. J'utiliserai les packages PHP 7 du référentiel Webtatic.
Téléchargez et ajoutez un nouveau référentiel webtatic au système.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Exécutez maintenant la commande ci-dessous pour installer PHP-FPM7 avec tous les packages et extensions nécessaires à l'installation de Magento.
yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-mbstring php70w-zip php70w-soapLorsqu'une installation de PHP-FPM7 est terminée, nous devons la configurer. Nous allons configurer le fichier php.ini et le fichier 'www.conf' de configuration de php-fpm.
Editez php.ini avec vim.
vim /etc/php.iniDécommentez la ligne cgi.fix_pathinfo 762 et changez la valeur en 0.
cgi.fix_pathinfo=0Configurez la limite de mémoire, le temps d'exécution maximum et activez la compression de sortie zlib, assurez-vous de définir les valeurs comme indiqué ci-dessous.
memory_limit =512M
max_execution_time =1800
zlib.output_compression =OnDécommentez le répertoire du chemin de session et modifiez le répertoire comme ci-dessous.
session.save_path ="/var/lib/php/session"Enregistrez et quittez.
Ensuite, éditez le fichier de configuration php-fpm www.conf avec la commande vim.
vim /etc/php-fpm.d/www.confPHP-FPM7 s'exécutera sous l'utilisateur et le groupe 'nginx', changez la valeur en 'nginx' pour les lignes d'utilisateur et de groupe.
utilisateur =nginx
groupe =nginxNous exécuterons php-fpm sous un fichier socket, pas un port serveur. Remplacez la valeur de la ligne d'écoute par le chemin du fichier socket.
écouter =/var/run/php/php-fpm.sockLe fichier de socket doit appartenir à l'utilisateur et au groupe "nginx", décommentez les lignes d'écoute et modifiez les valeurs comme indiqué ci-dessous.
listen.owner =nginx
listen.group =nginx
listen.mode =0660Enfin, décommentez les lignes d'environnement PHP-FPM 366-370.
env[HOSTNAME] =$HOSTNAME
env[PATH] =/usr/local/bin:/usr/bin:/bin
env[TMP] =/tmp
env[ TMPDIR] =/tmp
env[TEMP] =/tmpEnregistrez et quittez.
Ensuite, créez un nouveau répertoire pour le chemin de la session et l'emplacement du fichier de chaussette php. Changez ensuite le propriétaire en utilisateur et groupe 'nginx'.
Créez un nouveau répertoire pour le chemin de la session.
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/Créez un nouveau répertoire pour l'emplacement du fichier socket php-fpm.
mkdir -p /run/php/
chown -R nginx:nginx /run/php/La configuration de PHP-FPM7 est terminée, démarrez le démon maintenant et activez-le au démarrage avec la commande systemctl ci-dessous.
systemctl start php-fpm
systemctl enable php-fpmLorsqu'il n'y a pas d'erreurs, vous pouvez utiliser la commande ci-dessous pour vérifier si php-fpm s'exécute sous le fichier socket.
netstat -pl | grep php-fpm.sock
Étape 3 - Installer le serveur MySQL 5.7
Magento 2.1 nécessite une version actuelle de MySQL, vous pouvez utiliser MySQL 5.6 ou 5.7 pour l'installation. Dans ce tutoriel, nous utiliserons MySQL 5.7 qui peut être installé à partir du référentiel MySQL officiel. Nous devons donc d'abord ajouter le nouveau référentiel MySQL.
Téléchargez et ajoutez le nouveau référentiel MySQL pour l'installation de MySQL 5.7.
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpmInstallez maintenant MySQL 5.7 à partir du référentiel MySQL avec la commande yum ci-dessous.
yum installer mysql-community-serverUne fois l'installation terminée, démarrez mysql et ajoutez-le pour démarrer au démarrage.
systemctl démarrer mysqld
systemctl activer mysqldMySQL 5.7 a été installé avec un mot de passe root par défaut, il est stocké dans le fichier mysqld.log. Utilisez la commande grep pour voir le mot de passe par défaut pour MySQL 5.7. Exécutez la commande ci-dessous.
grep 'temporaire' /var/log/mysqld.log
Maintenant que vous voyez le mot de passe root MySQL actuel, vous devez changer le mot de passe par défaut.
Connectez-vous au shell mysql avec l'utilisateur root et le mot de passe par défaut.
mysql -u root -p
TYPE DE MOT DE PASSE PAR DÉFAUTModifiez le mot de passe root par défaut avec la requête ci-dessous. J'utiliserai ici le nouveau mot de passe "[email protected]". Veuillez choisir un mot de passe sécurisé.
ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]' ;
flush privilèges ;
Le mot de passe root MySQL par défaut a été modifié. Ensuite, nous devons créer un nouvel utilisateur et une nouvelle base de données pour l'installation de Magento.
Nous allons créer une nouvelle base de données nommée 'magentodb' et un nouvel utilisateur 'magentouser' avec le mot de passe '[email protected]'. Accordez ensuite tous les privilèges de la base de données au nouvel utilisateur. Exécutez la requête mysql ci-dessous.
créer la base de données magentodb ;
créer un utilisateur [email protected] identifié par '[email protected]' ;
accorder tous les privilèges sur magentodb.* à [email protected] identifié par '[email protected]';
flush privilèges ;
L'installation et la configuration de MySQL 5.7 sont terminées et une base de données pour l'installation de Magento a été créée.
Étape 4 Installer et configurer Magento
Dans cette étape, nous allons commencer à installer et configurer Magento. Pour le répertoire racine web, nous utiliserons le répertoire '/var/www/magento2'. Nous avons besoin de PHP composer pour l'installation du package Magento.
Installer PHP Composer
Nous utiliserons Composer pour l'installation des dépendances du package PHP. Installez composer avec la commande curl ci-dessous.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composerUne fois l'installation terminée, vous pouvez vérifier la version de composer comme indiqué ci-dessous.
composer -v
PHP Composer a été installé.
Télécharger et extraire Magento
Allez dans le répertoire '/var/www' et téléchargez le code Magento avec la commande wget.
cd /var/www/
wget https://github.com/magento/magento2/archive/2.1.zipInstallez unzip avec yum.
yum -y installer décompresserExtrayez le code Magento et renommez le répertoire en répertoire 'magento2'.
décompressez 2.1.zip
mv magento2-2.1 magento2Installer les dépendances PHP
Allez dans le répertoire magento2 et installez toutes les dépendances de Magento avec la commande composer.
cd magento2
composer install -v
Attendez la fin de l'installation de la dépendance PHP.
Configurer l'hôte virtuel Magento
Allez dans le répertoire Nginx et créez un nouveau fichier de configuration d'hôte virtuel nommé 'magento.conf' dans le répertoire 'conf.d'.
cd /etc/nginx/
vim conf.d/magento.confCollez la configuration de l'hôte virtuel ci-dessous.
fastcgi_backend {
serveur unix :/run/php/php-fpm.sock ;
}
serveur {
écouter 80 ;
nom_serveur magento.hakase-labs.com ;
définir $MAGE_ROOT /var/www/magento2 ;
définir $MAGE_MODE développeur ;
inclure /var/www/magento2/nginx. conf.sample;
}Enregistrez et quittez.
Testez maintenant la configuration. Lorsqu'il n'y a pas d'erreur, redémarrez le service Nginx.
nginx -t
systemctl redémarre nginx
Installer Magento 2.1
Allez dans le répertoire magento2 pour installer Magento en ligne de commande.
cd /var/www/magento2Exécutez la commande ci-dessous, assurez-vous d'avoir la bonne configuration. Les valeurs que vous devez modifier sont expliquées ci-dessous.
bin/magento setup:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
- -db-name="magentodb" \
--db-user="magentouser" \
--db-password="[email protected]" \
--language="en_US " \
--currency="USD" \
--timezone="Amérique/New_York" \
--use-rewrites=1 \
--use-secure=0 \
--base-url="http://magento.hakase-labs.com" \
--base-url-secure="https://magento.hakase-labs.com " \
--admin-user=adminuser \
[email protected] \
[email protected] \
--admin-firstname=admin \
-- admin-lastname=utilisateur \
--cleanup-databaseModifier la valeur pour :
- --backend-frontname :page de connexion de l'administrateur Magento "adminlogin"
- --key :générez votre propre clé
- --db-host :hôte local de la base de données
- --db-name :nom de la base de données 'magentodb'
- --db-user :utilisateur de la base de données 'magentouser'
- --db-password :mot de passe de la base de données '[email protected]'
- --base-url :URL Magento
- --admin-user :votre utilisateur administrateur
- --admin-password :votre mot de passe administrateur Magento
- --admin-email :votre adresse e-mail
Lorsque vous n'avez aucune erreur dans la commande, vous verrez les résultats ci-dessous.
Magento 2.1 est installé. Exécutez la commande ci-dessous pour modifier l'autorisation pour le répertoire etc et changer le propriétaire du répertoire magento2 en utilisateur 'nginx'.
chmod 700 /var/www/magento2/app/etc
chown -R nginx:nginx /var/www/magento2
Configurer Magento Cron
Ce cronjob est nécessaire pour l'indexeur Magento. Créez un nouveau cronjob en tant qu'utilisateur 'nginx' (car magento s'exécute sous l'utilisateur et le groupe nginx).
crontab -u nginx -e
Collez la configuration ci-dessous.
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Tâches exécutées par planification">> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update /cron.php> > /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron :run>> /var/www/magento2/var/log/setup.cron.log
Enregistrez et quittez.
Étape 5 - Configurer SELinux et Firewalld
Dans ce tutoriel, nous laisserons SELinux en mode 'Enforcing'. Exécutez les commandes ci-dessous pour vérifier l'état de SELinux.
statut
SELinux est en mode "Application".
Installez l'outil de gestion SELinux "policycoreutils-python" avec la commande yum ci-dessous.
yum -y install policycoreutils-python
Allez dans le répertoire '/var/www/'.
cd /var/www/
Exécutez les commandes ci-dessous pour modifier le contexte de sécurité des fichiers et répertoires Magento.
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/app/etc(/.* ) ?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/var(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub /media(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/static(/.*)?'
restorecon -Rv '/var/www /magento2/'
La configuration de SELinux est terminée. Nous devons maintenant configurer firewalld.
Installez le package firewalld si vous ne l'avez pas déjà sur votre serveur.
yum -y install firewalld
Démarrez le pare-feu et ajoutez firewalld pour qu'il démarre au démarrage.
systemctl start firewalld
systemctl enable firewalld
Ouvrez les ports pour HTTP et HTTPS afin que nous puissions accéder à l'URL de Magento à partir d'un navigateur Web.
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Voir les ports ouverts pour les services avec la commande ci-dessous.
firewall-cmd --list-all
HTTP et HTTPS sont prêts pour les connexions.
Étape 6 - Tester
Ouvrez votre navigateur Web, puis parcourez l'URL de Magento. Le mien est :
magento.hakase-labs.com
Et vous verrez la page d'accueil par défaut de Magento.
Ensuite, connectez-vous au tableau de bord d'administration en ouvrant l'URL de connexion admin.
magento.hakase-labs.com/adminlogin
Connectez-vous avec votre utilisateur administrateur et votre mot de passe.
Tableau de bord d'administration Magento.
Magento 2.1 a été installé avec succès avec Nginx, PHP-FPM7 et MySQL 5.7 sur un serveur CentOS 7.