paramètres PHP

Cette rubrique explique comment définir les options PHP requises.

NOTE
La dernière version d’Adobe Commerce requiert au minimum PHP 8.1. Voir configuration requise pour toutes les versions prises en charge de PHP.

Pour obtenir des conseils sur la configuration du cloud, voir paramètres PHP dans le Commerce sur l’infrastructure cloud guide.

Contrôle de processus PHP

Avant d’exécuter des indexeurs en mode parallèle, vous devez activer la prise en charge du contrôle des processus (pcntl) en PHP. Voir Installation dans la documentation PHP.

Vérifier que PHP est installé

PHP est installé par défaut sur la plupart des distributions Linux. Cette rubrique suppose que vous avez déjà installé PHP. Pour vérifier si PHP est installé, saisissez ce qui suit sur la ligne de commande :

php -v

Si PHP est installé, un message similaire à celui-ci s’affiche :

PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies

Si PHP n'est pas installé (ou nécessite une mise à niveau), installez-le en suivant les instructions de votre distribution Linux.

Vérification des extensions installées

Adobe Commerce requiert certaines extensions PHP. Les listes suivantes spécifient les extensions requises pour chaque édition de Commerce. Les listes sont générées automatiquement à partir d’un déploiement exécutant la dernière version de chaque édition.

Adobe Commerce requiert :

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-filter
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-spl
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

B2B pour Adobe Commerce nécessite :

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-filter
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-spl
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

Magento Open Source requiert :

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-filter
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

Pour vérifier les extensions installées :

  1. Liste des modules installés.

    code language-bash
    php -m
    
  2. Vérifiez que toutes les extensions requises sont installées.

  3. Ajoutez tous les modules manquants en utilisant le même workflow utilisé pour l'installation de PHP.

Vérifier les paramètres PHP

WARNING
Si vous utilisez PHP 7.4.20, définissez pcre.jit=0 dans votre php.ini fichier . Cela contourne le PHP bug qui empêche le chargement de CSS.
  • Définissez le fuseau horaire du système pour PHP. Dans le cas contraire, des erreurs telles que l’affichage suivant lors de l’installation et des opérations liées à l’heure telles que cron risquent de ne pas fonctionner :
PHP Warning:  date(): It is not safe to rely on the system's timezone settings. [more messages follow]
  • Définissez la limite de mémoire PHP.

    Adobe recommande ce qui suit :

    • Compilation du code ou déploiement de ressources statiques, 1G
    • Débogage, 2G
    • Tests, ~3-4G
  • Augmenter les valeurs du PHP realpath_cache_size et realpath_cache_ttl aux paramètres recommandés :

    code language-conf
    realpath_cache_size=10M
    realpath_cache_ttl=7200
    

    Ces paramètres permettent aux processus PHP de mettre en cache les chemins d’accès aux fichiers au lieu de les rechercher au chargement de la page. Voir Optimisation des performances dans la documentation PHP.

  • Activer opcache.save_comments, qui est requis pour Adobe Commerce 2.1 et versions ultérieures.

    Adobe recommande d’activer la fonction OPcache PHP pour des raisons de performances. Le OPcache est activé dans de nombreuses distributions PHP.

    Adobe Commerce 2.1 et versions ultérieures utilisent des commentaires de code PHP pour la génération de code.

NOTE
Pour éviter tout problème lors de l’installation et de la mise à niveau, Adobe recommande vivement d’appliquer les mêmes paramètres PHP à la configuration de la ligne de commande PHP et à la configuration du module externe de serveur Web PHP. Pour plus d’informations, voir la section suivante.

Recherche de fichiers de configuration PHP

Cette section explique comment trouver les fichiers de configuration nécessaires pour mettre à jour les paramètres requis.

Rechercher php.ini fichier de configuration

Pour trouver la configuration du serveur web, exécutez un phpinfo.php fichier dans votre navigateur web et recherchez les Loaded Configuration File comme suit :

page d’informations PHP

Pour localiser la configuration de ligne de commande PHP, saisissez

php --ini | grep "Loaded Configuration File"
NOTE
Si vous en avez un seul php.ini modifiez ce fichier. Si vous avez deux php.ini fichiers, modifier both fichiers . Si vous ne le faites pas, les performances risquent d’être imprévisibles.

Recherche des paramètres de configuration OPcache

Les paramètres du OPcache PHP sont généralement situés dans la variable php.ini ou opcache.ini. L’emplacement peut dépendre de votre système d’exploitation et de la version PHP. Le fichier de configuration OPcache peut comporter une opcache ou des paramètres tels que opcache.enable.

Suivez les instructions ci-dessous pour le trouver :

  • Serveur web Apache :

    Pour Ubuntu avec Apache, les paramètres OPcache se trouvent généralement dans la variable php.ini fichier .

    Pour CentOS avec Apache ou nginx, les paramètres OPcache se trouvent généralement dans /etc/php.d/opcache.ini

    Dans le cas contraire, utilisez la commande suivante pour la localiser :

    code language-bash
    sudo find / -name 'opcache.ini'
    
  • Serveur web nginx avec PHP-FPM : /etc/php/8.1/fpm/php.ini

Si vous en avez plusieurs opcache.ini, modifiez-les tous.

Comment définir les options PHP

Pour définir les options PHP :

  1. Ouvrez une php.ini dans un éditeur de texte.

  2. Localisez le fuseau horaire de votre serveur dans la paramètres de fuseau horaire

  3. Recherchez le paramètre suivant et annulez sa mise en commentaire si nécessaire :

    code language-conf
    date.timezone =
    
  4. Ajoutez le paramètre de fuseau horaire trouvé à l’étape 2.

  5. Modifier la valeur de memory_limit à l’une des valeurs recommandées au début de cette section.

    Par exemple,

    code language-conf
    memory_limit=2G
    
  6. Ajoutez ou mettez à jour la variable realpath_cache configuration pour correspondre aux valeurs suivantes :

    code language-conf
    ;
    ; Increase realpath cache size
    ;
    realpath_cache_size = 10M
    
    ;
    ; Increase realpath cache ttl
    ;
    realpath_cache_ttl = 7200
    
  7. Enregistrez vos modifications et quittez l’éditeur de texte.

  8. Ouvrez l’autre php.ini (s’ils sont différents) et apportez les mêmes modifications.

Définition des options OPcache

Pour définir opcache.ini options :

  1. Ouvrez votre fichier de configuration OPcache dans un éditeur de texte :

    • opcache.ini (CentOS)
    • php.ini (Ubuntu)
    • /etc/php/8.1/fpm/php.ini (serveur web nginx (CentOS ou Ubuntu)
  2. Localiser opcache.save_comments et décommentez-le si nécessaire.

  3. Assurez-vous que sa valeur est définie sur 1.

  4. Enregistrez vos modifications et quittez l’éditeur de texte.

  5. Redémarrez votre serveur web :

    • Apache, Ubuntu : service apache2 restart
    • Apache, CentOS : service httpd restart
    • nginx, Ubuntu et CentOS : service nginx restart

Dépannage

Pour obtenir de l’aide sur la résolution des problèmes liés à PHP, reportez-vous aux articles suivants du support Adobe Commerce :

recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995