Prestashop
Voici un tutoriel complet et corrigé pour installer PrestaShop sous Docker avec un domaine personnalisé (myshop.domain.tld), incluant toutes les étapes validées et optimisées pour éviter les erreurs SSL et les .
Tutoriel : Installer PrestaShop sous Docker avec un domaine personnalisé (myshop.domain.tld)
Prérequis
- Un serveur Debian/Ubuntu avec Docker et Portainer installés.
- Un nom de domaine (
myshop.domain.tld) pointant vers l’IP de votre serveur. - .
Étape 1 : Préparer le fichier docker-compose.yml
Collez ce fichier dans Portainer (Stacks > Add stack) :
version: '3.8'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: XXXXXX
MYSQL_DATABASE: prestashop
MYSQL_USER: prestashop
MYSQL_PASSWORD: XXXXX
volumes:
- db_data:/var/lib/mysql
networks:
- prestashop_network
prestashop:
image: prestashop/prestashop:latest
depends_on:
- db
environment:
DB_SERVER: db
DB_USER: prestashop
DB_PASSWD: XXXXX
DB_NAME: prestashop
PS_DEV_MODE: 0
PS_INSTALL_AUTO: 0 # Désactive l'installation automatique
PS_DOMAIN: myshop.domain.tld # Remplacez par votre domaine
PS_FOLDER_ADMIN: admin10665839 # Séquence numérique à choisir
PS_FOLDER_INSTALL: install10665839 # Séquence numérique doit matcher
ports:
- "8999:80" # Port 80 pour HTTP
volumes:
- prestashop_data:/var/www/html
networks:
- prestashop_network
volumes:
db_data:
prestashop_data:
networks:
prestashop_network:
driver: bridge
Étape 2 : Lancer la stack et installer PrestaShop
- Lancez la stack dans Portainer.
- Attendez 2-3 minutes que les conteneurs soient prêts.
- Accédez à l’installation sur
http://myshop.domain.tld(remplacez par votre domaine). - :
- Sélectionnez la langue.
- Acceptez les conditions générales.
- Remplissez les informations de la boutique (nom, email, mot de passe admin).
- Pour la base de données, utilisez :
- Serveur :
db - Utilisateur :
prestashop - Mot de passe :
prestashop - Base de données :
prestashop
- Serveur :
- Lancez l’installation.
- À la fin, supprimez le dossier
install:- Dans Portainer, accédez au terminal du conteneur
prestashop. - Exécutez :
rm -rf /var/www/html/install
- Dans Portainer, accédez au terminal du conteneur
Étape 3 : (si nécessaire)
Si PrestaShop force le HTTPS et que vous n’avez pas de certificat SSL valide, désactivez-le avec ces commandes SQL :
- Accédez au terminal du conteneur
db(MySQL) via Portainer. - Exécutez les requêtes (remplacez
8f35z_par le préfixe de vos tables, trouvé viaSHOW TABLES;):mysql -u prestashop -pprestashop prestashop -e "UPDATE 8f35z_configuration SET value = '0' WHERE name = 'PS_SSL_ENABLED';" mysql -u prestashop -pprestashop prestashop -e "UPDATE 8f35z_configuration SET value = '0' WHERE name = 'PS_SSL_ENABLED_EVERYWHERE';" - Redémarrez le conteneur PrestaShop dans Portainer.
Étape 4 : Configurer le domaine et l’accès
- Vérifiez que votre domaine (
myshop.domain.tld) pointe bien vers l’IP de votre serveur. - Si vous utilisez un reverse proxy (Nginx, Traefik, Apache) :
- Configurez-le pour rediriger
myshop.domain.tldvers le conteneur PrestaShop (port 80). - Exemple de configuration Nginx :
server { listen 80; server_name myshop.domain.tld; location / { proxy_pass http://[IP_DU_SERVEUR]:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
- Configurez-le pour rediriger
- Si vous voulez activer le HTTPS (recommandé pour la production) :
- Utilisez Let’s Encrypt avec Certbot pour générer un certificat SSL.
- Configurez votre reverse proxy pour utiliser le certificat.
Étape 5 : Accéder à l’admin et au frontoffice
- Admin :
http://myshop.domain.tld/admin[VOTRE_DOSSIER_ADMIN](ex:).admin01664892admin10665839 - Frontoffice :
http://myshop.domain.tld.
Étape 6 : Optimisations (optionnel)
- pour améliorer les performances :
- Dans l’admin PrestaShop, allez dans Paramètres avancés > Performances.
- Activez le cache et choisissez Memcached ou Redis si disponible.
- Sauvegarder régulièrement vos volumes Docker (
db_dataetprestashop_data). - via l’admin ou en recréant les conteneurs avec une image plus récente.
Résumé des commandes utiles
| Action | Commande |
|---|---|
| Vérifier les logs PrestaShop | docker logs [ID_DU_CONTENEUR_PRESTASHOP] |
| Accéder au terminal MySQL | docker exec -it [ID_DU_CONTENEUR_DB] mysql -u prestashop -pprestashop prestashop |
| Vider le cache PrestaShop | rm -rf /var/www/html/var/cache/* (dans le conteneur) |
| Redémarrer les conteneurs | Via Portainer ou docker-compose restart |
Problèmes courants et solutions
| Problème | Solution |
|---|---|
| Erreur SSL ou redirection HTTPS | Désactiver le SSL via SQL (Étape 3). |
| Page blanche ou erreur 500 | Vider le cache et redémarrer le conteneur. |
| Base de données inaccessible | Vérifier les identifiants dans docker-compose.yml et les logs MySQL. |
| Dossier admin introuvable | Vérifier le nom du dossier admin à la fin de l’installation. |
Conclusion
Vous avez maintenant une boutique PrestaShop fonctionnelle, accessible via http://myshop.domain.tld, avec :
- Une installation simple et automatisée via Docker.
- Un domaine personnalisé (
myshop.domain.tld). - Une désactivation du forçage SSL si nécessaire.
- Une interface admin complète pour gérer vos produits.
Prochaines étapes :
- .
- Ajouter des produits et catégories.
- .
C’est la solution la plus efficace pour 90% des cas.
Méthode via Portainer :
- Accédez au terminal du conteneur
prestashop(via Portainer > Containers > prestashop > Console). - Exécutez :
rm -rf /var/www/html/var/cache/* - Redémarrez le conteneur
prestashopdans Portainer.