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 PHPCette 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
Choisir la version de PHP
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
Mettre en place un php.ini personnalisé
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/php.ini
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/php.ini
Exemple de fichier php.ini
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