Configuración de PHP

En este tema se explica cómo configurar las opciones de PHP requeridas.

NOTE
La última versión de Adobe Commerce requiere un mínimo de PHP 8.1. Consulte requisitos del sistema para todas las versiones compatibles de PHP.

Para obtener instrucciones de configuración de Cloud, consulte Configuración de PHP en el Commerce en infraestructura en la nube guía.

Control de procesos PHP

Para poder ejecutar indizadores en modo paralelo, debe habilitar la compatibilidad con Control de procesos (pcntl) en PHP. Consulte Instalación en la documentación de PHP.

Verificar que PHP esté instalado

PHP se instala por defecto en la mayoría de las distribuciones Linux. En este tema se da por hecho que ya ha instalado PHP. Para verificar si PHP está instalado, introduzca lo siguiente en la línea de comandos:

php -v

Si PHP está instalado, aparece un mensaje similar al siguiente:

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 no está instalado (o requiere una actualización), instálelo siguiendo las instrucciones para su distribución Linux.

Verificar las extensiones instaladas

Adobe Commerce requiere ciertas extensiones PHP. Las siguientes listas especifican las extensiones necesarias para cada edición de Commerce. Las listas se generan automáticamente a partir de una implementación que ejecuta la última versión de cada edición.

Adobe Commerce requiere:

  • 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 para Adobe Commerce requiere:

  • 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

El Magento Open Source requiere:

  • 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

Para comprobar las extensiones instaladas:

  1. Enumerar los módulos instalados.

    code language-bash
    php -m
    
  2. Compruebe que todas las extensiones requeridas están instaladas.

  3. Añada los módulos que falten utilizando el mismo flujo de trabajo utilizado para instalar PHP.

Comprobar la configuración de PHP

WARNING
Si utiliza PHP 7.4.20, establezca pcre.jit=0 en su php.ini archivo. Esto evita a un PHP bicho que evita que CSS se cargue.
  • Configure la zona horaria del sistema para PHP; de lo contrario, es posible que errores como la siguiente visualización durante la instalación y operaciones relacionadas con la hora como cron no funcionen:
PHP Warning:  date(): It is not safe to rely on the system's timezone settings. [more messages follow]
  • Establezca el límite de memoria PHP.

    El Adobe recomienda lo siguiente:

    • Compilación de código o implementación de recursos estáticos, 1G
    • Depuración, 2G
    • Pruebas, ~3-4G
  • Aumentar los valores de PHP realpath_cache_size y realpath_cache_ttl a la configuración recomendada:

    code language-conf
    realpath_cache_size=10M
    realpath_cache_ttl=7200
    

    Estos ajustes permiten a los procesos de PHP almacenar en caché las rutas a los archivos en lugar de buscarlos durante la carga de la página. Consulte Ajuste del rendimiento en la documentación de PHP.

  • Activar opcache.save_comments, necesaria para Adobe Commerce 2.1 y versiones posteriores.

    El Adobe recomienda habilitar la variable OPcache de PHP por motivos de rendimiento. OPcache está habilitado en muchas distribuciones PHP.

    Adobe Commerce 2.1 y versiones posteriores utilizan comentarios de código PHP para la generación de código.

NOTE
Para evitar problemas durante la instalación y actualización, Adobe recomienda encarecidamente que aplique la misma configuración de PHP tanto a la configuración de la línea de comandos de PHP como a la configuración del complemento del servidor web de PHP. Para obtener más información, consulte la siguiente sección.

Buscar archivos de configuración de PHP

En esta sección se explica cómo encontrar los archivos de configuración necesarios para actualizar la configuración necesaria.

Buscar php.ini archivo de configuración

Para buscar la configuración del servidor web, ejecute un phpinfo.php archivo en el explorador web y busque la variable Loaded Configuration File como sigue:

Página de información de PHP

Para localizar la configuración de la línea de comandos de PHP, introduzca

php --ini | grep "Loaded Configuration File"
NOTE
Si solo tiene uno php.ini archivo, cambie ese archivo. Si tiene dos php.ini archivos, cambiar ambos archivos. Si no se hace esto, el rendimiento puede ser impredecible.

Buscar opciones de configuración de OPcache

La configuración de la caché de PHP OP generalmente se encuentra en php.ini o opcache.ini. La ubicación puede depender de su sistema operativo y versión de PHP. El archivo de configuración de OPcache puede tener un opcache sección o configuración como opcache.enable.

Siga estas directrices para encontrarlo:

  • Servidor web Apache:

    Para Ubuntu con Apache, la configuración de OPcache generalmente se encuentra en php.ini archivo.

    Para CentOS con Apache o nginx, la configuración de OPcache generalmente se encuentra en /etc/php.d/opcache.ini

    Si no es así, utilice el siguiente comando para localizarlo:

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

Si tiene más de uno opcache.ini, modifique todos ellos.

Cómo configurar las opciones de PHP

Para configurar las opciones de PHP:

  1. Abra un php.ini en un editor de texto.

  2. Localice la zona horaria del servidor en el configuración de zona horaria

  3. Busque la siguiente configuración y quite los comentarios si es necesario:

    code language-conf
    date.timezone =
    
  4. Añada la configuración de zona horaria que encontró en el paso 2.

  5. Cambiar el valor de memory_limit a uno de los valores recomendados al principio de esta sección.

    Por ejemplo,

    code language-conf
    memory_limit=2G
    
  6. Añada o actualice el realpath_cache para que coincida con los siguientes valores:

    code language-conf
    ;
    ; Increase realpath cache size
    ;
    realpath_cache_size = 10M
    
    ;
    ; Increase realpath cache ttl
    ;
    realpath_cache_ttl = 7200
    
  7. Guarde los cambios y salga del editor de texto.

  8. Abra el otro php.ini (si son diferentes) y realice los mismos cambios en él.

Definir opciones de OPcache

Para establecer opcache.ini opciones:

  1. Abra el archivo de configuración de OPcache en un editor de texto:

    • opcache.ini (CentOS)
    • php.ini (Ubuntu)
    • /etc/php/8.1/fpm/php.ini (servidor web nginx (CentOS o Ubuntu))
  2. Localizar opcache.save_comments y quite los comentarios si es necesario.

  3. Asegúrese de que su valor está establecido en 1.

  4. Guarde los cambios y salga del editor de texto.

  5. Reinicie el servidor web:

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

Resolución de problemas

Consulte los siguientes artículos de soporte de Adobe Commerce para obtener ayuda con la resolución de problemas de PHP:

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