Comment installer Zen Cart sur Debian 9

Zen Cart est une plateforme open source gratuite de gestion de contenu et de panier d’achat pour l’e-commerce. Le logiciel est écrit dans le langage de programmation PHP et est souvent installé sur Linux sous les serveurs Web Apache/Nginx, le système de gestion de base de données PHP et MySQL/MariaDB, également connu sous le nom de pile LAMP ou LEMP. La solution de commerce électronique Zen Cart permet de créer facilement des boutiques en ligne pour différentes entreprises et de faire de la publicité et de vendre des services et des marchandises.

Dans ce guide, je vais te montrer comment installer et configurer la dernière version de Zen Cart sur Debian 9, afin de créer une boutique en ligne gratuite.

Exigences

  • Installation minimale du serveur Debian 9 sur une machine bare-metal ou sur un serveur privé virtuel
  • Une adresse IP statique configurée pour l’une des cartes d’interface réseau de ton système
  • Des privilèges sudo root pour un compte local ou distant ou un accès direct au compte root
  • Un nom de domaine, privé ou public, en fonction de ton déploiement, avec les enregistrements DNS appropriés configurés pour les services Web. Si tu n’as pas de nom de domaine valide ou enregistré, tu peux effectuer l’installation et accéder au site Web via l’adresse IP de ton serveur.
  • Si tu veux utiliser l’enregistrement du site Web, la modération des commentaires et d’autres fonctions, tu dois avoir un serveur de messagerie en fonctionnement correctement configuré dans tes locaux avec un accès à distance à ses services IMAP et SMTP.

Pré-requis

Avant de commencer à installer et à configurer Zen Cart à partir des sources dans ton propre serveur, assure-toi d’abord que le système répond à toutes les exigences logicielles pour compiler et installer l’application. Dans un premier temps, mets à jour les dépôts et les paquets logiciels de ton système en lançant la commande suivante.

apt update
apt upgrade

Ensuite, configure le nom de ton système en exécutant la commande suivante (remplace la variable hostname en conséquence).

hostnamectl set-hostname zencart

Vérifie le nom d’hôte de la machine et le fichier hosts en exécutant les commandes suivantes.

hostnamectl 
cat /etc/hostname 
hostname –s
hostname –f

À l’étape suivante, exécute la commande suivante afin d’installer certains utilitaires nécessaires qui seront utilisés pour gérer ton système à partir de la ligne de commande.

apt install wget bash-completion zip unzip curl

Enfin, redémarre le serveur Debian afin d’appliquer correctement les mises à jour du noyau et les changements de nom d’hôte.

systemctl reboot

Installe Apache et PHP

Zen Cart est une plateforme de commerce électronique CMS basée sur le Web et écrite principalement en langage de programmation côté serveur PHP. Afin d’exécuter les scripts du fichier PHP de l’application, un serveur Web, comme le serveur HTTP Apache, et une passerelle de traitement PHP doivent être installés et opérationnels dans le système. Pour installer le serveur Web Apache et l’interpréteur PHP ainsi que tous les modules PHP nécessaires au bon fonctionnement de l’application, lance la commande suivante dans la console de ton serveur.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml

Après l’installation d’Apache et de PHP, vérifie que le serveur Web est opérationnel et qu’il écoute les connexions réseau sur le port 80 en lançant la commande suivante avec les privilèges de root.

netstat –tlpn

Si l’utilitaire réseau netstat n’est pas installé par défaut dans ton système Debian, exécute la commande suivante pour l’installer.

apt install net-tools

En inspectant la sortie de la commande netstat, tu peux voir que le serveur web Apache écoute les connexions réseau entrantes sur le port 80. Pour la même tâche, tu peux aussi utiliser la commande ss, qui est automatiquement installée par défaut dans Debian 9.

ss- tulpn

Configure le pare-feu

Si tu as activé un pare-feu dans ton système, comme l’application pare-feu UFW, tu dois ajouter une nouvelle règle pour autoriser le trafic HTTP à passer à travers le pare-feu en lançant la commande suivante.

ufw allow WWW

ou

ufw allow 80/tcp

