Php Pour Prestashop Thierrylaval.dev 1500x400

Comment gérer plusieurs versions de PHP pour PrestaShop

Chez o2switch, gérez vos boutiques PrestaShop en changeant facilement de version PHP par dossier ou installation.

(100 % gratuit)

Php pour Prestashop O2switch thierrylaval.dev 600x340

Gérer vos versions PHP pour Prestashop en toute simplicité

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.

1. Créer un fichier php.ini personnalisé

Commencez par créer un fichier php.ini sur votre serveur. Placez-le de préférence à la racine de votre hébergement, hors du dossier public_html, pour des raisons de sécurité.

Exemple :

				
					/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é.

Voici un exemple de fichier php.ini compatible PHP 7.4 et 8.x pour PrestaShop :

            # 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

        
Ce fichier centralise toutes les extensions nécessaires et peut être utilisé par plusieurs versions de PrestaShop sur le même serveur, à condition que les extensions soient compatibles.

2. Forcer la version PHP via le fichier .htaccess

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~~ :

				
					<FilesMatch \.php$>
  SetHandler application/x-httpd-php74
</FilesMatch>
AddHandler application/x-httpd-php74 .php
suPHP_ConfigPath /home/votre_login/php.ini
				
			

Explications :

  • SetHandler et AddHandler : forcent PHP 7.4 pour ce répertoire.
  • suPHP_ConfigPath : indique le chemin de votre fichier php.ini personnalisé.
  • Placer le bloc avant # ~~start~~ : PrestaShop régénère automatiquement le reste du .htaccess, donc tout code après ce marqueur peut être écrasé.

3. Adapter pour plusieurs versions PHP

Vous pouvez gérer différentes versions pour différents répertoires PrestaShop.

Par exemple :

  • /prestashop56/ → PHP 5.6
  • /prestashop73/ → PHP 7.3
  • /prestashop74/ → PHP 7.4
  • /prestashop81/ → PHP 8.1

Dans chaque répertoire, .htaccess contiendra le bloc adapté :

				
					# Pour PHP 7.3
<FilesMatch \.php$>
  SetHandler application/x-httpd-php73
</FilesMatch>
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+.

4. Un seul php.ini ou plusieurs fichiers ?

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 :

  • Même version de PHP et mêmes extensions → un seul php.ini suffit.
  • Différentes versions de PrestaShop ou extensions spécifiques → un fichier php.ini par version est recommandé.

Fichier .htaccess de l'installation

            SetHandler application/x-httpd-php74
AddHandler application/x-httpd-php74 .php
suPHP_ConfigPath /home/Nom de votre dossier racine/php_ps16.ini
        

Fichier php_ps16.ini du dossier racine

            ; ========================================
; 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



        

Fichier .htaccess de l'installation

            <FilesMatch \.php$>
    SetHandler application/x-httpd-php74
</FilesMatch>
AddHandler application/x-httpd-php74 .php
suPHP_ConfigPath /home/Nom de votre dossier/php_ps17.ini
        

Fichier php_ps17.ini du dossier racine

            ; ========================================
; 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


        

Fichier .htaccess de l'installation

            <FilesMatch \.php$>
    SetHandler application/x-httpd-php81
</FilesMatch>
AddHandler application/x-httpd-php81 .php
suPHP_ConfigPath /home/Nom de votre dossier/php_ps8.ini
        

Fichier php_ps8.ini du dossier racine

            ; ========================================
; 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

        

Fichier .htaccess de l'installation

            <FilesMatch \.php$>
    SetHandler application/x-httpd-php83
</FilesMatch>
AddHandler application/x-httpd-php83 .php
suPHP_ConfigPath /home/Nom de votre dossier/php.ini
        

Fichier php_ps9.ini du dossier racine

            ; ========================================
; 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

        

5. Conseils pratiques

  1. Sécurité : placez php.ini hors de public_html.
  2. Compatibilité : utilisez les extensions modernes pour éviter les erreurs avec Doctrine ou les drivers SQL.
  3. Sous-répertoires : chaque répertoire hérite de sa version PHP, sauf présence d’un autre .htaccess local.
  4. Mises à jour PrestaShop : vos directives restent intactes tant qu’elles sont placées avant le marqueur# ~~start~~;.
  5. Vérification : testez la version PHP avec un fichier info.php :
				
					<?php phpinfo(); ?>
				
			

5. Conclusion

Grâce à cette méthode, vous pouvez :

  • Gérer plusieurs versions PHP sur un même serveur.
  • Sécuriser vos paramètres avec un php.ini centralisé.
  • Assurer la compatibilité de PrestaShop 1.7 à 9.x.
  • Éviter que PrestaShop écrase vos réglages lors de régénérations automatiques du .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.

💯 Extensions à cocher dans cPanel 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.

🟦 Tableau des extensions à activer dans o2switch (par installation)

