Modifications FTP ignorées sur PrestaShop : permissions et cache
Vos modifications FTP ne s'affichent pas sur PrestaShop ? Découvrez comment résoudre les problèmes de permissions fichiers, cache Smarty et droits serveur.
En bref : Si vos modifications FTP ne s'affichent pas sur PrestaShop, activez la recompilation Smarty dans Performances et corrigez les permissions fichiers avec chown utilisateur:www-data et chmod 644/755.
Le symptôme classique : vos modifications FTP ne s'affichent pas
Vous modifiez un fichier template via FTP, vous rechargez la page… et rien ne change. C'est l'un des problèmes les plus fréquents chez les développeurs PrestaShop, et il a généralement deux causes distinctes qui peuvent se combiner : le cache des templates Smarty et les permissions fichiers sur le serveur.
Cause n°1 : le cache Smarty ne détecte pas vos modifications
PrestaShop utilise le moteur de templates Smarty, qui compile les fichiers .tpl en fichiers PHP mis en cache dans le dossier var/cache/ (ou cache/smarty/compile/ sur les versions antérieures à 1.7). Par défaut en production, Smarty ne vérifie pas si le fichier source a été modifié : il sert la version compilée en cache.
Configuration recommandée en développement
Rendez-vous dans le Back Office :
- **PrestaShop 1.6 / 1.7** : Paramètres avancés → Performances
- **PrestaShop 8.x** : Paramètres avancés → Performances
Dans la section Smarty, configurez :
L'option "Recompiler les fichiers de template s'ils ont été mis à jour" est le juste milieu : Smarty vérifie la date de modification du fichier .tpl et ne recompile que si nécessaire. C'est le réglage idéal pendant le développement.
Purge manuelle du cache
Si le changement de configuration ne suffit pas, purgez manuellement le cache compilé :
# PrestaShop 8.x / 1.7
rm -rf var/cache/prod/smarty/compile/*
rm -rf var/cache/prod/smarty/cache/*
# PrestaShop 1.6
rm -rf cache/smarty/compile/*
rm -rf cache/smarty/cache/*
Attention : ne supprimez jamais le dossier
var/cache/lui-même, uniquement son contenu.
Sur PrestaShop 8.x, vous pouvez aussi utiliser la commande Symfony intégrée :
php bin/console cache:clear --env=prod
Cause n°2 : les permissions fichiers bloquent l'écriture
Même avec le bon réglage Smarty, si le serveur web ne peut pas lire vos fichiers modifiés (ou si votre client FTP ne peut pas les écrire), les modifications resteront invisibles.
Comprendre le modèle de permissions Linux
Sur un serveur Linux, chaque fichier possède trois attributs de sécurité :
- **Propriétaire (owner)** : l'utilisateur qui possède le fichier
- **Groupe (group)** : le groupe associé au fichier
- **Permissions (mode)** : lecture (r=4), écriture (w=2), exécution (x=1) pour propriétaire/groupe/autres
Le serveur web (Apache ou Nginx) tourne sous l'utilisateur www-data sur Debian/Ubuntu. Votre client FTP se connecte avec votre utilisateur personnel (par exemple maxime). Si ces deux utilisateurs ne partagent pas les bons droits, les fichiers modifiés par FTP ne seront pas lisibles par le serveur web, ou inversement.
Diagnostic
Connectez-vous en SSH et vérifiez les permissions du fichier modifié :
ls -la themes/votre-theme/templates/checkout/cart.tpl
Résultat typique problématique :
-rw-r--r-- 1 maxime maxime 4521 jul 23 14:30 cart.tpl
Ici, le groupe est maxime et non www-data : le serveur web n'a que les droits "autres" (lecture seule), et ne pourra pas écrire le cache compilé.
Correction : chown et chmod
Étape 1 — Changer le propriétaire et le groupe :
# Syntaxe : chown utilisateur:groupe fichier
chown maxime:www-data themes/votre-theme/templates/checkout/cart.tpl
Pour appliquer récursivement à tout le thème :
chown -R maxime:www-data themes/votre-theme/
Cela permet à votre utilisateur FTP de rester propriétaire (écriture) tout en donnant au groupe www-data l'accès en lecture.
Étape 2 — Ajuster les permissions :
# Dossiers : 755 (lecture + traversée pour tous)
find themes/votre-theme/ -type d -exec chmod 755 {} \;
# Fichiers : 644 (lecture pour tous, écriture pour le propriétaire)
find themes/votre-theme/ -type f -exec chmod 644 {} \;
Si vous avez besoin que le groupe puisse aussi écrire (utile quand PrestaShop doit mettre à jour certains fichiers) :
# Fichiers : 664
find themes/votre-theme/ -type f -exec chmod 664 {} \;
# Dossiers : 775
find themes/votre-theme/ -type d -exec chmod 775 {} \;
Sécurité : n'utilisez jamais
chmod 777en production. Cette permission donne un accès total à tous les utilisateurs du système et constitue une faille de sécurité majeure.
Permissions recommandées pour PrestaShop
Vérification complète après correction
Une fois les deux causes traitées, suivez cette procédure de vérification :
# 1. Vérifier les permissions
ls -la themes/votre-theme/templates/checkout/cart.tpl
# Attendu : -rw-rw-r-- 1 maxime www-data
# 2. Purger le cache
rm -rf var/cache/prod/smarty/compile/*
# 3. Tester le rendu
curl -I https://votre-boutique.fr/panier
# Attendu : HTTP/1.1 200 OK
Rechargez ensuite la page dans votre navigateur en forçant le rafraîchissement (Ctrl + Shift + R) pour contourner le cache du navigateur.
Bonnes pratiques pour éviter ce problème à l'avenir
- **Utilisez un outil de déploiement** plutôt que le FTP manuel : Git + un script de déploiement automatisé garantissent des permissions cohérentes à chaque mise à jour.
- **Ajoutez votre utilisateur FTP au groupe www-data** pour éviter les conflits de permissions :
- **Configurez un umask adapté** dans votre serveur FTP pour que les fichiers uploadés héritent automatiquement des bons droits :
- **En développement**, activez systématiquement la recompilation Smarty pour voir vos changements immédiatement.
- **En production**, gardez le cache activé et purgez-le uniquement après un déploiement.
usermod -aG www-data maxime
# Dans /etc/vsftpd.conf (pour vsftpd)
local_umask=002
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.