PrestaShop est un panier d'achat open-source écrit en PHP utilisé pour créer et gérer votre activité en ligne. Il fournit une interface simple et facile à utiliser qui vous aide à lancer votre 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), une conception adaptée aux mobiles, une assistance gratuite, multilingue, analytique, des rapports, etc.
Dans cet article, nous vous montrerons comment installer PrestaShop avec Apache et un certificat SSL Let's Encrypt gratuit sur CentOS 8.
Prérequis
- Un serveur exécutant CentOS 8.
- Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
- Un mot de passe root est configuré sur votre serveur.
Installer le serveur LAMP
Avant de commencer, le serveur LAMP doit être installé sur votre serveur. S'il n'est pas installé, vous pouvez 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 packages requis, modifiez le fichier php.ini et modifiez certains paramètres par défaut :
nano /etc/php.ini
Modifiez 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
Enregistrez et fermez le fichier, puis démarrez les services Apache et MariaDB et autorisez-les à démarrer 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 votre serveur.
Créer une base de données pour PrestaShop
PrestaShop utilise une base de données MySQL/MariaDB pour stocker ses données. Vous devrez donc créer une base de données et suer pour PrestaShop.
Tout d'abord, connectez-vous à MariaDB avec la commande suivante :
mysql
Une fois connecté, créez 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, accordez tous les privilèges à prestashopdb avec la commande suivante :
MariaDB [(none)]> GRANT ALL PRIVILEGES ON prestashopdb. * TO 'prestashopuser'@'localhost';
Ensuite, videz les privilèges et quittez MariaDB avec la commande suivante :
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer PrestaShop
Ensuite, vous devrez télécharger la dernière version de PrestaShop à partir de leur page de téléchargement officielle. Vous pouvez le 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écompressez le fichier téléchargé dans le répertoire racine Web d'Apache à l'aide de la commande suivante :
unzip prestashop_1.7.7.3.zip -d /var/www/html/prestashop
Ensuite, définissez la propriété appropriée sur le répertoire prestashop à l'aide de la commande suivante :
chown -R apache:apache /var/www/html/prestashop
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer Apache pour PrestaShop
Ensuite, vous devrez créer un fichier de configuration d'hôte virtuel Apache pour PrestaShop. Vous pouvez le créer avec la commande suivante :
nano /etc/httpd/conf.d/prestashop.conf
Ajoutez 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>
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service Apache pour appliquer les modifications :
systemctl restart httpd
Ensuite, vérifiez l'état du service Apache à l'aide de la commande suivante :
systemctl status httpd
Vous devriez obtenir le résultat suivant :
? 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 vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer le pare-feu
Ensuite, vous devrez autoriser les ports 80 et 443 à travers le pare-feu. Vous pouvez les autoriser avec la commande suivante :
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
Ensuite, rechargez le pare-feu pour appliquer les modifications :
firewall-cmd --reload
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder à PrestaShop
Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web de PrestaShop en utilisant l'URL http://prestashop.example.com . Vous serez redirigé vers la page suivante :
Sélectionnez votre langue et cliquez sur Suivant bouton. Vous devriez voir la page suivante :
Acceptez le contrat de licence et cliquez sur Suivant bouton. Vous devriez voir la page suivante :
Indiquez le nom de votre boutique, les informations sur le pays, les informations sur le compte et cliquez sur Suivant bouton. Vous devriez voir la page suivante :
Indiquez votre nom de base de données, votre nom d'utilisateur de base de données, votre mot de passe et cliquez sur Suivant bouton. Une fois l'installation terminée, vous devriez voir la page suivante :
Cliquez sur Gérer votre boutique bouton. Vous devriez voir la page suivante :
Maintenant, supprimez le dossier d'installation avec la commande suivante :
rm -rf /var/www/html/prestashop/install
Ensuite, cliquez sur l'URL d'administration de PrestaShop . Vous devriez voir la page suivante :
Fournissez votre nom d'utilisateur administrateur, votre mot de passe et cliquez sur CONNEXION bouton. Vous devriez voir le tableau de bord PrestaShop sur la page suivante :
Sécuriser PrestaShop avec Let's Encrypt SSL
Ensuite, vous devrez installer le client Certbot pour installer Let's Encrypt SSL pour PrestaShop. Vous pouvez l'installer avec la commande suivante :
dnf install letsencrypt python3-certbot-apache
Ensuite, obtenez et installez un certificat SSL pour votre domaine Lets avec la commande suivante :
certbot --apache -d prestashop.example.com
Il vous sera demandé de fournir votre adresse e-mail et d'accepter les conditions d'utilisation :
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
Vous pouvez désormais accéder à votre site Web en toute sécurité à l'aide de l'URL https://prestashop.example.com.
Conclusion
Toutes nos félicitations! vous avez installé avec succès PrestaShop avec Apache et Let's Encrypt SSL sur CentOS 8. Vous pouvez maintenant ajouter votre produit à PrestaShop et commencer à vendre en ligne. N'hésitez pas à me demander si vous avez des questions.