Magento est l'une des plateformes de commerce électronique open source les plus populaires qui vous permet de configurer des sites Web de commerce électronique et des boutiques en ligne en quelques minutes. Il est écrit en PHP, basé sur Zend Framework et utilise le modèle de base de données Entity Attribute Value (EAV) pour stocker les données. Il est livré avec une interface simple et conviviale qui vous permet de personnaliser votre boutique en ligne et de vendre facilement vos produits et services.
Dans ce tutoriel, nous allons vous montrer comment installer la plate-forme de commerce électronique Magento sur CentOS 8 avec Let's Encrypt SSL gratuit.
Exigences
- Un serveur exécutant CentOS 8 avec 2 Go de RAM.
- Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
- Un mot de passe root est configuré sur le serveur.
Installer le serveur LEMP
Tout d'abord, installez le serveur Web Nginx, le serveur de base de données MariaDB, PHP et les autres bibliothèques PHP requises en exécutant la commande suivante :
dnf install nginx mariadb-server php php-cli php-mysqlnd php-opcache php-xml php-gd php-soap php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip unzip git -y
Une fois tous les packages installés, démarrez le service Nginx, MariaDB et PHP-FPM et autorisez-les à démarrer après le redémarrage du système avec la commande suivante :
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm
Ensuite, vous devrez modifier le fichier php.ini et modifier certains paramètres :
nano /etc/php.ini
Modifiez les lignes suivantes :
memory_limit =512M upload_max_filesize = 200M zlib.output_compression = On max_execution_time = 300 date.timezone = Asia/Kolkata
Enregistrez et fermez le fichier lorsque vous avez terminé.
Configurer la base de données
Par défaut, MariaDB n'est pas sécurisée, vous devrez donc d'abord la sécuriser. Exécutez le script suivant pour sécuriser MariaDB :
mysql_secure_installation
Répondez à toutes les questions comme indiqué ci-dessous :
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Une fois que vous avez terminé, connectez-vous au shell MariaDB avec la commande suivante :
mysql -u root -p
Fournissez votre mot de passe root lorsque vous y êtes invité, puis créez une base de données et un utilisateur pour Magento comme indiqué ci-dessous :
MariaDB [(none)]> CREATE DATABASE magentodb;
MariaDB [(none)]> GRANT ALL ON magentodb.* TO [email protected] IDENTIFIED BY 'password';
Ensuite, videz les privilèges et quittez le shell MariaDB avec la commande suivante :
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Configurer PHP-FPM pour Magento
Ensuite, vous devrez configurer le pool PHP-FPM pour votre instance Magento. Vous pouvez le configurer en créant le fichier suivant :
nano /etc/php-fpm.d/magento.conf
Ajoutez les lignes suivantes :
[magento] user = nginx group = nginx listen.owner = nginx 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 et fermez le fichier puis redémarrez le service PHP-FPM pour implémenter les modifications :
systemctl restart php-fpm
Télécharger Magento
Tout d'abord, téléchargez la dernière version de Magento depuis le dépôt Git à l'aide de la commande suivante :
cd /var/www/html
wget https://github.com/magento/magento2/archive/2.3.zip
Une fois téléchargé, décompressez le fichier téléchargé comme indiqué ci-dessous :
unzip 2.3.zip
Ensuite, déplacez le répertoire extrait vers magento2 comme indiqué ci-dessous :
mv magento2-2.3 magento2
Ensuite, vous devrez installer le Composer pour installer les dépendances PHP pour Magento.
Vous pouvez installer Composer avec la commande suivante :
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Ensuite, changez le répertoire en magento2 et installez toutes les dépendances de Magento avec la commande suivante :
cd /var/www/html/magento2
composer update
composer install
Ensuite, vous devrez créer la crontab Magento pour planifier les tâches. Vous pouvez le créer avec la commande suivante :
./bin/magento cron:install
Vous pouvez vérifier la crontab à l'aide de la commande suivante :
crontab -l
Vous devriez obtenir le résultat suivant :
#~ MAGENTO START f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f * * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log * * * * * /usr/bin/php /var/www/html/magento2/update/cron.php >> /var/www/html/magento2/var/log/update.cron.log * * * * * /usr/bin/php /var/www/html/magento2/bin/magento setup:cron:run >> /var/www/html/magento2/var/log/setup.cron.log #~ MAGENTO END f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f
Ensuite, donnez les autorisations appropriées au répertoire magento2 :
chown -R nginx:nginx /var/www/html/magento2
chmod -R 755 /var/www/html/magento2
Configurer Nginx pour Magento
Ensuite, vous devrez créer un fichier d'hôte virtuel Nginx pour Magento. Vous pouvez le créer avec la commande suivante :
nano /etc/nginx/conf.d/magento.conf
Ajoutez les lignes suivantes :
upstream fastcgi_backend { server unix:/run/php-fpm/magento.sock; } server { listen 80; server_name magento.linuxbuz.com; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; access_log /var/log/nginx/magento-access.log; error_log /var/log/nginx/magento-error.log; include /var/www/html/magento2/nginx.conf.sample; }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez Nginx et le service PHP-FPM pour mettre en œuvre les modifications :
systemctl restart php-fpm
systemctl restart nginx
Configurer SELinux et le pare-feu
Par défaut, SELinux est activé dans CentOS 8. Vous devrez donc configurer SELinux pour que Magento fonctionne correctement.
Vous pouvez configurer SELinux avec la commande suivante :
semanage permissive -a httpd_t
Ensuite, vous devrez créer une règle de pare-feu pour autoriser les services HTTP et HTTPS à partir de réseaux externes. Vous pouvez l'autoriser avec la commande suivante :
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Sécuriser Magento avec Let's Encrypt SSL
Magento est maintenant installé et configuré. Il est temps de le sécuriser avec Let's Encrypt SSL gratuit.
Pour ce faire, vous devrez télécharger le client certbot sur votre serveur. Vous pouvez télécharger et définir l'autorisation appropriée en exécutant la commande suivante :
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Maintenant, exécutez la commande suivante pour obtenir et installer un certificat SSL pour votre site Web Magento.
certbot-auto --nginx -d magento.linuxbuz.com
La commande ci-dessus installe d'abord toutes les dépendances requises comme indiqué ci-dessous :
Installed: gcc-8.2.1-3.5.el8.x86_64 mod_ssl-1:2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 python3-virtualenv-15.1.0-18.module_el8.0.0+33+0a10c0e1.noarch python36-devel-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64 redhat-rpm-config-116-1.el8.0.1.noarch augeas-libs-1.10.1-8.el8.x86_64 libffi-devel-3.1-18.el8.x86_64 openssl-devel-1:1.1.1-8.el8.x86_64 annobin-8.64-1.el8.x86_64 cpp-8.2.1-3.5.el8.x86_64 dwz-0.12-9.el8.x86_64 efi-srpm-macros-3-2.el8.noarch ghc-srpm-macros-1.4.2-7.el8.noarch go-srpm-macros-2-16.el8.noarch isl-0.16.1-6.el8.x86_64 libmpc-1.0.2-9.el8.x86_64 ocaml-srpm-macros-5-4.el8.noarch openblas-srpm-macros-2-2.el8.noarch perl-srpm-macros-1-25.el8.noarch platform-python-devel-3.6.8-2.el8_0.0.1.x86_64 python-rpm-macros-3-37.el8.noarch python-srpm-macros-3-37.el8.noarch python3-rpm-generators-5-4.el8.noarch python3-rpm-macros-3-37.el8.noarch qt5-srpm-macros-5.11.1-2.el8.noarch rust-srpm-macros-5-2.el8.noarch glibc-devel-2.28-42.el8.1.x86_64 glibc-headers-2.28-42.el8.1.x86_64 kernel-headers-4.18.0-80.11.2.el8_0.x86_64 keyutils-libs-devel-1.5.10-6.el8.x86_64 krb5-devel-1.16.1-22.el8.x86_64 libcom_err-devel-1.44.3-2.el8.x86_64 libkadm5-1.16.1-22.el8.x86_64 libselinux-devel-2.8-6.el8.x86_64 libsepol-devel-2.8-2.el8.x86_64 libverto-devel-0.3.0-5.el8.x86_64 libxcrypt-devel-4.1.1-4.el8.x86_64 pcre2-devel-10.32-1.el8.x86_64 pcre2-utf16-10.32-1.el8.x86_64 pcre2-utf32-10.32-1.el8.x86_64 zlib-devel-1.2.11-10.el8.x86_64 Complete! Creating virtual environment... Installing Python packages... Installation succeeded.
Une fois toutes les dépendances installées, il vous sera demandé de fournir votre adresse e-mail et d'accepter les conditions d'utilisation comme indiqué ci-dessous :
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Obtaining a new certificate Performing the following challenges: http-01 challenge for magento.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/magento.conf
Ensuite, vous devrez choisir de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Tapez 2 et appuyez sur Entrée pour installer le certificat SSL Let's Encrypt pour votre domaine comme indiqué ci-dessous :
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/magento.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://magento.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=magento.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/magento.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/magento.linuxbuz.com/privkey.pem Your cert will expire on 2020-03-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Accéder à Magento
Magento est maintenant installé et configuré. Il est temps d'accéder à l'assistant d'installation de Magento.
Ouvrez votre navigateur Web et tapez l'URL https://magento.linuxbuz.com. Vous allez être redirigé vers la page d'accueil de Magento :
Cliquez sur Accepter et configurer Magento bouton. Vous devriez voir l'assistant de vérification de l'état de préparation de Magento :
Maintenant, cliquez sur Suivant bouton. Vous devriez voir la page suivante :
Fournissez les détails de votre base de données et cliquez sur Suivant bouton. Vous devriez voir la page suivante :
Maintenant, fournissez votre boutique Magento et l'URL d'administration, puis cliquez sur Suivant bouton. Vous devriez voir la page suivante :
Sélectionnez votre fuseau horaire, votre devise, votre langue et cliquez sur Suivant bouton. Vous devriez voir la page suivante :
Maintenant, fournissez votre nom d'utilisateur et votre mot de passe d'administrateur Magento et cliquez sur Suivant bouton. Vous devriez voir la page suivante :
Maintenant, cliquez sur Installer Maintenant bouton pour lancer l'installation de Magento. Une fois l'installation terminée avec succès. Vous devriez voir la page suivante :
Maintenant, cliquez sur L'adresse de votre magasin bouton. Vous devriez voir votre boutique Magento sur la page suivante :
Pour accéder à votre interface d'administration Magento, saisissez l'URL https://magento.linuxbuz.com/admin_1teqss sur votre navigateur Web. Vous serez redirigé vers la page de connexion Magento :
Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur Magento et cliquez sur Signer dans bouton. Vous devriez voir votre interface d'administration Magento sur la page suivante :
C'est tout pour le moment. Votre Magento est maintenant sécurisé avec le SSL gratuit Let's Encrypt.