Comment installer PrestaShop avec Apache et Let’s Encrypt SSL sur CentOS 8

PrestaShop est un panier d’achat open-source écrit en PHP utilisé pour créer et gérer ton commerce en ligne. Il offre une interface simple et facile à utiliser qui t’aide à lancer ta boutique en ligne en un minimum de temps. Il offre de nombreuses fonctionnalités, notamment une interface conviviale, plusieurs passerelles de paiement (PayPal, Google Checkout), un design adapté aux mobiles, une assistance gratuite, un système multilingue, des outils d’analyse et de reporting, et bien plus encore.

Dans ce billet, nous allons te montrer comment installer PrestaShop avec Apache et un certificat SSL gratuit Let’s Encrypt sur CentOS 8.

Conditions préalables

  • Un serveur fonctionnant sous CentOS 8.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur ton serveur.

Installer le serveur LAMP

Avant de commencer, le serveur LAMP doit être installé sur ton serveur. S’il n’est pas installé, tu peux l’installer avec d’autres extensions PHP à l’aide de la commande suivante :

dnf install httpd mariadb-server php php-cli php-bcmath php-mysqli php-gd php-pdo php-xmlrpc php-intl php-posix php-json php-curl php-zip unzip -y

Après avoir installé tous les paquets requis, édite le fichier php.ini et modifie certains paramètres par défaut :

nano /etc/php.ini

Change les lignes suivantes :

max_input_vars = 3000
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 600
memory_limit = 256M
date.timezone = Asia/Kolkata

Enregistre et ferme le fichier puis démarre le service Apache et MariaDB et active leur démarrage au redémarrage du système :

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

À ce stade, le serveur LAMP est installé sur ton serveur.

Créer une base de données pour PrestaShop

PrestaShop utilise une base de données MySQL/MariaDB pour stocker ses données. Tu devras donc créer une base de données et un serveur pour PrestaShop.

Tout d’abord, connecte-toi à MariaDB avec la commande suivante :

mysql

Une fois connecté, crée une base de données et un utilisateur avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE prestashopdb;
MariaDB [(none)]> CREATE USER 'prestashopuser'@'localhost' IDENTIFIED BY 'securepassword';

Ensuite, accorde tous les privilèges à la prestashopdb avec la commande suivante :

MariaDB [(none)]> GRANT ALL PRIVILEGES ON prestashopdb. * TO 'prestashopuser'@'localhost';

Ensuite, supprime les privilèges et sors de MariaDB avec la commande suivante: :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installe PrestaShop

Ensuite, tu devras télécharger la dernière version de PrestaShop depuis leur page de téléchargement officielle. Tu peux la télécharger avec la commande suivante :

wget https://download.prestashop.com/download/releases/prestashop_1.7.7.3.zip

Une fois le téléchargement terminé, décompresse le fichier téléchargé dans le répertoire racine du site Web Apache à l’aide de la commande suivante :

unzip prestashop_1.7.7.3.zip -d /var/www/html/prestashop

Ensuite, définis la propriété appropriée au répertoire prestashop à l’aide de la commande suivante :

chown -R apache:apache /var/www/html/prestashop

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer Apache pour PrestaShop

Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Apache pour PrestaShop. Tu peux le créer à l’aide de la commande suivante :

nano /etc/httpd/conf.d/prestashop.conf

Ajoute les lignes suivantes :

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName prestashop.example.com
    DocumentRoot /var/www/html/prestashop

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

    ErrorLog /var/log/httpd/prestashop-error_log
    CustomLog /var/log/httpd/prestashop-access_log common
</VirtualHost>

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, redémarre le service Apache pour appliquer les modifications :

systemctl restart httpd

Ensuite, vérifie l’état du service Apache à l’aide de la commande suivante :

systemctl status httpd