Si tu utilises les règles brutes d’iptables pour gérer les règles du pare-feu dans ton serveur Debian, ajoute la règle suivante pour autoriser le trafic entrant du port 80 sur le pare-feu afin que les visiteurs puissent naviguer dans la boutique en ligne.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save 
systemctl iptables-persistent reload

Configure Apache et SSL/TLS

Ensuite, active et applique les modules Apache suivants, nécessaires au bon fonctionnement de l’application de commerce électronique, en envoyant la commande suivante.

a2enmod rewrite expires env alias deflate mime
systemctl restart apache2

Enfin, teste si la page Web par défaut du serveur Web Apache peut être affichée dans les navigateurs de tes clients en visitant l’adresse IP de ta machine Debian ou ton nom de domaine ou le FQDN du serveur via le protocole HTTP, comme le montre l’image suivante. Si tu ne connais pas l’adresse IP de ta machine, exécute les commandes ifconfig ou ‘ip a’ pour révéler l’adresse IP de ton serveur.

http://yourdomain.tld

Page par défaut d'Apache

Afin d’installer et d’accéder au panneau d’administration Web de Zen Cart sauvegardé et au site Web frontal via le protocole HTTPS qui sécurisera le trafic pour tes clients, exécute la commande suivante pour activer le module SSL du serveur Web Apache et le fichier de configuration du site SSL.

a2enmod ssl 
a2ensite default-ssl.conf

Ensuite, ouvre le fichier de configuration de site SSL par défaut d’Apache avec un éditeur de texte et active les règles de réécriture d’URL en ajoutant les lignes de code suivantes après la directive DocumentRoot, comme indiqué dans l’exemple suivant :

nano /etc/apache2/sites-enabled/default-ssl.conf

Extrait du fichier de configuration du site SSL :

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Apporte également la modification suivante à la ligne VirtualHost pour qu’elle ressemble à ce qui est indiqué dans l’extrait suivant :

<VirtualHost *:443>

Vhost SSL

Ferme le fichier SSL Apache et ouvre le fichier /etc/apache2/sites-enabled/000-default.conf pour le modifier et ajoute les mêmes règles de réécriture d’URL que pour le fichier de configuration SSL. Insère les lignes de code après la déclaration DocumentRoot comme indiqué dans l’exemple suivant.

 <Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Paramètres du répertoire dans le vhost

Enfin, redémarre le démon Apache pour appliquer toutes les règles configurées jusqu’à présent et visite ton domaine via le protocole HTTP. Comme tu utilises les paires de certificats auto-signés automatiquement émis par Apache lors de l’installation, un avertissement d’erreur devrait s’afficher dans le navigateur.

systemctl restart apache2

https://yourdomain.tld

SSL page

Accepte l’avertissement concernant le certificat non fiable pour continuer et être redirigé vers la page Web par défaut d’Apache.

Page par défaut d'Apache

Si l’application pare-feu UFW bloque les connexions réseau entrantes sur le port HTTPS, tu dois ajouter une nouvelle règle pour permettre au trafic HTTPS de passer à travers le pare-feu en lançant la commande suivante.

ufw allow 'WWW Full'

ou

ufw allow 443/tcp

Si iptables est l’application pare-feu par défaut installée pour protéger ton système Debian au niveau du réseau, ajoute la règle suivante pour autoriser le trafic entrant du port 443 dans le pare-feu afin que les visiteurs puissent naviguer sur ton nom de domaine.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save 
systemctl iptables-persistent reload

À l’étape suivante, nous devons apporter d’autres modifications au fichier de configuration par défaut de PHP afin de nous assurer que les variables PHP suivantes sont activées et que le paramètre de fuseau horaire de PHP est correctement configuré et correspond à l’emplacement géographique de ton système. Ouvre le fichier /etc/php/7.0/apache2/php.ini pour le modifier et assure-toi que les lignes suivantes sont configurées comme suit. Aussi, au départ, fais une sauvegarde du fichier de configuration de PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Recherche, édite et modifie les variables suivantes dansphp.inifichier de configuration :

file_uploads = On
memory_limit = 128 M
upload_max_file_size = 64M
post_max_size = 64M
date.timezone = Europe/London

