🐛 DebugIntermédiaire PS 1.6 PS 1.7 PS 8.x

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.

Publié le 21 mars 2026 5 min de lecture Alexandre Carette

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 :

ParamètreValeur en développementValeur en production Cache des templatesRecompiler si les fichiers ont été mis à jourToujours recompiler (jamais) / Cache activé CacheDésactivéActivé

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 777 en 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

ÉlémentPermissionJustification Fichiers PHP / TPL644Lecture serveur web, écriture propriétaire uniquement Dossiers755Traversée pour tous, écriture propriétaire `var/cache/`775Le serveur web doit écrire le cache `var/logs/`775Le serveur web doit écrire les logs `img/`775Upload d'images depuis le Back Office `config/settings.inc.php`644Lecture seule après installation

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

  1. **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.
    1. **Ajoutez votre utilisateur FTP au groupe www-data** pour éviter les conflits de permissions :
    2. 
      usermod -aG www-data maxime
      
      1. **Configurez un umask adapté** dans votre serveur FTP pour que les fichiers uploadés héritent automatiquement des bons droits :
      2. 
        # Dans /etc/vsftpd.conf (pour vsftpd)
        local_umask=002
        
        1. **En développement**, activez systématiquement la recompilation Smarty pour voir vos changements immédiatement.
          1. **En production**, gardez le cache activé et purgez-le uniquement après un déploiement.
#ftp #permissions #cache smarty #chown #chmod #serveur

Questions fréquentes

Tout ce que vous devez savoir sur ce sujet.

Un projet PrestaShop ?

Discutons-en directement.

★★★★★

193 projets livrés

Gratuit & sans engagement — réponse sous 24h

Alexandre Carette

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.