Choisir la version de PHP et personnaliser son fichier php.ini

Chez l'hébergeur web o2switch, vous pouvez choisir la version de PHP que vous souhaitez utiliser et également mettre en place un fichier php.ini personnalisé permettant de modifier la configuration de PHP pour une de vos applications.

Méthode non recommandée

Attention ! La méthode indiquée sur cette page n'est pas la méthode recommandée, si possible il faut utiliser l'outil visible dans la partie logiciel de cPanel : Sélectionner une version de PHP

Cette méthode fonctionne toujours, elle présente l'avantage de pouvoir sélectionner la version de PHP et personnaliser le php.ini pour un dossier spécifique de l'hébergement cependant l'implémentation PHP étant différente, ça sera légèrement plus lent que les configurations effectuées avec l'outil Sélectionner une version de PHP

Attention, si vous êtes sur une offre Scale'UP, ce type de fonctionnement n'est pas supporté pour le moment car le serveur est basé sous LiteSpeed et plus Apache.

Vous pouvez choisir la version de PHP en mettant en place un fichier .htaccess dans le dossier ou vous souhaitez que cette version de PHP soit exécuté. Dans ce fichier .htaccess, vous pouvez précisez l'une de ces lignes :

#PHP 5.2 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php52
</FilesMatch>
AddHandler application/x-httpd-php52 .php

#PHP 5.3 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php53
</FilesMatch>
AddHandler application/x-httpd-php53 .php

#PHP 5.4 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php54
</FilesMatch>
AddHandler application/x-httpd-php54 .php

#PHP 5.5 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php55
</FilesMatch>
AddHandler application/x-httpd-php55 .php

#PHP 5.6 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php56
</FilesMatch>
AddHandler application/x-httpd-php56 .php

#PHP 7.0 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php70
</FilesMatch>
AddHandler application/x-httpd-php70 .php


#PHP 7.1 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php71
</FilesMatch>
AddHandler application/x-httpd-php71 .php


#PHP 7.2 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php72
</FilesMatch>
AddHandler application/x-httpd-php72 .php


#PHP 7.3 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php73
</FilesMatch>
AddHandler application/x-httpd-php73 .php


#PHP 7.4 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php74
</FilesMatch>
AddHandler application/x-httpd-php74 .php


#PHP 8.0 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php80
</FilesMatch>
AddHandler application/x-httpd-php80 .php


#PHP 8.1 : 
<FilesMatch \.php$>
SetHandler application/x-httpd-php81
</FilesMatch>
AddHandler application/x-httpd-php81 .php


#PHP 8.2 : 
Non disponible pour le moment.

La version de PHP voulu sera prise en compte pour le dossier contenant le fichier .htaccess ainsi que l'ensemble des sous-dossiers. Cela vous permet d'avoir des configurations assez fines, comme par exemple définir une versions de PHP différente pour chacun de vos sites : il suffit de préciser un fichier .htaccess avec la bonne directive à la racine de vos sites.

La mise en place de la version de PHP doit s'accompagner obligatoirement d'un fichier php.ini plus bas pour que la version fonctionne correctement.

Par exemple :

  • public_html/.htaccess avec :

<FilesMatch \.php$>
SetHandler application/x-httpd-php52
</FilesMatch>
AddHandler application/x-httpd-php52 .php

permet de dire que l'ensemble de public_html et ces sous-dossiers fonctionneront avec php 5.2

  • public_html/site-recent.fr/.htaccess avec

<FilesMatch \.php$>
SetHandler application/x-httpd-php54
</FilesMatch>
AddHandler application/x-httpd-php54 .php

permet d'avoir le dossier “site-recent.fr” ainsi que les sous-dossiers avec php 5.4. Le .htaccess de “dernier niveau” est pris en compte, donc le .htaccess précédent de “public_html” est ignoré dans ce cas puisque redéfini dans un dossier plus profond.

  • sites/.htaccess avec rien de particulier à l'intérieur : utilise la version par défaut de PHP sur le serveur, c'est-à-dire PHP 5.4

Pour mettre en place un fichier php.ini, vous devez forcer la version de PHP que vous souhaitez utiliser (par défaut, php 5.4) à l'aide des explications fourni plus haut, puis ajoutez cette directive dans le fichier .htaccess contenu dans le dossier ou vous souhaitez que les modifications soit effective :

suPHP_ConfigPath /chemin_vers_dossier_contenant_php.ini

Par exemple, si vous souhaitez mettre en place un fichier php.ini en utilisant la version par défaut de PHP pour votre site principal contenu dans “public_html”, vous devrez créer un fichier .htaccess dans le dossier public_html avec ces directives :


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

Dans ce dernier cas, le fichier php.ini devra être situé ici : /home/votre_login/public_html/php.ini

La version de PHP ainsi que les modifications ajoutés via le fichier php.ini seront effectives pour le dossier public_html ET l'ensemble des sous-dossiers de “public_html” SAUF si un fichier .htaccess ré-écrit cela avec de nouvelles directives.

Si vous avez un deuxième site contenu dans le dossier “public_html” qui requiert des configurations particulières, vous pouvez ré-écrire cela en mettant en place un nouveau fichier .htaccess à la racine du deuxième site cette fois :

Dans /home/votre_login/public_html/site2.fr/.htaccess

<FilesMatch \.php$>
SetHandler application/x-httpd-php53
</FilesMatch>
AddHandler application/x-httpd-php53 .php
suPHP_ConfigPath /home/votre_login/public_html/site2.fr/

Le fichier php.ini devra être ici : /home/votre_login/public_html/site2.fr/php.ini

Voici un exemple de php.ini utilisable pour toutes les versions :

date.timezone=Europe/Paris
extension=mysqlnd.so
extension=nd_mysqli.so
extension=nd_pdo_mysql.so
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=mcrypt.so
extension=intl.so
extension=pdo.so
extension=fileinfo.so
extension=mbstring.so
extension=imagick.so
display_errors=off
  • Dernière modification: il y a 14 jours
  • de o2switch