Résoudre l'erreur memory_limit PHP après installation d'un thème PrestaShop
Erreur memory_limit après installation d'un thème PrestaShop ? Diagnostic complet, configuration php.ini optimale et solutions durables pour PHP 7/8.
En bref : L'erreur memory_limit lors de l'installation d'un thème PrestaShop se résout en augmentant la directive à 512 Mo minimum via php.ini, .htaccess ou .user.ini, après avoir diagnostiqué la configuration actuelle avec phpinfo().
Comprendre l'erreur memory_limit lors de l'installation d'un thème
L'installation d'un thème PrestaShop est l'une des opérations les plus gourmandes en mémoire PHP. Le CMS doit décompresser l'archive, parser les fichiers de configuration, générer les miniatures d'images et compiler les templates Smarty. Quand la limite mémoire allouée à PHP est insuffisante, le processus s'interrompt brutalement avec une erreur du type :
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 65536 bytes)
Ce problème est particulièrement fréquent sur les hébergements mutualisés où la valeur memory_limit est bridée par défaut à 128 Mo, voire 64 Mo.
Étape 1 : Diagnostiquer la configuration PHP actuelle
Avant de modifier quoi que ce soit, il faut connaître précisément la configuration de votre serveur. La méthode la plus fiable consiste à créer un fichier de diagnostic temporaire.
Créer un fichier phpinfo
Créez un fichier phpinfo.php à la racine de votre PrestaShop avec le contenu suivant :
<?php
phpinfo();
Accédez-y via votre navigateur : https://www.votre-boutique.com/phpinfo.php
Cette page affiche l'intégralité de la configuration PHP active. Recherchez les lignes suivantes :
Sécurité : supprimez impérativement le fichier
phpinfo.phpaprès consultation. Ce fichier expose des informations sensibles sur votre serveur (chemins, versions, modules activés) qui pourraient être exploitées par un attaquant.
Alternative en ligne de commande (accès SSH)
Si vous disposez d'un accès SSH, vous pouvez obtenir la valeur directement :
php -i | grep memory_limit
Attention : la configuration CLI peut différer de celle du serveur web (Apache/Nginx). Préférez le fichier phpinfo via le navigateur pour obtenir la valeur réellement appliquée.
Étape 2 : Augmenter le memory_limit PHP
Plusieurs méthodes existent selon votre type d'hébergement. Testez-les dans l'ordre.
Méthode 1 : Via le fichier php.ini (serveur dédié / VPS)
Localisez votre fichier php.ini :
php -i | grep "Loaded Configuration File"
Modifiez les directives :
memory_limit = 512M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
Redémarrez ensuite le service web :
# Apache
sudo systemctl restart apache2
# Nginx + PHP-FPM
sudo systemctl restart php8.2-fpm
Méthode 2 : Via .htaccess (hébergement mutualisé Apache)
Ajoutez ces lignes au début du fichier .htaccess à la racine de PrestaShop :
php_value memory_limit 512M
php_value max_execution_time 300
php_value upload_max_filesize 64M
php_value post_max_size 64M
Cette méthode ne fonctionne que si votre hébergeur autorise les overrides PHP via
.htaccess(module Apachemod_php). Elle est ignorée avec PHP-FPM.
Méthode 3 : Via un fichier php.ini local
Certains hébergeurs (OVH, Ionos, o2switch) permettent de placer un fichier php.ini ou .user.ini à la racine du site :
memory_limit = 512M
max_execution_time = 300
Méthode 4 : Directement dans PrestaShop
PrestaShop tente de surcharger la limite mémoire au démarrage. Vous pouvez forcer la valeur dans le fichier config/defines.inc.php :
/* PrestaShop 1.7 / 8.x */
@ini_set('memory_limit', '512M');
Cette méthode est un dernier recours : elle ne fonctionne que si le memory_limit serveur n'est pas verrouillé par l'hébergeur.
Étape 3 : Optimiser la configuration PHP pour PrestaShop
Au-delà du simple memory_limit, voici les réglages php.ini recommandés pour PrestaShop 8.x :
; Mémoire et exécution
memory_limit = 512M
max_execution_time = 300
max_input_time = 300
max_input_vars = 10000
; Upload
upload_max_filesize = 64M
post_max_size = 64M
; OPcache (indispensable en production)
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 20000
opcache.revalidate_freq = 60
; Sessions
session.auto_start = 0
session.use_only_cookies = 1
; Sécurité
expose_php = Off
allow_url_fopen = On
Le paramètre max_input_vars est souvent négligé mais crucial : PrestaShop génère des formulaires avec des centaines de champs (traductions, déclinaisons). Une valeur trop basse provoque des pertes silencieuses de données.
Étape 4 : Vérifier les ressources du serveur
Si le memory_limit est déjà élevé (512M+) et que l'erreur persiste, le problème est ailleurs :
- **RAM physique insuffisante** : un VPS avec 1 Go de RAM ne peut pas allouer 512 Mo à chaque processus PHP. Vérifiez avec `free -h`.
- **Trop de processus simultanés** : chaque visiteur consomme un worker PHP. Adaptez `pm.max_children` dans la configuration PHP-FPM.
- **Thème mal optimisé** : certains thèmes embarquent des images non compressées ou exécutent des opérations lourdes à l'installation. Préférez les thèmes certifiés sur PrestaShop Addons.
Vérification rapide de la RAM disponible
# Mémoire totale et disponible
free -h
# Consommation par processus PHP
ps aux --sort=-%mem | grep php | head -5
Bonnes pratiques pour éviter les problèmes mémoire
- **Activez OPcache** : réduit la consommation mémoire de 30 à 50 % en cachant le bytecode PHP.
- **Désactivez le mode debug en production** : le mode debug de PrestaShop (`_PS_MODE_DEV_`) multiplie la consommation mémoire.
- **Régénérez les miniatures par lot** : après installation d'un thème, utilisez la régénération par lot dans *Design > Images* plutôt que de tout régénérer d'un coup.
- **Surveillez les modules** : certains modules mal codés provoquent des fuites mémoire. Désactivez-les un par un pour identifier le coupable.
- **Mettez PHP à jour** : PHP 8.2/8.3 consomme significativement moins de mémoire que PHP 7.x pour les mêmes opérations.
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.