Augmente les variables post_max_size et upload_max_file_size comme il convient pour prendre en charge les pièces jointes de grande taille et remplace la variable time.zone en fonction de ton heure physique en consultant la liste des fuseaux horaires fournie par la documentation PHP au lien suivant http://php.net/manual/en/timezones.php.

Si tu veux augmenter la vitesse de chargement des pages de ton site Web via le plugin OPCache disponible pour PHP7, ajoute les paramètres OPCache suivants au bas du fichier de configuration de l’interpréteur PHP, comme indiqué ci-dessous :

opcache.enable=1 
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Ferme le fichier de configuration php.ini et vérifie la fin du fichier de configuration PHP pour voir si les variables ont été correctement ajoutées en lançant la commande ci-dessous.

tail /etc/php/7.0/apache2/php.ini

Après avoir effectué toutes les modifications expliquées ci-dessus, redémarre le démon apache pour appliquer les nouvelles modifications en émettant la commande suivante.

systemctl restart apache2

Enfin, crée un fichier d’information PHP en exécutant la commande suivante et vérifie si le fuseau horaire PHP a été correctement configuré en visitant le fichier script PHP info depuis un navigateur à l’URL suivante, comme illustré dans l’image ci-dessous. Descends jusqu’au réglage de la date pour vérifier la configuration du fuseau horaire de PHP.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://yourdomain.tld/info.php

L’application Web d’e-commerce Zen Cart stocke différentes configurations, telles que les utilisateurs, les sessions, les contacts, les produits, les catalogues et autres, dans une base de données SGBDR. Dans ce guide, nous allons configurer l’application Zen Cart pour utiliser la base de données MariaDB comme backend. Exécute la commande suivante pour installer la base de données MariaDB et le module PHP nécessaire pour accéder à la base de données mysql.

apt install mariadb-server mariadb-client php7.0-mysql

Après avoir installé MariaDB, vérifie si le démon fonctionne et écoute les connexions sur localhost, port 3306, en exécutant la commande netstat.

netstat –tlpn | grep mysql

Ensuite, connecte-toi à la console MySQL et sécurise le compte root MariaDB en exécutant les commandes suivantes.

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

À l’étape suivante, sécurise MariaDB en exécutant le script mysql_secure_installation fourni par les paquets d’installation des dépôts stretch de Debian. Pendant son exécution, le script posera une série de questions destinées à sécuriser la base de données MariaDB, comme : changer le mot de passe root MySQL, supprimer les utilisateurs anonymes, désactiver les connexions root à distance et supprimer la base de données de test. Exécute le script en lançant la commande suivante et assure-toi de taper oui à toutes les questions posées afin de sécuriser complètement le démon MySQL. Utilise l’extrait de sortie du script suivant comme guide.

sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

 

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] y

 ... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] y

 ... Success!

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] y

 ... Success!

 

Cleaning up...

 

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

Afin de tester la sécurité de MariaDB, essaie de te connecter à la base de données depuis la console sans mot de passe root. L’accès à la base de données devrait être refusé si aucun mot de passe n’est fourni pour le compte root, comme illustré dans l’extrait de commande suivant :

[email protected]:~# mysql -h localhost -u root
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Si le mot de passe est fourni, le processus de connexion devrait être accordé à la console MySQL, comme le montre l’extrait de commande :

[email protected]:~# mysql -h localhost -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
 exit
Bye

Ensuite, connecte-toi à la console de la base de données MariaDB, crée une base de données pour l’application Zen Cart et un utilisateur avec un mot de passe qui sera utilisé pour gérer la base de données de l’application, en envoyant les commandes suivantes. Remplace le nom de la base de données, l’utilisateur et le mot de passe en conséquence.

mysql –u root -p
create database zencart;
grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP on zencart.* to 'zencart_user'@'localhost' identified by 'password1';
flush privileges;
exit

Afin d’appliquer toutes les modifications apportées jusqu’à présent, redémarre les démons MySQL et Apache et vérifie que les démons fonctionnent en envoyant les commandes suivantes.

systemctl restart mysql apache2
systemctl status mysql apache2

Installe Zen Cart

