Quelles versions et extensions PHP l'hébergement web KapsuleHost propose pour WordPress, WooCommerce et les sites PHP, quels paramètres vous pouvez modifier vous-même, et pourquoi une modification peut mettre jusqu'à cinq minutes à apparaître.
Les sites statiques, Node.js et Python n'exécutent pas PHP. Tout ce qui concerne PHP pour un site se trouve à un seul endroit : Sites web, cliquez sur le site, Paramètres, puis PHP. Cette page contient le sélecteur de version, les paramètres que vous pouvez modifier, un lanceur Composer, et le journal d'erreurs PHP.

Choisir une version de PHP
Quatre versions sont sélectionnables : 8.4, 8.3, 8.2 et 8.1. Les nouveaux sites utilisent par défaut la version 8.3.
Choisissez la version la plus récente que votre logiciel prend réellement en charge. Les versions récentes de PHP sont nettement plus rapides et bénéficient de correctifs de sécurité plus longtemps. La raison de ne pas passer directement à la plus récente est la compatibilité : un vieux plugin ou un morceau de code personnalisé écrit il y a des années peut échouer purement et simplement sur une version avec laquelle il n'a jamais été testé.
Pour la modifier, sélectionnez la version et cliquez sur Appliquer la version. Le changement prend effet immédiatement, sans redémarrage nécessaire de votre part et sans interruption de service.
Changez d'abord la version de PHP sur l'environnement de préproduction, parcourez le site, et ensuite seulement modifiez-la en production. Si vous devez le faire en direct, faites-le quand vous pouvez surveiller la situation, et sachez que revenir en arrière ne prend qu'un clic. Voir Environnements de préproduction.
Si un changement de version casse le site, revenez à la version précédente et lisez le journal. L'erreur nommera le fichier qui n'a pas pu s'exécuter. Voir Changer de version PHP et Journaux d'erreurs.
Paramètres que vous pouvez modifier
La page PHP expose cinq paramètres sous forme de menus déroulants. Ce sont ceux qui posent réellement problème en pratique, c'est pourquoi ce sont eux qui sont mis en avant.
| Paramètre | Valeur par défaut | Valeurs disponibles | Ce qu'il contrôle |
|---|---|---|---|
memory_limit | 256M | 128M, 256M, 512M, 1024M, 2048M | La quantité de mémoire qu'une requête peut utiliser |
max_execution_time | 30 | 30, 60, 120, 300, 600 | Le nombre de secondes pendant lesquelles une requête peut s'exécuter |
upload_max_filesize | 64M | 16M, 32M, 64M, 128M, 256M | Le plus gros fichier unique pouvant être téléversé |
post_max_size | 65M | 17M, 33M, 65M, 129M, 257M | La plus grosse soumission de formulaire totale |
max_input_vars | 3000 | 1000, 3000, 5000, 10000 | Le nombre de champs qu'une soumission peut contenir |
Celui qu'il vous faut :
- Les téléversements échouent au-delà d'une certaine taille : augmentez
upload_max_filesize, etpost_max_sizeavec lui. - Un formulaire volumineux ou un constructeur de page perd des champs à l'enregistrement : augmentez
max_input_vars. C'est un problème invisible et exaspérant, car rien ne génère d'erreur. Les champs en trop sont simplement abandonnés silencieusement. - Une page meurt en cours de chargement sans erreur : augmentez
memory_limit. Voir Limite de mémoire WordPress. - Une importation ou exportation longue expire : augmentez
max_execution_time, et envisagez d'exécuter la tâche depuis la ligne de commande à la place. Voir WP-CLI.
post_max_size doit être plus grand que upload_max_filesize, car le fichier téléversé voyage à l'intérieur de l'article. Si vous choisissez une combinaison où ce n'est pas le cas, la plateforme ajuste post_max_size automatiquement à votre place. C'est pourquoi vous pourriez voir une valeur que vous n'avez pas choisie.
Pourquoi un changement met jusqu'à cinq minutes à apparaître
C'est la source de confusion la plus fréquente sur cette page, il vaut donc la peine d'être précis.
Vos paramètres sont écrits dans un fichier .user.ini situé à la racine de votre site. PHP lit ce fichier puis le met en cache pendant 300 secondes, soit cinq minutes. Tant que ce cache n'a pas expiré, PHP continue d'utiliser les valeurs précédentes.
Ainsi, après avoir enregistré une modification :
- La page continuera d'indiquer l'ancienne limite pendant jusqu'à cinq minutes.
phpinfo()continuera d'indiquer l'ancienne limite pendant jusqu'à cinq minutes.- Un rechargement forcé n'y change rien. Vider le cache de votre navigateur non plus.
- Vous n'avez besoin de redémarrer quoi que ce soit, et vous ne le pouvez pas. Attendez simplement.
Si plus de cinq minutes se sont écoulées et que la valeur n'a pas changé, alors quelque chose ne va vraiment pas et cela vaut la peine d'ouvrir un ticket.
Modifier .user.ini vous-même
Vous pouvez modifier .user.ini directement via SFTP ou SSH si vous le préférez, ou si vous avez besoin d'une directive que le panneau n'expose pas. Il se trouve à la racine de votre site. Voir Accès SFTP.
Le format comporte une directive par ligne :
memory_limit = 512M
max_execution_time = 120
Deux limites importantes concernant ce que .user.ini peut faire :
Cela ne fonctionne que pour les directives que PHP autorise à définir par répertoire ou par utilisateur. Les cinq ci-dessus sont toutes concernées. Les directives qui ne peuvent être définies qu'au niveau système, comme disable_functions ou le chargement d'une extension avec extension=, sont ignorées dans un fichier .user.ini. Elles ne généreront pas d'erreur, elles ne feront simplement rien, c'est pourquoi des gens y passent un après-midi entier.
Le panneau ne relit que les clés simples. Les directives contenant un point, comme opcache.enable ou date.timezone, sont respectées par PHP mais n'apparaîtront pas dans le formulaire du panneau. Si vous en définissez une à la main puis modifiez ensuite quelque chose via le panneau, vérifiez le fichier par la suite.
L'hébergement web KapsuleHost fonctionne sous nginx, pas sous Apache. Les fichiers .htaccess ne sont lus par personne. Les directives PHP placées dans un fichier .htaccess, comme php_value memory_limit, ne font absolument rien ici. Utilisez .user.ini ou le panneau à la place. Voir WordPress et .htaccess.
Quelles extensions sont disponibles
La version standard est étendue et comprend tout ce que WordPress, WooCommerce et la plupart des applications PHP demandent.
Bases de données : mysqli, pdo_mysql, sqlite3, pdo_sqlite
Images : gd, imagick, exif
Mise en cache : Zend OPcache, redis, memcached
Texte et localisation : mbstring, iconv, intl, gettext, ctype
XML et données : dom, simplexml, xml, xmlreader, xmlwriter, xsl, json
Réseau : curl, soap, sockets, ftp, openssl
Mathématiques et cryptographie : bcmath, sodium, hash, random
Fichiers et système : fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer
Une différence entre versions à connaître : l'extension imap est présente en 8.3 et dans les versions antérieures mais pas en 8.4, car elle a été retirée de PHP lui-même dans cette version. Si vous avez une application qui en a encore besoin, restez en 8.3 ou migrez cette application vers une bibliothèque de messagerie moderne.
Non installés : pilotes PostgreSQL, MongoDB, Xdebug, mcrypt, et les chargeurs de code commerciaux tels qu'ionCube et SourceGuardian.
Vous ne pouvez pas activer ou désactiver vous-même des extensions depuis le panneau. Si votre application a besoin de quelque chose qui ne figure pas dans la liste, ouvrez un ticket et décrivez ce que vous utilisez. La possibilité de l'ajouter dépend de l'extension. Voir Ouvrir un ticket d'assistance.
Vérifier ce qui est réellement chargé
Plutôt que de deviner :
- Sur WordPress : Outils, puis État de santé du site, puis Infos, puis Serveur. Cela liste la version de PHP et les limites pertinentes.
- Via SSH :
php -vpour la version etphp -mpour les extensions chargées. Voir Ajouter des clés SSH.
Ne laissez pas un fichier phpinfo() à la racine web de votre site. Il publie vos chemins, vos extensions et votre configuration à quiconque le trouve, et les scanners automatisés recherchent précisément ce nom de fichier. Si vous en créez un pour vérifier quelque chose, supprimez-le immédiatement après.