Extension PHP WordPress PS 1.6 PS 1.7 PS 8 PS 9 À ACTIVER ?
bcmath✔️✔️✔️✔️✔️
curl✔️✔️✔️✔️✔️✔️
dom✔️✔️✔️✔️✔️✔️
exif✔️✔️✔️✔️✔️✔️
fileinfo✔️✔️✔️✔️✔️✔️
gd✔️✔️✔️✔️✔️✔️
iconv✔️✔️✔️✔️✔️✔️
intlRecommandéOptionnel✔️✔️✔️✔️
json✔️✔️✔️✔️✔️✔️
mbstring✔️✔️✔️✔️✔️✔️
mysqli✔️✔️✔️✔️✔️✔️
mysqlnd✔️✔️✔️✔️✔️✔️
openssl✔️✔️✔️✔️✔️✔️
pcre✔️✔️✔️✔️✔️✔️
pdo✔️✔️✔️✔️✔️✔️
pdo_mysql✔️✔️✔️✔️✔️✔️
session✔️✔️✔️✔️✔️✔️
simplexml✔️✔️✔️✔️✔️✔️
soapOptionnel✔️✔️✔️✔️✔️
tidyOptionnel✔️✔️✔️✔️✔️
xml✔️✔️✔️✔️✔️✔️
xmlreader✔️✔️✔️✔️✔️✔️
xmlwriter✔️✔️✔️✔️✔️✔️
zip✔️✔️✔️✔️✔️✔️
zlib✔️✔️✔️✔️✔️✔️
sodium✔️Optionnel✔️✔️✔️ (PS8/9 utile)
imagickRecommandéRecommandéRecommandéRecommandéRecommandé✔️
opcacheRecommandéRecommandéRecommandéRecommandéRecommandé✔️
redisOptionnelOptionnelOptionnelOptionnelOptionnel(FACULTATIF)
memcachedOptionnelOptionnelOptionnelOptionnelOptionnel(FACULTATIF)
mcrypt✔️ (PS 1.6 seulement)❗ Seulement si PS 1.6

Remarques :

  • Le tableau montre les modules à cocher dans cPanel (Select PHP Version / MultiPHP INI Editor) sur o2switch.
  • Si vous utilisez PrestaShop 1.6, active 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.

✅ TABLEAU HTML — EXTENSIONS À COCHER / OPTIONNELLES / À ÉVITER

Extension Statut Commentaire
ctype🟩 ObligatoireBase PHP
curl🟩 ObligatoireWP + PS
date🟩 ObligatoireBase PHP
dom🟩 ObligatoirePS + WP
exif🟩 ObligatoireImages / WP
fileinfo🟩 ObligatoireWP + PS
filter🟩 ObligatoireBase PHP
gd🟩 ObligatoireManipulation d’images
hash🟩 ObligatoireBase PHP
iconv🟩 ObligatoireEncodage
intl🟩 ObligatoireChoix de langue / normalisation
json🟩 ObligatoireWP + PS
libxml🟩 ObligatoireXML
mbstring🟩 ObligatoireManipulation des chaînes
mysqli🟩 ObligatoireConnexion MySQL
mysqlnd🟩 ObligatoireDriver natif MySQL
pdo🟩 ObligatoireBase PDO
pdo_mysql🟩 ObligatoirePDO + MySQL
session🟩 ObligatoireSessions PHP
simplexml🟩 ObligatoirePS + WP
sodium🟩 ObligatoireSécurité
spl🟩 ObligatoireBase PHP
standard🟩 ObligatoireBase PHP
tokenizer🟩 ObligatoireWP + PS
xml🟩 ObligatoireXML
xmlreader🟩 ObligatoireXML
xmlwriter🟩 ObligatoireXML
zip🟩 ObligatoireImport/export modules
zlib🟩 ObligatoireCompression
opcache🟩 ObligatoirePerformance PS + WP
imagick🟧 OptionnelImages HD
redis🟧 OptionnelCache avancé
memcached🟧 OptionnelCache
memcache🟧 OptionnelAncien système de cache
imap🟧 OptionnelConnexion email
oauth🟧 OptionnelAPI externes
yaml🟧 OptionnelDéveloppement PS
xmlrpc🟧 OptionnelAPI anciennes
mcrypt🟧 Optionnel (PS 1.6)Vieux modules PS 1.6
ioncube_loader🟥 À éviterRalentit + inutile
xdebug🟥 À éviterDev uniquement — très lent
scoutapm🟥 À éviterMonitoring externe
newrelic🟥 À éviterMonitoring lourd
tideways_xhprof🟥 À éviterProfiling — très lent
elastic_apm🟥 À éviterMonitoring
geos🟥 À éviterInutile
gender🟥 À éviterInutile
gmagick🟥 À éviterInstable
mongodb🟥 À éviterDB non utilisée
oci8🟥 À éviterOracle
pgsql🟥 À éviterPostgreSQL
sqlsrv🟥 À éviterSQL Server
ssh2🟥 À éviterPeu utile
sourceguardian🟥 À éviterEncodeur rarement utile
trader🟥 À éviterFinance uniquement
uploadprogress🟥 À éviterInstable

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 

🧠 Mon conseil : s’organiser intelligemment et faire les choses

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.

Je suis toujours avec vous, pour vous guider et vous éviter les erreurs.

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.

Demande de devis thierrylaval.dev

Besoin d’un expert

Lancez votre présence en ligne sans délai, avec un accompagnement professionnel adapté à vos besoins.