GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Zen Cart sur Debian 9

Zen Cart est une plateforme open source gratuite de gestion de contenu et de panier d'achat en ligne. Le logiciel est écrit en langage de programmation PHP et souvent installé sur Linux sous des serveurs Web Apache/Nginx, un 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 est utilisée pour créer facilement des boutiques en ligne pour différentes entreprises et faire de la publicité et vendre des services et des marchandises.

Dans ce guide, je vais vous 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 de vos cartes d'interface réseau système 
  • privilèges sudo root pour un compte local ou distant ou accès direct au compte root 
  • Un nom de domaine, privé ou public, selon votre déploiement, avec les enregistrements DNS appropriés configurés pour les services Web. Si vous n'avez pas de nom de domaine valide ou enregistré, vous pouvez effectuer l'installation et accéder au site Web via l'adresse IP de votre serveur
  • Si vous souhaitez utiliser l'inscription au site Web, la modération des commentaires et d'autres fonctionnalités, vous devez disposer d'un serveur de messagerie en cours d'exécution correctement configuré dans vos locaux avec un accès à distance à ses services IMAP et SMTP.

Prérequis

Avant de commencer à installer et à configurer Zen Cart à partir de sources sur votre propre serveur, assurez-vous d'abord que le système répond à toutes les exigences logicielles pour compiler et installer l'application. Lors de la première étape, mettez à jour vos référentiels système et vos progiciels en exécutant la commande suivante.

apt update
apt upgrade