Une fois que toutes les exigences du système sont remplies pour l’installation de ta boutique en ligne, visite la page de téléchargement officielle de SourceForge Zen Cart à l’adresse https://sourceforge.net/projects/zencart/files/ et télécharge la dernière archive compressée du paquet zip à l’aide de l’utilitaire wget, comme illustré dans l’exemple suivant.

wget https://downloads.sourceforge.net/project/zencart/CURRENT%20-%20Zen%20Cart%201.5.x%20Series/zen-cart-v1.5.5f-12312017b.zip

Une fois le téléchargement de l’archive zip terminé, extrais directement l’archive compressée Zen Cart zip et liste les fichiers extraits en lançant les commandes suivantes. Supprime aussi le fichier index.html par défaut installé par le serveur Web Apache dans le chemin webroot et supprime aussi le fichier info.php créé précédemment.

rm /var/www/html/index.html 
rm /var/www/html/info.php
unzip zen-cart-v1.5.5f-12312017b.zip
ls

Les fichiers d’installation de Zen Cart se trouvent dans ton répertoire de travail actuel, dans le répertoire zen-cart extrait. Exécute la commande ls pour afficher les fichiers du répertoire zen-cart. Copie tout le contenu du répertoire zen-cart-v1 dans le chemin de la racine du document de ton serveur Web en lançant la commande suivante.

