Cette page recense chaque fichier et chaque service d’une version de PHP sur un serveur cPanel & WHM, pour les administrateurs qui doivent modifier le bon. EasyApache 4, le système de cPanel qui installe Apache et PHP sous forme de paquets, donne à chaque version comme ea-php83 sa propre copie de tout. On modifie donc facilement le php.ini de 8.2 pendant que le site utilise 8.3. Chaque version vit sous /opt/cpanel/ea-phpXY/root/ et a son propre service, ea-phpXY-php-fpm, et le Gestionnaire MultiPHP décide quel domaine utilise laquelle. Modifiez php.ini et php.d dans ce dossier et, pour les réglages PHP-FPM d’un domaine, changez le fichier YAML sous /var/cpanel/userdata/, jamais le fichier de pool généré.
Ce que vous allez accomplir
- Lire un nom de paquet
ea-phpXYet savoir quelle partie de PHP il installe. - Trouver le binaire, le php.ini, les fichiers d’extension, le service PHP-FPM, le fichier de pool, le socket et les journaux de n’importe quelle version installée.
- Confirmer quelle version sert un domaine donné, à partir de l’API et des fichiers que cPanel écrit.
- Modifier un réglage global, un réglage PHP-FPM d’un domaine ou une extension à l’endroit qui survit à la prochaine reconstruction de cPanel.
Prérequis
- Un accès SSH root, ou un accès root à WHM avec Terminal activé.
- cPanel & WHM avec EasyApache 4, sur AlmaLinux, Rocky Linux ou CloudLinux. Sur cPanel pour Ubuntu, les noms de paquets sont les mêmes. Utilisez
dpkg -l 'ea-php83*'là où cette page utiliserpm,aptlà où elle utilisednf, et confirmez les chemins avec l’étape 5 avant de modifier quoi que ce soit. - Les exemples utilisent
ea-php83. Remplacez83par votre version. En date d’octobre 2026, cPanel fournit ea-php82, ea-php83, ea-php84 et ea-php85. La version 25.91 d’EasyApache 4, du 21 octobre 2026, les a fait passer à 8.2.35, 8.3.36, 8.4.27 et 8.5.12. PHP 8.5 est arrivé sous le nomea-php85dans la version 25.37, le 25 novembre 2025 (journal des modifications d’EasyApache 4). Les paquets ea-php74, ea-php80 et ea-php81 existent encore, mais cPanel les a déclarés en fin de vie en avril 2026. - Si le sélecteur PHP de CloudLinux est utilisé, ses versions
alt-phpvivent sous/opt/alt/phpXY/et sortent du cadre de cette carte.
Comment ça fonctionne
EasyApache 4 installe chaque version de PHP comme une famille de paquets qui partagent un même préfixe. ea-php83 lui-même est un petit paquet qui installe le reste. ea-php83-php-cli contient les binaires en ligne de commande et CGI, ea-php83-php-fpm contient le FastCGI Process Manager (PHP-FPM, le groupe de processus PHP à qui Apache confie les requêtes) et ea-php83-php-common contient le cœur. Chaque extension facultative est un paquet à part nommé ea-php83-php-<ext>, comme ea-php83-php-intl ou ea-php83-php-soap.
Tout ce dont une version a besoin se trouve sous son propre dossier racine, comme un petit système séparé. Deux morceaux vivent hors de ce dossier : les réglages par domaine dans /var/cpanel/userdata/ et le service systemd.
Voici la carte complète d’une version. Chaque chemin ci-dessous vient du paquet ea-php83 ou de l’organisation PHP-FPM de cPanel.
| Quoi | Où (ea-php83) |
|---|---|
| Binaire en ligne de commande | /opt/cpanel/ea-php83/root/usr/bin/php |
| Binaire CGI | /opt/cpanel/ea-php83/root/usr/bin/php-cgi |
| Raccourci vers la ligne de commande | /usr/local/bin/ea-php83 |
| Raccourci vers le binaire CGI | /usr/bin/ea-php83 |
| Binaire PHP-FPM | /opt/cpanel/ea-php83/root/usr/sbin/php-fpm |
| php.ini principal | /opt/cpanel/ea-php83/root/etc/php.ini |
| Interrupteurs d’extension | /opt/cpanel/ea-php83/root/etc/php.d/*.ini |
| Fichiers d’extension | /opt/cpanel/ea-php83/root/usr/lib64/php/modules/ |
| Configuration principale de PHP-FPM | /opt/cpanel/ea-php83/root/etc/php-fpm.conf |
| Un pool par domaine | /opt/cpanel/ea-php83/root/etc/php-fpm.d/<domain>.conf |
| Sockets | /opt/cpanel/ea-php83/root/usr/var/run/php-fpm/ |
| Journal du service PHP-FPM | /opt/cpanel/ea-php83/root/usr/var/log/php-fpm/error.log |
| Erreurs PHP d’un domaine | /home/<user>/logs/<domain_tld>.php.error.log |
| Service | ea-php83-php-fpm |
| Version du domaine | phpversion: dans /var/cpanel/userdata/<user>/<domain> |
| Réglages FPM du domaine | /var/cpanel/userdata/<user>/<domain>.php-fpm.yaml |
Le fichier de pool est le piège. cPanel construit chaque <domain>.conf à partir des fichiers YAML, et sa documentation demande de ne pas modifier ces fichiers de configuration à la main. Un changement fait directement dans le fichier de pool disparaît la prochaine fois que cPanel reconstruit les pools, par exemple après un changement de version dans le Gestionnaire MultiPHP. C’est le fichier YAML qui dure.
Deux raccourcis piègent aussi bien des gens. /usr/local/bin/ea-php83 pointe vers le binaire en ligne de commande. /usr/bin/ea-php83 pointe vers php-cgi, la version CGI du même PHP, qui affiche des en-têtes HTTP avant sa sortie. Les commandes php toutes simples sont des enveloppes de cPanel : /usr/local/bin/php lance la version en ligne de commande et /usr/bin/php lance la version CGI. Chacune regarde le dossier du script que vous passez, ou le dossier où vous êtes. Elle trouve le domaine dont la racine de documents contient ce dossier et lance la version de ce domaine. Hors de toute racine de documents, elle lance la version par défaut du serveur.
Étape par étape
-
Listez les versions installées sur le serveur. Interrogez WHM, parce qu’il rapporte ce que le Gestionnaire MultiPHP peut attribuer :
whmapi1 php_get_installed_versionsExemple de sortie :
--- data: versions: - ea-php82 - ea-php83 - ea-php85 metadata: command: php_get_installed_versions reason: OK result: 1 version: 1Chaque nom de la liste a un dossier correspondant dans
ls -d /opt/cpanel/ea-php*. Si un dossier n’a pas d’entrée dans la liste de l’API, le Gestionnaire MultiPHP ne peut pas l’attribuer. Vérifiez ce qu’il en reste avec l’étape 2 avant d’y modifier quoi que ce soit. -
Listez les paquets qui forment une version. Cette commande n’affiche que les noms, pour que les numéros de version n’encombrent pas la sortie :
rpm -qa --qf '%{NAME}\n' 'ea-php83*' | sortExemple de sortie (abrégé) :
ea-php83 ea-php83-pear ea-php83-php-bcmath ea-php83-php-cli ea-php83-php-common ea-php83-php-curl ea-php83-php-fpm ea-php83-php-gd ea-php83-php-mbstring ea-php83-php-mysqlnd ea-php83-php-opcache ea-php83-php-xml ea-php83-php-zip ea-php83-runtimeSi
ea-php83-php-fpmmanque, aucun domaine ne peut utiliser cette version avec PHP-FPM, et le service de l’étape 6 n’existe pas. -
Trouvez la version qu’utilise un domaine. L’API résout l’héritage pour vous, alors commencez par elle :
whmapi1 php_get_vhost_versions | grep -E '^ +(php_fpm|version|vhost): 'Exemple de sortie :
php_fpm: 1 version: ea-php83 vhost: boutique-lac.ca php_fpm: 0 version: ea-php82 vhost: cabinet-rioux.com php_fpm: 1 version: ea-php83 vhost: intranet.cabinet-rioux.com php_fpm: 1 version: ea-php85 vhost: staging.boutique-lac.caLisez chaque groupe de trois lignes ensemble.
php_fpm: 1veut dire que le domaine tourne sur le serviceea-phpXY-php-fpmde sa version.php_fpm: 0veut dire qu’il passe par un autre gestionnaire, et le pool, le socket et le service de cette carte ne le concernent pas. La sortie complète contient aussi un blocphpversion_source, qui indique si le domaine a choisi sa propre version ou s’il hérite de celle du système. Sur le disque, ce même choix tient en une ligne dans le fichier userdata du domaine :grep '^phpversion:' /var/cpanel/userdata/lacnord/boutique-lac.caExemple de sortie :
phpversion: ea-php83Lisez ce fichier, mais changez la version avec le Gestionnaire MultiPHP ou
whmapi1 php_set_vhost_versions. Ces outils mettent aussi à jour la configuration d’Apache et les pools PHP-FPM. cPanel écrit en plus, dans le.htaccessdu domaine, un bloc balisé qui nomme la version :# php -- BEGIN cPanel-generated handler, do not edit # Set the “ea-php83” package as the default “PHP” programming language. <IfModule mime_module> AddHandler application/x-httpd-ea-php83 .php .php8 .phtml </IfModule> # php -- END cPanel-generated handler, do not editCe bloc doit nommer la même version que l’API. S’il en nomme une autre, traitez-le comme une ligne de gestionnaire périmée. L’article Gestionnaire MultiPHP par compte montre comment trouver et retirer ces lignes.
-
Lancez la ligne de commande de la version voulue. Appelez le binaire par son chemin complet, pour que le résultat ne dépende pas du dossier où vous êtes :
/opt/cpanel/ea-php83/root/usr/bin/php -vExemple de sortie :
PHP 8.3.36 (cli) (built: Oct 21 2026 09:47:12) (NTS) Copyright (c) The PHP Group Zend Engine v4.3.36, Copyright (c) Zend Technologies with Zend OPcache v8.3.36, Copyright (c), by Zend Technologies/usr/local/bin/ea-php83 -vdonne le même résultat. Utilisez l’un de ces deux chemins dans les tâches cron. Une tâche cron qui appellephptout court obtient la version que l’enveloppe choisit pour le dossier du script. Hors de toute racine de documents, c’est la version par défaut du serveur. L’article PHP en ligne de commande sur une autre version que PHP-FPM explique comment corriger ces tâches. -
Trouvez le php.ini et les fichiers d’extension de cette version. PHP indique lui-même ses chemins de configuration :
/opt/cpanel/ea-php83/root/usr/bin/php --iniExemple de sortie (abrégé) :
Configuration File (php.ini) Path: /opt/cpanel/ea-php83/root/etc Loaded Configuration File: /opt/cpanel/ea-php83/root/etc/php.ini Scan for additional .ini files in: /opt/cpanel/ea-php83/root/etc/php.d Additional .ini files parsed: /opt/cpanel/ea-php83/root/etc/php.d/10-opcache.ini, /opt/cpanel/ea-php83/root/etc/php.d/20-bcmath.ini, /opt/cpanel/ea-php83/root/etc/php.d/20-curl.ini, /opt/cpanel/ea-php83/root/etc/php.d/30-mysqli.iniChaque paquet d’extension dépose dans
php.dun petit fichier qui l’active. Le numéro fixe l’ordre de chargement. OPcache reçoit10-, la plupart des extensions20-, et celles qui dépendent d’une autre extension, commemysqli, reçoivent30-. Les réglages dephp.iniet dephp.ds’appliquent à tous les domaines de cette version, sauf si un domaine les remplace. -
Trouvez le service PHP-FPM, le pool et les journaux. Vérifiez d’abord le service :
systemctl status ea-php83-php-fpm --no-pager | head -n 3Exemple de sortie :
● ea-php83-php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/ea-php83-php-fpm.service; enabled; preset: disabled) Active: active (running) since Fri 2026-10-30 22:18:05 EDT; 13h agoListez ensuite les pools. Attendez-vous à un
<domain>.confpar domaine qui utilise cette version avec PHP-FPM :ls /opt/cpanel/ea-php83/root/etc/php-fpm.d/Exemple de sortie :
boutique-lac.ca.conf intranet.cabinet-rioux.com.conf www.conf.default www.conf.examplePour voir à quel socket Apache se connecte et où vont les erreurs PHP du domaine, lisez ces deux lignes de son fichier de pool :
grep -E '^\s*(listen|php_admin_value\[error_log\])\s*=' /opt/cpanel/ea-php83/root/etc/php-fpm.d/boutique-lac.ca.confRésultat attendu : une ligne
listenqui se termine par.sockdans/opt/cpanel/ea-php83/root/usr/var/run/php-fpm/, et un cheminerror_logdans le dossierlogsdu compte. Les erreurs PHP du site vont dans ce journal propre au domaine,/home/lacnord/logs/boutique-lac_ca.php.error.logpar défaut. Les erreurs du service PHP-FPM lui-même, comme un pool qui ne démarre pas ou qui atteint sa limite de processus, vont dans/opt/cpanel/ea-php83/root/usr/var/log/php-fpm/error.log. -
Modifiez un réglage à l’endroit qui dure. Choisissez la ligne qui correspond à votre objectif :
-
Tous les domaines en ea-php83 : modifiez
/opt/cpanel/ea-php83/root/etc/php.ini, ou passez par WHM » Logiciel » Éditeur INI MultiPHP en choisissant PHP 8.3, qui écrit le même fichier. Redémarrez ensuite le service avecsystemctl restart ea-php83-php-fpm. -
Le pool PHP-FPM d’un seul domaine, comme sa limite de processus : changez-le dans WHM » Logiciel » Gestionnaire MultiPHP, avec le bouton des réglages PHP-FPM du domaine. Vous pouvez aussi modifier son fichier YAML. Par exemple, inscrivez
pm_max_children: 8dans/var/cpanel/userdata/lacnord/boutique-lac.ca.php-fpm.yaml. Reconstruisez ensuite ce pool et redémarrez :/usr/local/cpanel/scripts/php_fpm_config --rebuild --domain=boutique-lac.ca; echo "exit=$?" systemctl restart ea-php83-php-fpmRésultat attendu :
exit=0pour la reconstruction et aucune sortie pour le redémarrage. Tout autre code de sortie veut dire que la reconstruction a échoué. Vérifiez d’abord le YAML modifié : une faute de frappe ou une espace manquante après un deux-points. Le guide du journal lent de PHP-FPM montre en détail ce même cycle YAML puis reconstruction.
Ne mettez jamais le changement dans
php-fpm.d/<domain>.conf. Il fonctionne jusqu’à la prochaine reconstruction, puis il disparaît sans avertissement. -
-
Ajoutez une extension à une seule version. Installez le paquet de cette version. Les autres versions ne sont pas touchées :
dnf install -y ea-php83-php-intl ls /opt/cpanel/ea-php83/root/etc/php.d/ | grep intlRésultat attendu :
dnfse termine parComplete!et la commandelsaffiche20-intl.ini. Sidnfne trouve aucun paquet de ce nom, vérifiez l’orthographe et le numéro de version dans le nom.Le paquet d’extension ne redémarre pas PHP-FPM lui-même, alors les processus en cours peuvent ne pas la voir encore. Redémarrez le service de la version :
systemctl restart ea-php83-php-fpmPour garder votre profil EasyApache 4 en phase avec le serveur, vous pouvez plutôt faire ce changement dans WHM » Logiciel » EasyApache 4 » Customize » PHP Extensions. Pour limiter une extension à un seul compte plutôt qu’à toute une version, voyez activer une extension PHP pour un seul compte cPanel.
Validez que ça fonctionne
-
Confirmez de nouveau la version et le gestionnaire du domaine avec la commande de l’étape 3. La ligne
versiondoit nommer la version que vous avez modifiée. -
Confirmez que la ligne de commande voit une extension ajoutée :
/opt/cpanel/ea-php83/root/usr/bin/php -m | grep -i '^intl$'Résultat attendu : une ligne qui affiche
intl. -
Confirmez que le service a redémarré après votre changement.
systemctl show -p ActiveEnterTimestamp ea-php83-php-fpmdoit afficher une heure postérieure à votre modification. -
Confirmez le côté web. Déposez une page phpinfo temporaire dans le domaine, ouvrez-la et vérifiez que Loaded Configuration File affiche
/opt/cpanel/ea-php83/root/etc/php.iniet que Server API afficheFPM/FastCGI. Supprimez la page tout de suite. L’article vérifier quelle version de PHP votre site utilise vraiment couvre cette vérification et la voie de l’outil Santé du site de WordPress. -
Pour un changement de pool, relisez le réglage dans le fichier généré, par exemple
grep pm.max_children /opt/cpanel/ea-php83/root/etc/php-fpm.d/boutique-lac.ca.conf. Il doit montrer la valeur inscrite dans le YAML.
Dépannage
- Vous avez modifié php.ini et rien n’a changé. Vérifiez la ligne
versionde l’étape 3. Le domaine utilise peut-être une autre version, et vous avez modifié le mauvais dossierea-phpXY. Si la version concorde, cherchez un.user.inidans la racine de documents : sous PHP-FPM, il remplace la valeur du serveur. Le service doit aussi être redémarré. systemctl status ea-php83-php-fpmdit que l’unité est introuvable. Le paquetea-php83-php-fpmn’est pas installé. Ajoutez-le dans WHM » Logiciel » EasyApache 4, puis activez PHP-FPM pour le domaine dans le Gestionnaire MultiPHP.- Le service refuse de démarrer après un changement. Testez la configuration avec
/opt/cpanel/ea-php83/root/usr/sbin/php-fpm -t, puis lisezjournalctl -u ea-php83-php-fpm -n 50. Une mauvaise valeur dans un fichier YAML apparaît en général ici. Corrigez le YAML, lancez/usr/local/cpanel/scripts/php_fpm_config --rebuildet redémarrez. - Un réglage de pool revient sans cesse à son ancienne valeur. Quelqu’un a modifié
php-fpm.d/<domain>.confdirectement, et une reconstruction l’a remplacé. Déplacez le réglage dans<domain>.php-fpm.yamlet reconstruisez. - Une tâche cron indique une autre version que le site. La tâche appelle
phptout court, donc l’enveloppe choisit la version selon le dossier./usr/bin/phplance en plus la version CGI, qui ajoute des en-têtes HTTP à la sortie. Pointez la tâche vers/opt/cpanel/ea-php83/root/usr/bin/phpou/usr/local/bin/ea-php83.
Quand ce n’est pas la bonne approche
Si vous louez un seul compte cPanel, vous n’avez accès ni à /opt/cpanel ni aux services. Utilisez le Gestionnaire MultiPHP et l’Éditeur INI MultiPHP dans cPanel, et demandez à votre hébergeur tout ce qui touche aux paquets. Sur les serveurs CloudLinux, les utilisateurs peuvent choisir leur PHP dans Select PHP Version. Ce sont alors les versions alt-php sous /opt/alt/ qui servent ces comptes, et cette carte ne montre que la moitié du portrait. Avec LiteSpeed Web Server, PHP passe par lsphp plutôt que par PHP-FPM, donc les parties pool et service ne s’appliquent pas. Si vous gérez plusieurs serveurs, gardez ces changements dans un outil de gestion de configuration. Les retouches à la main sur une seule machine finissent par s’écarter des autres.
Si c’est le genre de travail que vous préféreriez ne plus jamais porter, c’est le quotidien d’Opérations Cloud — réservez une revue d’infrastructure.