Ensuite, configurez le nom de votre système en exécutant la commande suivante (remplacez votre variable de nom d'hôte en conséquence).

hostnamectl set-hostname zencart

Vérifiez le nom d'hôte de la machine et le fichier d'hôtes en exécutant les commandes suivantes.

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

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

apt install wget bash-completion zip unzip curl

  Enfin, redémarrez le serveur Debian afin d'appliquer les mises à jour du noyau et le nom d'hôte change correctement.

systemctl reboot

Installer Apache et PHP

Zen Cart est une plate-forme de commerce électronique CMS basée sur le Web, écrite principalement en langage de programmation côté serveur PHP. Afin d'exécuter les scripts de fichiers PHP de l'application, un serveur Web, tel qu'un serveur HTTP Apache, et une passerelle de traitement PHP doivent être installés et opérationnels dans le système. Afin d'installer le serveur Web Apache et l'interpréteur PHP avec tous les modules PHP nécessaires au bon fonctionnement de l'application, exécutez la commande suivante dans la console de votre serveur.

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

Une fois Apache et PHP installés, testez si le serveur Web est opérationnel et écoute les connexions réseau sur le port 80 en exécutant la commande suivante avec les privilèges root.

netstat –tlpn

Si l'utilitaire de réseau netstat n'est pas installé par défaut sur votre système Debian, exécutez la commande suivante pour l'installer.

apt install net-tools

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

ss- tulpn

Configurer le pare-feu

Si un pare-feu est activé sur votre système, tel qu'une application de pare-feu UFW, vous devez ajouter une nouvelle règle pour autoriser le trafic HTTP à traverser le pare-feu en exécutant la commande suivante.

ufw allow WWW

ou

ufw allow 80/tcp

Si vous utilisez des règles brutes iptables pour gérer les règles de pare-feu sur votre serveur Debian, ajoutez la règle suivante pour autoriser le trafic entrant du port 80 sur le pare-feu afin que les visiteurs puissent parcourir 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

Configurae Apache et SSL/TLS

Ensuite, activez et appliquez les modules Apache suivants requis par l'application de commerce électronique pour fonctionner correctement, en exécutant la commande suivante.

a2enmod rewrite expires env alias deflate mime
systemctl restart apache2

Enfin, testez si la page Web par défaut du serveur Web Apache peut être affichée dans les navigateurs de votre client en visitant l'adresse IP de votre machine Debian ou votre nom de domaine ou FQDN de serveur via le protocole HTTP, comme illustré dans l'image suivante. Si vous ne connaissez pas l'adresse IP de votre machine, exécutez les commandes ifconfig ou 'ip a' pour révéler l'adresse IP de votre serveur.

http://votredomaine.tld

Afin d'installer et d'accéder au panneau d'administration Web Zen Cart et au site Web frontal via le protocole HTTPS qui sécurisera le trafic pour vos clients, exécutez 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, ouvrez le fichier de configuration du site SSL par défaut d'Apache avec un éditeur de texte et activez les règles de réécriture d'URL en ajoutant les lignes de code suivantes après la directive DocumentRoot, comme illustré 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>

En outre, apportez la modification suivante à la ligne VirtualHost pour ressembler à comme indiqué dans l'extrait suivant :

<VirtualHost *:443>

Fermez le fichier SSL Apache et ouvrez le fichier /etc/apache2/sites-enabled/000-default.conf pour le modifier et ajoutez les mêmes règles de réécriture d'URL que pour le fichier de configuration SSL. Insérez les lignes de code après l'instruction DocumentRoot comme indiqué dans l'exemple suivant.

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

Enfin, redémarrez le démon Apache pour appliquer toutes les règles configurées jusqu'à présent et visitez votre domaine via le protocole HTTP. Étant donné que vous utilisez les paires de certificats auto-signés automatiquement émis par Apache lors de l'installation, un avertissement d'erreur doit s'afficher dans le navigateur.

systemctl restart apache2

https://votredomaine.tld

Acceptez l'avertissement concernant le certificat non confiance afin de continuer et d'être redirigé vers la page Web par défaut d'Apache.

Si l'application de pare-feu UFW bloque les connexions réseau entrantes au port HTTPS, vous devez ajouter une nouvelle règle pour autoriser le trafic HTTPS à traverser le pare-feu en exécutant la commande suivante.

ufw allow 'WWW Full'

ou

ufw allow 443/tcp

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

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

Dans l'étape suivante, nous devons apporter d'autres modifications au fichier de configuration PHP par défaut afin de nous assurer que les variables PHP suivantes sont activées et que le paramètre de fuseau horaire PHP est correctement configuré et correspond à l'emplacement géographique de votre système. Ouvrez le fichier /etc/php/7.0/apache2/php.ini pour le modifier et assurez-vous que les lignes suivantes sont configurées comme suit. Aussi, dans un premier temps, faites une sauvegarde du fichier de configuration PHP.

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

Recherchez, éditez et changez les variables suivantes dans php.ini fichier de configuration :

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

Augmentez les variables post_max_size et upload_max_file_size en fonction de la prise en charge des pièces jointes volumineuses et remplacez la variable time.zone en fonction de votre 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 vous souhaitez augmenter la vitesse de chargement des pages de votre site Web via le plug-in OPCache disponible pour PHP7, ajoutez 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

Fermez le fichier de configuration php.ini et vérifiez la fin du fichier de configuration PHP pour vérifier 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 apporté toutes les modifications expliquées ci-dessus, redémarrez le démon apache pour appliquer les nouvelles modifications en exécutant la commande suivante.

systemctl restart apache2

Enfin, créez un fichier d'informations PHP en exécutant la commande suivante et vérifiez si le fuseau horaire PHP a été correctement configuré en visitant le fichier de script d'informations PHP à partir d'un navigateur à l'URL suivante, comme illustré dans l'image ci-dessous. Faites défiler jusqu'au réglage de la date pour vérifier la configuration du fuseau horaire php.

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

https://votredomaine.tld/info.php

L'application Web de commerce électronique 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 RDBMS. Dans ce guide, nous allons configurer l'application Zen Cart pour utiliser la base de données MariaDB comme backend. Exécutez 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érifiez si le démon est en cours d'exécution et écoute les connexions sur localhost, port 3306, en exécutant la commande netstat.

netstat –tlpn | grep mysql

Ensuite, connectez-vous à la console MySQL et sécurisez le compte racine MariaDB en lâchant les commandes suivantes.

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

À l'étape suivante, sécurisez MariaDB en exécutant le script mysql_secure_installation fourni par les packages d'installation à partir des référentiels Debian Stretch. Lors de l'exécution, le script posera une série de questions conçues pour sécuriser la base de données MariaDB, telles que :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écutez le script en exécutant la commande suivante et assurez-vous de taper oui à toutes les questions posées afin de sécuriser complètement le démon MySQL. Utilisez l'extrait de sortie de 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, essayez de vous connecter à la base de données depuis la console sans mot de passe root. L'accès à la base de données doit ê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 doit être accordé à la console MySQL, comme illustré dans l'exemple 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, connectez-vous à la console de base de données MariaDB, créez 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 exécutant les commandes suivantes. Remplacez 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émarrez les démons MySQL et Apache et vérifiez si les démons sont en cours d'exécution en exécutant les commandes suivantes.

systemctl restart mysql apache2
systemctl status mysql apache2

Installer Zen Cart 

Une fois que toutes les exigences du système sont remplies pour l'installation de votre boutique en ligne de commerce électronique, visitez la page de téléchargement officielle de SourceForge Zen Cart à https://sourceforge.net/projects/zencart/files/ et téléchargez la dernière archive compressée du package 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é, extrayez directement l'archive compressée Zen Cart zip et répertoriez les fichiers extraits en exécutant les commandes suivantes. Supprimez également le fichier index.html par défaut installé par le serveur Web Apache sur le chemin Webroot et supprimez également 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 votre répertoire de travail actuel dans le répertoire zen-cart extrait. Exécutez la commande ls pour afficher les fichiers du répertoire zen-cart. Copiez tout le contenu du répertoire zen-cart-v1 dans le chemin racine du document de votre serveur Web en exécutant la commande suivante.

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

Changez de répertoire pour accéder à la racine du document du serveur Web et lancez 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écutez les commandes suivantes afin d'accorder à l'utilisateur d'exécution Apache des autorisations d'écriture complètes sur le chemin racine Web. Utilisez la commande ls pour répertorier les autorisations pour les 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/

Maintenant, poursuivez le processus d'installation de la boutique en ligne Zen Cart en ouvrant un navigateur et naviguez dans l'adresse IP ou le nom de domaine ou le FQDN du serveur via le protocole HTTPS. Sur le premier écran d'installation, le programme d'installation de Zen Cart vous présentera un résumé d'une liste de problèmes vous concernant, vous voyez la page . Parce que l'application n'a pas encore été installée, cliquez sur le lien Cliquez ici afin de démarrer le processus d'installation, comme illustré dans l'image suivante.

https://votredomaine.tld

Dans l'écran d'installation suivant, le programme d'installation effectuera une série de vérifications 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 d'exécution Apache HTTP peut écrire dans une série de répertoires à partir du chemin Webroot, comme indiqué dans les images ci-dessous. Après avoir examiné toutes les vérifications d'inspection du système, appuyez sur le bouton Continuer pour poursuivre le processus d'installation.

Sur l'écran suivant, configurez votre boutique en ligne Zen Cart. Tout d'abord, cochez la case Contrat de licence et vérifiez l'adresse URL du domaine du serveur d'administration pour rediriger vers votre nom de domaine via le protocole d'application HTTPS. Ensuite, cochez Activer SSL pour Storefront dans les paramètres de catalogue (Storefront) et vérifiez les adresses URL de domaine. Dans le dernier champ, vérifiez si le chemin physique du magasin correspond au chemin racine du document de votre serveur Web et appuyez sur le bouton Continuer pour poursuivre le processus d'installation.

Dans l'écran d'installation suivant, ajoutez l'adresse, le nom et les informations d'identification de la base de données MySQL créées précédemment pour la base de données Zen Cart. Laissez Load Demo Data décoché et sélectionnez le jeu de caractères de votre base de données sur UTF8 et le préfixe sur zen_. Choisissez la méthode de cache SQL dans le fichier et appuyez sur le bouton Continuer pour passer à l'étape d'installation suivante.

Ensuite, ajoutez un compte superutilisateur administrateur pour votre boutique en ligne Zen Cart et une adresse e-mail pour le compte administrateur. Assurez-vous de noter le mot de passe du magasin d'administration et le nom du répertoire d'administration, puis appuyez sur le bouton Continuer pour démarrer le processus d'installation.

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

Pour visiter votre boutique en ligne, appuyez d'abord sur le bouton Accéder à votre vitrine et l'interface de votre application de commerce électronique s'affichera dans votre navigateur, comme illustré dans la capture d'écran ci-dessous. Vous pouvez également visiter l'interface du magasin en accédant à l'adresse IP de votre serveur ou au nom de domaine via le protocole HTTPS.

https://www.votredomaine.tld

Avant de vous connecter au panneau d'administration de votre boutique, revenez d'abord à la console du serveur et lancez la commande suivante pour supprimer le répertoire d'installation de Zen Cart.

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

Afin de gérer votre boutique en ligne Zen Cart, cliquez sur le lien Admin Backend qui vous redirigera vers le backend de la boutique. Utilisez les informations d'identification d'administrateur configurées lors du processus d'installation afin de vous connecter au panneau principal de Zen Cart, comme indiqué dans la capture d'écran ci-dessous.

Vous pouvez également visiter le panneau Web d'administration de Zen Cart en accédant à votre serveur Adresse IP ou nom de domaine via le protocole HTTPS vers l'adresse URL du répertoire d'administration chaîne aléatoire configurée lors du processus d'installation.

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

Après vous être connecté au panneau d'administration soutenu par Zen Cart, complétez l'assistant de configuration initial avec les détails de votre propre magasin et git sur le bouton Mettre à jour pour écrire les modifications, comme illustré dans la capture d'écran suivante.

Afin de sécuriser l'application Zen Cart, revenez à la console du serveur et émettez les commandes suivantes pour modifier les autorisations pour le fichier includes/configure.php et pour que le fichier configure.php du répertoire admin appartienne 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, afin de forcer les visiteurs à parcourir le site Web frontal de Zen Cart et à accéder en toute sécurité à l'interface principale via le protocole HTTPS qui crypte le trafic entre le serveur et les navigateurs clients, retournez sur le terminal de votre serveur et créez un nouveau fichier .htaccess en émettant ce qui suit commande.

nano /var/www/html/.htaccess

Modifiez les paramètres PHP pour correspondre à vos propres ressources de serveur et ajoutez les règles de redirection HTTPS comme indiqué dans l'extrait de fichier .htaccess ci-dessous  :

# 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! Vous avez installé et configuré avec succès l'application de commerce électronique Zen Cart dans Debian 9.2. Cependant, étant donné que le serveur HTTP Apache utilise un certificat auto-signé non approuvé pour crypter 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 votre entreprise de boutique en ligne. Dans ce cas, vous devez acheter un certificat émis par une autorité de certification de confiance ou obtenir une paire de certificats gratuite auprès de Let's Encrypt CA.

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


Debian
  1. Comment installer PHP 7.4 / 7.3 / 7.2 / 7.1 sur Debian 10 / Debian 9

  2. Comment installer PHP 8 sur Debian 10

  3. Comment installer PHP sur Debian 11

  4. Comment installer PHP 7.2 sur Debian 9

  5. Comment installer PHP 7.3 sur Debian 10

Comment installer SuiteCRM sur Debian 9

Comment installer PHP 8 sur Debian 11

Comment installer PHP Composer sur Debian 11

Comment installer MySQL 8 sur Debian 10

Comment installer le serveur LAMP sur Debian 9

Comment installer PHP 5.6 sur Ubuntu 16.04 et Debian 9