ls -al zen-cart-v[tab]
cp -rf zen-cart-v1.5.5e-03082017/* /var/www/html/

Change le répertoire à la racine du document du serveur Web et exécute la commande suivante pour créer les fichiers de configuration requis par l’application Zen Cart pour écrire les paramètres du magasin.

cd /var/www/html/
cp includes/dist-configure.php includes/configure.php
cp admin/includes/dist-configure.php admin/includes/configure.php 

Ensuite, exécute les commandes suivantes afin d’accorder à l’utilisateur du moteur d’exécution Apache des droits d’écriture complets sur le chemin de la racine du serveur Web. Utilise la commande ls pour répertorier les permissions des fichiers installés de l’application situés dans le répertoire /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

ZenCart déballé

Maintenant, procède au processus d’installation de la boutique en ligne Zen Cart en ouvrant un navigateur et en naviguant sur l’adresse IP ou le nom de domaine ou le FQDN de ton serveur via le protocole HTTPS. Sur le premier écran d’installation, le programme d’installation de Zen Cart te présentera un résumé d’une liste de problèmes concernant la page que tu es en train de voir. Comme l’application n’a pas encore été installée, clique sur le lien Cliquez ici pour lancer le processus d’installation, comme le montre l’image suivante.

https://yourdomain.tld

Installateur web de ZenCart

Dans l’écran d’installation suivant, le programme d’installation effectuera une série de contrôles de pré-installation par rapport aux paramètres PHP du serveur et à l’extension PHP installée afin de déterminer si toutes les exigences du système pour installer l’application de commerce électronique Zen Cart sont remplies. Il vérifiera également si l’utilisateur du moteur d’exécution HTTP Apache peut écrire dans une série de répertoires à partir du chemin webroot, comme le montrent les images ci-dessous. Après avoir vérifié tous les contrôles du système, clique sur le bouton Continuer pour avancer dans le processus d’installation.

Inspection du systèmeSur l’écran suivant, configure ta boutique en ligne Zen Cart. Tout d’abord, coche la case Contrat de licence et vérifie que l’adresse URL du domaine du serveur d’administration redirige vers ton nom de domaine via le protocole d’application HTTPS. Ensuite, coche la case Activer SSL pour la vitrine dans les paramètres du catalogue (vitrine) et vérifie les adresses URL du domaine. Dans le dernier champ, vérifie si le chemin physique du magasin correspond au chemin de la racine du document de ton serveur Web et clique sur le bouton Continuer pour poursuivre le processus d’installation.

Configuration du système

Dans l’écran d’installation suivant, ajoute l’adresse de la base de données MySQL, le nom et les informations d’identification créées précédemment pour la base de données Zen Cart. Laisse la case Load Demo Data décochée et sélectionne le jeu de caractères de ta base de données sur UTF8 et le préfixe sur zen_. Choisis la méthode de cache SQL à Fichier et clique sur le bouton Continuer pour passer à l’étape suivante de l’installation.

Configuration de la base de données

Ensuite, ajoute un compte Admin Superuser pour ta boutique en ligne Zen Cart et une adresse e-mail pour le compte admin. Veille à noter le mot de passe du magasin admin et le nom du répertoire admin et clique sur le bouton Continuer pour lancer le processus d’installation.

Configuration de l'administrateur

Une fois l’installation terminée, le programme d’installation affichera deux boutons pour accéder au panneau d’administration de Zen Cart Backed, qui sera utilisé pour gérer ta boutique en ligne, et le lien de la boutique Storefront, qui sera affiché à tes clients.

Configuration terminée

Pour visiter ta boutique en ligne, clique d’abord sur le bouton Aller à ta vitrine et le frontend de ton application de commerce électronique s’affichera dans ton navigateur comme illustré dans la capture d’écran ci-dessous. Tu peux aussi visiter le front-end du magasin en naviguant vers l’adresse IP ou le nom de domaine de ton serveur via le protocole HTTPS.

https://www.yourdomain.tld

ZenCart est installé

Avant de te connecter au panneau d’administration de ton magasin, retourne d’abord à la console du serveur et lance la commande suivante pour supprimer le répertoire d’installation de Zen Cart.

rm -rf /var/www/html/zc_install/

Pour gérer ta boutique en ligne Zen Cart, clique sur le lien Admin Backend qui te redirigera vers le backend de la boutique. Utilise les informations d’identification de l’administrateur configurées pendant le processus d’installation pour te connecter au panneau d’administration de Zen Cart, comme le montre la capture d’écran ci-dessous.

Tu peux aussi te rendre sur le panneau web d’administration de Zen Cart en naviguant vers l’adresse IP de ton serveur ou ton nom de domaine via le protocole HTTPS vers l’adresse URL du répertoire d’administration chaîne aléatoire configurée pendant le processus d’installation.

https://yourdomain.tld/random_string/login.php

Connexion à ZenCartAprès t’être connecté au panneau d’administration soutenu par Zen Cart, complète l’assistant de configuration initiale avec les détails de ton propre magasin et clique sur le bouton Update pour écrire les modifications, comme le montre la capture d’écran suivante.

Assistant de configuration initiale de ZenCart

Afin de sécuriser l’application Zen Cart, retourne à la console du serveur et exécute les commandes suivantes pour modifier les autorisations du fichier includes/configure.php et du fichier configure.php du répertoire admin afin qu’ils appartiennent au compte root.

chown root:root /var/www/html/includes/configure.php 
chown root:root /var/www/html/brOil-QUl-cHain/includes/configure.php

Enfin, pour obliger les visiteurs à naviguer sur le site Web frontal de Zen Cart et à accéder en toute sécurité à l’interface backend via le protocole HTTPS qui crypte le trafic entre le serveur et les navigateurs clients, retourne au terminal de ton serveur et crée un nouveau fichier .htaccess en envoyant la commande suivante.

nano /var/www/html/.htaccess

Change les paramètres PHP pour qu’ils correspondent aux ressources de ton propre serveur et ajoute les règles de redirection HTTPS comme indiqué dans l’extrait du fichier .htaccess extrait du fichier:

# Modify PHP settings
php_flag register_globals off
php_flag magic_quotes_gpc Off
php_value max_execution_time 200
php_value max_input_time 200
php_value upload_max_filesize 999M
php_value post_max_size 999M

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>

C’est tout ! Tu as réussi à installer et à configurer l’application de commerce électronique Zen Cart dans Debian 9.2. Cependant, comme le serveur HTTP Apache utilise un certificat auto-signé non fiable pour chiffrer le trafic entre le serveur et les navigateurs des visiteurs, un message d’avertissement sera toujours généré et affiché dans leurs navigateurs. Cet avertissement est mauvais pour l’activité de ta boutique en ligne. Dans ce cas, tu dois acheter un certificat émis par une autorité de certification de confiance ou obtenir une paire de certificats gratuits de Let’s Encrypt CA.

Pour d’autres configurations personnalisées concernant l’application Zen Cart, visite la page de documentation à l’adresse suivante : https://www.zen-cart.com/wiki/index.php/Main_Page.

Vous aimerez aussi...