
Sur un hébergement mutualisé comme o2switch, chaque boutique PrestaShop peut nécessiter une version PHP différente. En utilisant un php.ini centralisé et des réglages par dossier, vous gagnez en flexibilité, sécurisez vos configurations et évitez les conflits lors des mises à jour automatiques du .htaccess. Une méthode idéale pour les développeurs et agences qui gèrent plusieurs boutiques ou projets simultanément.
/home/votre_login/php.ini
votre_login représente votre identifiant o2switch. C’est votre espace perso sur le serveur, où vous pouvez ajuster PHP pour chaque site ou dossier, en toute sécurité.
# FICHIER PHP.INI PERSONNALISÉ – O2SWITCH / PRESTASHOP
# Compatible PHP 7.4.x / 8.x
; 📅 CONFIGURATION GÉNÉRALE
date.timezone=Europe/Paris
display_errors=off
; 💾 GESTION DES RESSOURCES ET TEMPS D’EXÉCUTION
memory_limit=2038M
max_input_vars=250000
max_execution_time=360
output_buffering=4096
upload_max_filesize=512M
post_max_size=512M
; 🧩 EXTENSIONS PHP ESSENTIELLES POUR PRESTASHOP
; --- Support MySQL moderne ---
extension=mysqlnd.so
extension=nd_mysqli.so
extension=nd_pdo_mysql.so
; --- Extensions de base ---
extension=json.so
extension=intl.so
extension=mcrypt.so
extension=gd.so
extension=xml.so
extension=xmlreader.so
extension=xmlrpc.so
extension=xmlwriter.so
extension=soap.so
extension=tidy.so
extension=bcmath.so
extension=dom.so
extension=fileinfo.so
extension=imap.so
extension=zip.so
extension=pdo.so
extension=mbstring.so
extension=imagick.so
; ⚠️ EXTENSIONS OPTIONNELLES (DÉSACTIVÉES PAR DÉFAUT)
; extension=memcache.so
; extension=memcached.so
; extension=ioncube.so
; 🚫 NE PAS RÉACTIVER CES ANCIENNES EXTENSIONS
; (supprimées depuis PHP 7)
; extension=mysql.so
Pour appliquer cette configuration à un répertoire, éditez le fichier .htaccess situé à la racine de votre boutique et placez le bloc suivant avant le marqueur # ~~start~~ :
SetHandler application/x-httpd-php74
AddHandler application/x-httpd-php74 .php
suPHP_ConfigPath /home/votre_login/php.ini
AddHandler : forcent PHP 7.4 pour ce répertoire.suPHP_ConfigPath : indique le chemin de votre fichier php.ini personnalisé.# ~~start~~ : PrestaShop régénère automatiquement le reste du .htaccess, donc tout code après ce marqueur peut être écrasé.Vous pouvez gérer différentes versions pour différents répertoires PrestaShop.
/prestashop56/ → PHP 5.6/prestashop73/ → PHP 7.3/prestashop74/ → PHP 7.4/prestashop81/ → PHP 8.1Dans chaque répertoire, .htaccess contiendra le bloc adapté :
# Pour PHP 7.3
SetHandler application/x-httpd-php73
AddHandler application/x-httpd-php73 .php
suPHP_ConfigPath /home/votre_login/php.ini
Le fichier php.ini peut rester unique pour toutes les versions, tant que vous utilisez les extensions modernes (mysqlnd.so, nd_mysqli.so, etc.) compatibles PHP 7+.
Il est possible d’utiliser le même fichier php.ini pour toutes vos installations si elles utilisent exactement la même version de PHP et ont besoin des mêmes extensions et réglages. Cela signifie que tous vos sites partageront les mêmes paramètres pour la mémoire, la taille des uploads, le temps d’exécution, et les extensions activées.
L’avantage principal est que tout est centralisé, ce qui facilite la maintenance et permet de garantir que tous vos sites fonctionnent de manière uniforme sans avoir à modifier plusieurs fichiers différents.
En revanche, si vous hébergez plusieurs versions différentes de PrestaShop, comme 1.7, 8 ou 9, il est préférable de créer un fichier php.ini distinct pour chaque version.
La raison est simple : chaque version de PrestaShop peut nécessiter des extensions PHP différentes, et certaines extensions obsolètes ou non compatibles avec les versions récentes de PHP peuvent provoquer des erreurs ou des dysfonctionnements si elles sont activées sur toutes les installations.
Cette méthode assure que vos sites restent stables, performants et faciles à gérer, tout en vous permettant de gérer plusieurs versions de PHP sur un même hébergement.
Résumé pratique :
SetHandler application/x-httpd-php74
AddHandler application/x-httpd-php74 .php
suPHP_ConfigPath /home/Nom de votre dossier racine/php_ps16.ini
; ========================================
; PHP.INI pour Prestashop v1.6 Avec PHP7.4
; /home/Nom de votre dossier racine/php_ps16.ini
========================================
date.timezone = Europe/Paris
display_errors = Off
log_errors = On
error_log = ~/logs/php-error.log
memory_limit = 1024M
max_input_vars = 10000
max_execution_time = 180
max_input_time = 180
upload_max_filesize = 128M
post_max_size = 128M
expose_php = Off
session.use_strict_mode = 1
session.cookie_httponly = 1
session.cookie_samesite = Lax
extension = mysqlnd
extension = mysqli
extension = pdo_mysql
extension = pdo
extension = json
extension = intl
extension = gd
extension = xml
extension = xmlreader
extension = xmlwriter
extension = soap
extension = bcmath
extension = dom
extension = fileinfo
extension = zip
extension = mbstring
extension = curl
extension = exif
extension = tidy
extension = imagick
zend_extension = opcache
opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 20000
opcache.revalidate_freq = 0
opcache.save_comments = 1
<FilesMatch \.php$>
SetHandler application/x-httpd-php74
</FilesMatch>
AddHandler application/x-httpd-php74 .php
suPHP_ConfigPath /home/Nom de votre dossier/php_ps17.ini
; ========================================
; PHP.INI pour Prestashop v7 Avec PHP7.4 ou 8.xx
; /home/Nom de votre dossier/php_ps17.ini
; ========================================
; CONFIGURATION GÉNÉRALE
date.timezone = Europe/Paris
display_errors = Off
log_errors = On
error_log = ~/logs/php-error.log
; GESTION DES RESSOURCES ET TEMPS D'EXÉCUTION
memory_limit = 2048M
max_input_vars = 250000
max_execution_time = 360
max_input_time = 360
upload_max_filesize = 512M
post_max_size = 512M
output_buffering = 4096
file_uploads = On
; SÉCURITÉ ET SESSIONS
expose_php = Off
session.use_strict_mode = 1
session.cookie_httponly = 1
session.cookie_samesite = Lax
; EXTENSIONS PHP ESSENTIELLES POUR PRESTASHOP 1.7
extension = mysqlnd
extension = mysqli
extension = pdo_mysql
extension = pdo
extension = json
extension = intl
extension = gd
extension = xml
extension = xmlreader
extension = xmlwriter
extension = soap
extension = tidy
extension = bcmath
extension = dom
extension = fileinfo
extension = zip
extension = mbstring
extension = imagick
extension = curl
extension = exif
extension = sodium
; OPCACHE POUR PERFORMANCES
zend_extension = opcache
opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 512
opcache.interned_strings_buffer = 32
opcache.max_accelerated_files = 40000
opcache.revalidate_freq = 0
opcache.save_comments = 1
opcache.jit = 1255
opcache.jit_buffer_size = 200M
; EXTENSIONS OPTIONNELLES (À ACTIVER SI BESOIN)
; extension = redis
; extension = memcached
; extension = memcache
; extension = ioncube
<FilesMatch \.php$>
SetHandler application/x-httpd-php81
</FilesMatch>
AddHandler application/x-httpd-php81 .php
suPHP_ConfigPath /home/Nom de votre dossier/php_ps8.ini
; ========================================
; PHP.INI pour Prestashop v8 avec PHP8.1
; /home/Nom de votre dossier/php_ps8.ini
; ========================================
date.timezone = Europe/Paris
display_errors = Off
log_errors = On
error_log = ~/logs/php-error.log
memory_limit = 2048M
max_input_vars = 250000
max_execution_time = 360
max_input_time = 360
upload_max_filesize = 512M
post_max_size = 512M
expose_php = Off
session.use_strict_mode = 1
session.cookie_httponly = 1
session.cookie_samesite = Lax
extension = mysqlnd
extension = mysqli
extension = pdo_mysql
extension = json
extension = intl
extension = gd
extension = xml
extension = xmlreader
extension = xmlwriter
extension = soap
extension = tidy
extension = bcmath
extension = dom
extension = fileinfo
extension = zip
extension = pdo
extension = mbstring
extension = imagick
<FilesMatch \.php$>
SetHandler application/x-httpd-php83
</FilesMatch>
AddHandler application/x-httpd-php83 .php
suPHP_ConfigPath /home/Nom de votre dossier/php.ini
; ========================================
; PHP.INI pour Prestashop v9 avec PHP8.3
; /home/Nom de votre dossier/php_ps9.ini
; ========================================
zend_extension = opcache
opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 512
opcache.interned_strings_buffer = 32
opcache.max_accelerated_files = 40000
opcache.revalidate_freq = 0
opcache.save_comments = 1
opcache.jit = 1255
opcache.jit_buffer_size = 200M
memory_limit = 1024M
upload_max_filesize = 256M
post_max_size = 256M
max_execution_time = 900
max_input_vars = 10000
max_input_time = 600
output_buffering = 4096
file_uploads = On
date.timezone = Europe/Paris
display_errors = Off
log_errors = On
error_log = ~/logs/php-error.log
expose_php = Off
session.use_strict_mode = 1
session.cookie_httponly = 1
session.cookie_samesite = Lax
extension = mysqli
extension = pdo_mysql
extension = pdo
extension = json
extension = intl
extension = gd
extension = xml
extension = xmlreader
extension = xmlwriter
extension = soap
extension = tidy
extension = bcmath
extension = dom
extension = fileinfo
extension = zip
extension = mbstring
extension = curl
extension = exif
extension = imagick
extension = sodium
extension = opcache
; extension = redis
; extension = memcached
; extension = memcache
; extension = ioncube
public_html..htaccess local.# ~~start~~;.info.php :
.htaccess.
Cette approche est pratique pour les développeurs et agences qui gèrent plusieurs boutiques ou versions de CMS sur un hébergement mutualisé comme o2switch.
Pour être compatible avec :
✅ WordPress
✅ PrestaShop 1.6
✅ PrestaShop 1.7
✅ PrestaShop 8
✅ PrestaShop 9
Ce tableau vous permettra d’activer une seule fois les bonnes extensions dans le MultiPHP INI Editor / Select PHP Version, sans rien oublier.
| Extension PHP | WordPress | PS 1.6 | PS 1.7 | PS 8 | PS 9 | À ACTIVER ? |
|---|---|---|---|---|---|---|
| bcmath | — | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| curl | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| dom | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| exif | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| fileinfo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| gd | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| iconv | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| intl | Recommandé | Optionnel | ✔️ | ✔️ | ✔️ | ✔️ |
| json | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| mbstring | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| mysqli | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| mysqlnd | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| openssl | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| pcre | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| pdo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| pdo_mysql | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| session | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| simplexml | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| soap | Optionnel | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| tidy | Optionnel | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| xml | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| xmlreader | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| xmlwriter | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| zip | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| zlib | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| sodium | ✔️ | — | Optionnel | ✔️ | ✔️ | ✔️ (PS8/9 utile) |
| imagick | Recommandé | Recommandé | Recommandé | Recommandé | Recommandé | ✔️ |
| opcache | Recommandé | Recommandé | Recommandé | Recommandé | Recommandé | ✔️ |
| redis | Optionnel | Optionnel | Optionnel | Optionnel | Optionnel | (FACULTATIF) |
| memcached | Optionnel | Optionnel | Optionnel | Optionnel | Optionnel | (FACULTATIF) |
| mcrypt | — | ✔️ (PS 1.6 seulement) | — | — | — | ❗ Seulement si PS 1.6 |
Remarques :
mcrypt uniquement pour cette instance (sinon inutile).opcache et imagick sont fortement recommandés en production.redis / memcached : activer seulement si tu utilises ces systèmes de cache.| Extension | Statut | Commentaire |
|---|---|---|
| ctype | 🟩 Obligatoire | Base PHP |
| curl | 🟩 Obligatoire | WP + PS |
| date | 🟩 Obligatoire | Base PHP |
| dom | 🟩 Obligatoire | PS + WP |
| exif | 🟩 Obligatoire | Images / WP |
| fileinfo | 🟩 Obligatoire | WP + PS |
| filter | 🟩 Obligatoire | Base PHP |
| gd | 🟩 Obligatoire | Manipulation d’images |
| hash | 🟩 Obligatoire | Base PHP |
| iconv | 🟩 Obligatoire | Encodage |
| intl | 🟩 Obligatoire | Choix de langue / normalisation |
| json | 🟩 Obligatoire | WP + PS |
| libxml | 🟩 Obligatoire | XML |
| mbstring | 🟩 Obligatoire | Manipulation des chaînes |
| mysqli | 🟩 Obligatoire | Connexion MySQL |
| mysqlnd | 🟩 Obligatoire | Driver natif MySQL |
| pdo | 🟩 Obligatoire | Base PDO |
| pdo_mysql | 🟩 Obligatoire | PDO + MySQL |
| session | 🟩 Obligatoire | Sessions PHP |
| simplexml | 🟩 Obligatoire | PS + WP |
| sodium | 🟩 Obligatoire | Sécurité |
| spl | 🟩 Obligatoire | Base PHP |
| standard | 🟩 Obligatoire | Base PHP |
| tokenizer | 🟩 Obligatoire | WP + PS |
| xml | 🟩 Obligatoire | XML |
| xmlreader | 🟩 Obligatoire | XML |
| xmlwriter | 🟩 Obligatoire | XML |
| zip | 🟩 Obligatoire | Import/export modules |
| zlib | 🟩 Obligatoire | Compression |
| opcache | 🟩 Obligatoire | Performance PS + WP |
| imagick | 🟧 Optionnel | Images HD |
| redis | 🟧 Optionnel | Cache avancé |
| memcached | 🟧 Optionnel | Cache |
| memcache | 🟧 Optionnel | Ancien système de cache |
| imap | 🟧 Optionnel | Connexion email |
| oauth | 🟧 Optionnel | API externes |
| yaml | 🟧 Optionnel | Développement PS |
| xmlrpc | 🟧 Optionnel | API anciennes |
| mcrypt | 🟧 Optionnel (PS 1.6) | Vieux modules PS 1.6 |
| ioncube_loader | 🟥 À éviter | Ralentit + inutile |
| xdebug | 🟥 À éviter | Dev uniquement — très lent |
| scoutapm | 🟥 À éviter | Monitoring externe |
| newrelic | 🟥 À éviter | Monitoring lourd |
| tideways_xhprof | 🟥 À éviter | Profiling — très lent |
| elastic_apm | 🟥 À éviter | Monitoring |
| geos | 🟥 À éviter | Inutile |
| gender | 🟥 À éviter | Inutile |
| gmagick | 🟥 À éviter | Instable |
| mongodb | 🟥 À éviter | DB non utilisée |
| oci8 | 🟥 À éviter | Oracle |
| pgsql | 🟥 À éviter | PostgreSQL |
| sqlsrv | 🟥 À éviter | SQL Server |
| ssh2 | 🟥 À éviter | Peu utile |
| sourceguardian | 🟥 À éviter | Encodeur rarement utile |
| trader | 🟥 À éviter | Finance uniquement |
| uploadprogress | 🟥 À éviter | Instable |
Php pour Prestashop Php pour Prestashop Php pour Prestashop Php pour Prestashop Php pour Prestashop Php pour Prestashop Php pour Prestashop Php pour Prestashop Php pour Prestashop Php pour Prestashop
Si vous gérez plusieurs boutiques PrestaShop sur o2switch, il n’est pas nécessaire d’avoir un php.ini par projet. Un seul fichier placé à la racine (/home/votre_login/php.ini) suffit, à condition de configurer correctement vos dossiers via .htaccess pour que chaque boutique utilise la version PHP qui lui convient.
Ainsi, vous pouvez faire coexister une boutique sous PrestaShop 1.6 avec PHP 7.4 et une autre sous PrestaShop 8 avec PHP 8.2, tout en gardant les performances et la compatibilité intactes.
Pour optimiser vos sites, désactivez les extensions obsolètes et activez les caches natifs comme OPcache ou APCu. Ces réglages améliorent souvent plus la vitesse que le simple choix de la version PHP.
N’oubliez pas de vérifier la version PHP active avec un fichier info.php et de conserver une sauvegarde de votre .htaccess avant chaque modification.
En suivant cette méthode, votre environnement reste stable, sécurisé et facile à maintenir, même avec plusieurs versions de PrestaShop sur le même hébergement.
🧾 Vous gardez la maîtrise de votre site hébergé chez o2switch, avec vos propres règles, vos données, et votre liberté.
🎯 En résumé : on teste, on compare, on reste libre. Et on avance intelligemment, pas à l’aveugle.
Oui, je vous partage ici des solutions gratuites, accessibles à tous.
Non, je ne me tire pas une balle dans le pied.
Pourquoi ? Parce que mon rôle ne s’arrête pas à un simple post.
💡 Il y a des erreurs à ne pas faire quand on se lance dans le commerce en ligne ou qu’on veut encaisser ses ventes simplement. Derrière chaque outil gratuit ou économique, il y a des choix stratégiques à faire, des paramétrages à maîtriser, des règles à respecter.
🎯 Et c’est là que j’interviens : Je suis là pour vous conseiller, vous accompagner avec mon expérience, et vous aider à ne pas perdre du temps, ni de l’argent sur de mauvais choix ou des bricolages inefficaces.
🚀 Mon expertise dans le développement web et le commerce en ligne n’est pas un luxe, c’est un levier pour aller plus vite, plus loin, plus proprement.
Alors oui, à vous de vous organiser, et de me rémunérer à ma juste valeur quand vous avez besoin d’aller plus loin.
👉 Moi, je reste fidèle à ce que je fais depuis le début : vous proposer ce qu’il y a de mieux, dans VOTRE intérêt.