Tu devrais obtenir la sortie suivante :

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2021-04-07 01:04:19 EDT; 2h 2min ago
     Docs: man:httpd.service(8)
 Main PID: 47841 (httpd)
   Status: "Total requests: 313; Idle/Busy workers 100/0;Requests/sec: 0.0425; Bytes served/sec: 1.2KB/sec"
    Tasks: 278 (limit: 12524)
   Memory: 35.9M
   CGroup: /system.slice/httpd.service
           ??47841 /usr/sbin/httpd -DFOREGROUND
           ??47843 /usr/sbin/httpd -DFOREGROUND
           ??47844 /usr/sbin/httpd -DFOREGROUND
           ??47845 /usr/sbin/httpd -DFOREGROUND
           ??47846 /usr/sbin/httpd -DFOREGROUND
           ??48061 /usr/sbin/httpd -DFOREGROUND

Apr 07 01:04:19 centos8 systemd[1]: Stopped The Apache HTTP Server.
Apr 07 01:04:19 centos8 systemd[1]: Starting The Apache HTTP Server...

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer le pare-feu

Ensuite, tu dois autoriser les ports 80 et 443 à travers le pare-feu. Tu peux les autoriser avec la commande suivante :

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https

Ensuite, recharge le pare-feu pour appliquer les modifications :

firewall-cmd --reload

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accède à PrestaShop

Maintenant, ouvre ton navigateur Web et accède à l’interface Web de PrestaShop en utilisant l’URL http://prestashop.example.com. Tu seras redirigé vers la page suivante :

Installateur Prestashop

Choisis la langue

Sélectionne ta langue et clique sur le bouton Suivant. Tu devrais voir la page suivante :

Contrat de licence

Accepte le Contrat de licence et clique sur le bouton Suivant. Tu devrais voir la page suivante :

Détails de la boutique

Compte Admin

Indique le nom de ta boutique, les informations sur ton pays, les informations sur ton compte et clique sur le bouton Suivant. Tu devrais voir la page suivante :

Configuration de la base de données

Indique le nom de ta base de données, le nom d’utilisateur de la base de données, le mot de passe et clique sur le bouton Suivant. Une fois l’installation terminée, tu devrais voir la page suivante :

L'installation de Prestashop s'est terminée avec succès

Clique sur le bouton Gérer ton magasin. Tu devrais voir la page suivante :

Retirer l'installateur

Maintenant, supprime le dossier d’installation avec la commande suivante :

rm -rf /var/www/html/prestashop/install

Ensuite, clique sur l’URL d’administration de PrestaShop. Tu devrais voir la page suivante :

Connexion admin Prestashop

Indique ton nom d’utilisateur admin, ton mot de passe et clique sur le bouton LOG IN. Tu devrais voir le tableau de bord PrestaShop à la page suivante :

Tableau de bord Prestashop

Sécurise PrestaShop avec Let’s Encrypt SSL

Ensuite, tu devras installer le client Certbot pour installer le SSL Let’s Encrypt pour PrestaShop. Tu peux l’installer avec la commande suivante :

dnf install letsencrypt python3-certbot-apache

Ensuite, obtiens et installe un certificat SSL pour ton domaine lets avec la commande suivante :

certbot --apache -d prestashop.example.com

Il te sera demandé de fournir ton adresse e-mail et d’accepter les conditions de service :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for prestashop.example.com
Performing the following challenges:
http-01 challenge for prestashop.example.com
Waiting for verification.
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/httpd/conf.d/prestashop.conf
Redirecting all traffic on port 80 to ssl in /etc/httpd/conf.d/prestashop.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://prestashop.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: [email protected]).


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/prestashop.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/prestashop.example.com/privkey.pem
   Your certificate will expire on 2021-06-09. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot 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

Tu peux maintenant accéder à ton site Web en toute sécurité en utilisant l’URL https://prestashop.example.com.

Conclusion

Félicitations ! Tu as réussi à installer PrestaShop avec Apache et Let’s Encrypt SSL sur CentOS 8. Tu peux maintenant ajouter ton produit à PrestaShop et commencer à vendre en ligne. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...