Aller au contenu

cPanel ea-php83 et ea-php85 : fichiers, php.ini et FPM

Trouvez chaque fichier et chaque service d'une version ea-php sur un serveur cPanel & WHM, des binaires et du php.ini jusqu'au pool PHP-FPM, au socket et aux journaux. Vous verrez aussi quelle version chaque domaine utilise et comment modifier le bon fichier pour ea-php82, ea-php83, ea-php84 ou ea-php85.

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-phpXY et 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 utilise rpm, apt là où elle utilise dnf, et confirmez les chemins avec l’étape 5 avant de modifier quoi que ce soit.
  • Les exemples utilisent ea-php83. Remplacez 83 par 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 nom ea-php85 dans 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-php vivent 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.

Carte d'ea-php83 sur un serveur cPanel : le dossier /opt/cpanel/ea-php83/root avec le binaire php, php.ini, php.d, le fichier de pool de php-fpm.d, les sockets et le journal d'erreurs, le service ea-php83-php-fpm, et le YAML par domaine dans /var/cpanel/userdata qui génère le fichier de pool, marqué à ne pas modifier

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.

QuoiOù (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
Serviceea-php83-php-fpm
Version du domainephpversion: 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

  1. 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_versions

    Exemple de sortie :

    ---
    data:
      versions:
        - ea-php82
        - ea-php83
        - ea-php85
    metadata:
      command: php_get_installed_versions
      reason: OK
      result: 1
      version: 1

    Chaque 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.

  2. 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*' | sort

    Exemple 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-runtime

    Si ea-php83-php-fpm manque, aucun domaine ne peut utiliser cette version avec PHP-FPM, et le service de l’étape 6 n’existe pas.

  3. 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.ca

    Lisez chaque groupe de trois lignes ensemble. php_fpm: 1 veut dire que le domaine tourne sur le service ea-phpXY-php-fpm de sa version. php_fpm: 0 veut 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 bloc phpversion_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.ca

    Exemple de sortie :

    phpversion: ea-php83

    Lisez 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 .htaccess du 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 edit

    Ce 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.

  4. 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 -v

    Exemple 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 -v donne le même résultat. Utilisez l’un de ces deux chemins dans les tâches cron. Une tâche cron qui appelle php tout 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.

  5. 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 --ini

    Exemple 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.ini

    Chaque paquet d’extension dépose dans php.d un petit fichier qui l’active. Le numéro fixe l’ordre de chargement. OPcache reçoit 10-, la plupart des extensions 20-, et celles qui dépendent d’une autre extension, comme mysqli, reçoivent 30-. Les réglages de php.ini et de php.d s’appliquent à tous les domaines de cette version, sauf si un domaine les remplace.

  6. 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 3

    Exemple 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 ago

    Listez ensuite les pools. Attendez-vous à un <domain>.conf par 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.example

    Pour 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.conf

    Résultat attendu : une ligne listen qui se termine par .sock dans /opt/cpanel/ea-php83/root/usr/var/run/php-fpm/, et un chemin error_log dans le dossier logs du compte. Les erreurs PHP du site vont dans ce journal propre au domaine, /home/lacnord/logs/boutique-lac_ca.php.error.log par 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.

  7. 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 avec systemctl 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: 8 dans /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-fpm

      Résultat attendu : exit=0 pour 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.

  8. 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 intl

    Résultat attendu : dnf se termine par Complete! et la commande ls affiche 20-intl.ini. Si dnf ne 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-fpm

    Pour 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

  1. Confirmez de nouveau la version et le gestionnaire du domaine avec la commande de l’étape 3. La ligne version doit nommer la version que vous avez modifiée.

  2. 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.

  3. Confirmez que le service a redémarré après votre changement. systemctl show -p ActiveEnterTimestamp ea-php83-php-fpm doit afficher une heure postérieure à votre modification.

  4. 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.ini et que Server API affiche FPM/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.

  5. 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 version de l’étape 3. Le domaine utilise peut-être une autre version, et vous avez modifié le mauvais dossier ea-phpXY. Si la version concorde, cherchez un .user.ini dans 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-fpm dit que l’unité est introuvable. Le paquet ea-php83-php-fpm n’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 lisez journalctl -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 --rebuild et redémarrez.
  • Un réglage de pool revient sans cesse à son ancienne valeur. Quelqu’un a modifié php-fpm.d/<domain>.conf directement, et une reconstruction l’a remplacé. Déplacez le réglage dans <domain>.php-fpm.yaml et reconstruisez.
  • Une tâche cron indique une autre version que le site. La tâche appelle php tout court, donc l’enveloppe choisit la version selon le dossier. /usr/bin/php lance 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/php ou /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.