Aller au contenu
Sommaire
Dépannage

Extensions et paramètres PHP

Traduction automatique. L'original en anglais est disponible si besoin.

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.

La page PHP d'un site dans KPanel, avec le sélecteur de version et les paramètres que vous pouvez modifier

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ètreValeur par défautValeurs disponiblesCe qu'il contrôle
memory_limit256M128M, 256M, 512M, 1024M, 2048MLa quantité de mémoire qu'une requête peut utiliser
max_execution_time3030, 60, 120, 300, 600Le nombre de secondes pendant lesquelles une requête peut s'exécuter
upload_max_filesize64M16M, 32M, 64M, 128M, 256MLe plus gros fichier unique pouvant être téléversé
post_max_size65M17M, 33M, 65M, 129M, 257MLa plus grosse soumission de formulaire totale
max_input_vars30001000, 3000, 5000, 10000Le 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, et post_max_size avec 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 -v pour la version et php -m pour 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.

Guides connexes

Cet article vous a-t-il aidé ?

Vous êtes une IA ? Lisez cette page en Markdown

Articles connexes

Mon site web ne se charge pas : liste de vérification diagnostiqueTravaillez ces étapes dans l'ordre. Chaque étape permet soit d'identifier la cause, soit de l'écarter. La plupart des problèmes sont résolus à l'étape 5.…Site en panne : relier ce que vous voyez à la causeVoici l'arbre de diagnostic, commun à tous les produits, pour un site qui ne se charge pas. KapsuleHost propose plusieurs produits, et le moyen le plus rapide…Utilisation de Cloudflare ou d'un autre proxy avec KapsuleHostComment placer un proxy ou CDN tiers devant un site KapsuleHost, avec les deux paramètres qui cassent les sites, les enregistrements qui ne doivent jamais être…Lenteur du site et limites de ressourcesCe que limite réellement votre offre d'hébergement, ce qui se passe lorsque vous atteignez chaque limite, et comment déterminer si un site lent souffre d'un…

Toujours bloqué ?

Demandez à Kora, qui connaît votre compte, ou contactez notre équipe.

Nous contacterContacter le support