Dépannage

Extensions et paramètres PHP

Which PHP versions and extensions KapsuleHost web hosting provides, which settings you can change yourself, and why a change can take up to five minutes to appear.

Quelles versions PHP et extensions KapsuleHost fournit, quels paramètres vous pouvez modifier vous-même, et pourquoi une modification peut prendre jusqu'à cinq minutes pour apparaître.

Tout ce qui concerne PHP pour un site se trouve à un seul endroit : Sites web, cliquez sur le site, Avancé, puis PHP. Cette page contient le sélecteur de version, les paramètres que vous pouvez modifier, un lanceur Composer et le journal des erreurs PHP.

L'onglet PHP pour un site dans KPanel

Choisir une Version 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 supporte réellement. PHP plus récent est nettement plus rapide et bénéficie de correctifs de sécurité plus longtemps. La raison de ne pas sauter directement à la version la plus récente est la compatibilité : un ancien plugin ou du code personnalisé écrit il y a des années peut échouer complètement sur une version avec laquelle il n'a jamais été testé.

Pour le modifier, sélectionnez la version et cliquez sur Appliquer la version. Le changement prend effet immédiatement, sans redémarrage de votre part et sans interruption de service.

Modifiez la version PHP d'abord sur l'environnement de test, parcourez le site, et seulement ensuite modifiez-la en production. Si vous devez le faire en direct, faites-le quand vous pouvez surveiller, et sachez que revenir à la version précédente ne prend qu'un clic. Voir Environnements de test.

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 la version PHP et Journaux d'erreurs.

Paramètres que Vous Pouvez Modifier

La page PHP expose cinq paramètres sous forme de listes déroulantes. Ce sont ceux qui causent réellement des problèmes en pratique, c'est pourquoi ce sont ceux qui sont affichés.

ParamètreDé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 qu'une requête peut s'exécuter
upload_max_filesize64M16M, 32M, 64M, 128M, 256MLa plus grande taille de fichier pouvant être téléchargée
post_max_size65M17M, 33M, 65M, 129M, 257MLa plus grande taille totale d'une soumission de formulaire
max_input_vars30001000, 3000, 5000, 10000Le nombre de champs qu'une soumission peut contenir

Ce que vous voulez :

  • Les téléchargements échouent au-delà d'une certaine taille : augmentez upload_max_filesize, et post_max_size avec lui.
  • Un grand formulaire ou un générateur de pages perdant des champs à l'enregistrement : augmentez max_input_vars. Celui-ci est invisible et exaspérant, parce que rien ne génère d'erreur. Les champs supplémentaires sont silencieusement supprimés.
  • Une page qui s'arrête à mi-chemin sans erreur : augmentez memory_limit. Voir Limite de mémoire WordPress.
  • Un long import ou export qui expire : augmentez max_execution_time, et envisagez d'exécuter le travail depuis la ligne de commande à la place. Voir WP-CLI.

post_max_size doit être plus grande que upload_max_filesize, parce que le téléchargement voyage à l'intérieur du post. Si vous choisissez une combinaison où ce n'est pas le cas, la plateforme corrige post_max_size pour vous. C'est pourquoi vous pouvez voir une valeur que vous n'avez pas choisie.

Pourquoi une Modification Prend Jusqu'à Cinq Minutes

C'est la confusion la plus fréquente sur cette page, donc c'est la peine d'être précis.

Vos paramètres sont écrits dans un fichier .user.ini à la racine du document de votre site. PHP lit ce fichier et le met en cache pendant 300 secondes, soit cinq minutes. Jusqu'à l'expiration de ce cache, PHP continue d'utiliser les valeurs précédentes.

Donc après avoir enregistré une modification :

  • La page rapportera toujours l'ancienne limite pendant jusqu'à cinq minutes.
  • phpinfo() rapportera toujours l'ancienne limite pendant jusqu'à cinq minutes.
  • Un rechargement dur ne aide pas. Vider le cache du navigateur ne aide pas non plus.
  • Vous n'avez pas besoin de redémarrer quoi que ce soit, et vous ne pouvez pas. Attendez simplement.

S'il s'est écoulé plus de cinq minutes et que la valeur n'a pas changé, quelque chose ne va vraiment pas et c'est la peine d'ouvrir un ticket.

Modifier .user.ini Vous-même

Vous pouvez modifier .user.ini directement via SFTP ou SSH si vous préférez, ou si vous avez besoin d'une directive que le panneau n'expose pas. Il se trouve à la racine du document de votre site. Voir Accès SFTP.

Le format est une directive par ligne :

memory_limit = 512M
max_execution_time = 120

Deux limites importantes sur ce que .user.ini peut faire :

Cela ne fonctionne que pour les directives que PHP permet d'être définies par répertoire ou par utilisateur. Les cinq ci-dessus sont tous admissibles. Les directives qui ne peuvent être définies qu'au niveau du système, telles que disable_functions ou le chargement d'une extension avec extension=, sont ignorées dans un fichier .user.ini. Ils ne généreront pas d'erreur, ils ne feront simplement rien, ce qui est pourquoi les gens passent un après-midi dessus.

Le panneau ne relit que les clés simples. Les directives contenant un point, telles que 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 et que vous modifiez ultérieurement quelque chose via le panneau, vérifiez le fichier après.

L'hébergement web Kapsule exécute nginx, pas Apache. Les fichiers .htaccess ne sont lus par personne. Les directives PHP placées dans un fichier .htaccess, telles que 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 large et inclut 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 locale : 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 crypto : bcmath, sodium, hash, random Fichiers et système : fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer

Une différence de version qui vaut la peine de connaître : l'extension imap est présente sur 8.3 et versions antérieures mais pas sur 8.4, parce qu'elle a été supprimée de PHP lui-même dans cette version. Si vous avez une application qui en a encore besoin, restez sur 8.3 ou déplacez cette application vers une bibliothèque de messagerie moderne.

Non installés : Pilotes PostgreSQL, MongoDB, Xdebug, mcrypt, et chargeurs de code commerciaux tels que ionCube et SourceGuardian.

Vous ne pouvez pas activer ou désactiver les extensions vous-même depuis le panneau. Si votre application a besoin de quelque chose qui n'est pas dans la liste, ouvrez un ticket et décrivez ce que vous exécutez. Le fait que cela puisse être ajouté dépend de l'extension. Voir Ouverture d'un ticket d'assistance.

Vérifier Ce Qui Est Réellement Chargé

Plutôt que de deviner :

  • Sur WordPress : Outils, puis État du site, puis Infos, puis Serveur. Cela répertorie la version PHP et les limites pertinentes.
  • Via SSH : php -v pour la version et php -m pour les extensions chargées. Voir Ajout de clés SSH.

Ne laissez pas de fichier phpinfo() à la racine web. Cela publie vos chemins, vos extensions et votre configuration à quiconque le trouve, et les scanners automatisés recherchent exactement ce nom de fichier. Si vous en créez un pour vérifier quelque chose, supprimez-le immédiatement après.

Guides Connexes

Vous avez besoin d'aide?

Envoyez-nous un email à support@kapsulehost.com ou ouvrez un chat dans KPanel.

Ouvrir KPanel
Extensions et paramètres PHP