Requisitos de PHP
Algunos módulos individuales pueden tener requisitos específicos para extensiones y configuraciones de PHP, además de los enumerados a continuación, por lo que le recomendamos revisar la documentación del módulo.
Versiones de PHP compatibles
Versión de PHP | Compatible con Drupal | Recomendado para Drupal |
---|---|---|
5.5 | ![]() |
![]() |
5.6 | ![]() |
![]() |
7.0 | Sí, 7.0.8 con Drupal 8.7.0 (nota 2 abajo) | ![]() |
7.1 | Sí | ![]() |
7.2 | Sí, con Drupal 8.5.0 | ![]() |
7.3 | Sí, con Drupal 8.6.4 (nota 1 abajo) | ![]() |
7.4 | Sí, con Drupal 8.8.3 | ![]() |
8.0 | ![]() |
1) Lea la nota de cambio para más información sobre el soporte para PHP 7.3.
2) Lea la nota de cambio para más información sobre el fin de soporte de PHP 5.
¿Qué significa la versión «recomendada» de PHP?
Drupal funcionará en todas las versiones de PHP compatibles. Las versiones recomendadas de PHP son la mejor opción para construir un sitio en Drupal porque tendrán soporte por más tiempo. PHP 7 también ofrece mejoras significativas en velocidad y caché.
PHP 5.5, 5.6 y 7.0 alcanzaron el fin oficial de vida a finales de 2018, y PHP 7.1 al 1 de diciembre de 2019. (Consulte PHP: versiones soportadas para más información.) Drupal 8 dejó de soportar PHP 5.5 y 5.6 en mayo de 2019 y las nuevas versiones requieren PHP 7.0.8 o superior. Recomendamos actualizar al menos a PHP 7.2. (Ubuntu 18.04 viene con PHP 7.2 y Debian stable con 7.3.)
Nota: esto no afecta a Drupal 7, que sigue siendo compatible con PHP 5.2.4 y superior. Se publicará un anuncio separado si esto cambia – vea Requisitos de PHP para Drupal 7.
Extensiones PHP requeridas
Las extensiones usadas por el núcleo de Drupal están definidas en el archivo composer.json del núcleo – por ejemplo, vea el archivo para Drupal 8.7.x. Mire la sección «require» y las claves que comienzan con «ext-».
Nota: agregar una extensión PHP a su sistema, al menos en Linux (y Mac), significa buscar e instalar el paquete PHP correspondiente usando el gestor de paquetes. Normalmente, el nombre del paquete para la extensión Foo es «php-foo» o «php7-foo», pero no siempre. Algunas extensiones son parte del paquete principal de PHP y, por lo tanto, están incluidas por defecto.
Extensiones de base de datos
La extensión PHP Data Objects (PDO) debe estar habilitada para una correcta instalación y funcionamiento de Drupal 8. La versión PDO para PECL no es compatible con Drupal 8 y no puede usarse. Además, la extensión PHP para conectarse a la base de datos que haya elegido debe estar instalada y habilitada.
Actualmente, los conectores de base de datos compatibles con Drupal son: mysql (extensión MySQL original), mysqli (conector mejorado para instalaciones MySQL más recientes) y pgsql (para PostgreSQL). Nota: PHP 5.x ya no incluye la extensión mysql por defecto. Por favor, lea los enlaces anteriores para instalar y habilitar el conector elegido. Por lo general, si instala PDO con soporte para MySQL, el conector correcto ya está seleccionado para usted.
Extensión XML
Extensión PHP XML (para Blogs API, módulos Drupal y Ping). Esta extensión está habilitada por defecto en la instalación estándar de PHP; la versión de PHP para Windows tiene soporte incorporado para esta extensión. Habilitar la extensión XML también habilita PHP DOM. DOM ahora es un requisito del sistema.
Biblioteca de manipulación de imágenes
Una biblioteca de imágenes para PHP, como la biblioteca GD, es una extensión obligatoria en Drupal 8 y es necesaria para manipular imágenes (redimensionar imágenes de usuario, módulos de imágenes y caché de imágenes). ImageMagick también es compatible para manipulaciones básicas de imágenes en el núcleo de Drupal, pero con mucho menos soporte de módulos añadidos.
OpenSSL
La extensión PHP OpenSSL es recomendada para permitir que Drupal realice solicitudes salientes usando HTTPS. Algunas plataformas proporcionan un paquete OpenSSL separado, como php7-OpenSSL.
También se está trabajando en verificar el módulo Update Manager de Drupal para actualizaciones usando HTTPS, lo que haría esta recomendación más estricta o posiblemente obligatoria. Vea el issue #1538118: El estado de actualización no verifica la identidad o autenticidad de la URL del historial de lanzamientos y https://groups.drupal.org/node/506128.
JSON
Drupal 8 requiere que PHP esté compilado con JSON. El soporte JSON generalmente se compila como parte del núcleo de PHP, pero si recibe errores como
PHP Fatal error: Call to undefined function Drupal\\Component\\Serialization\\json_encode() in ... core/lib/Drupal/Component/Serialization/Json.php
intente agregar la extensión JSON.
cURL
La extensión PHP cURL es necesaria para el módulo SimpleTest en Drupal 8, así como para Aggregator y algunos módulos adicionales. En muchas distribuciones de Linux y pilas de desarrollo, esto estará habilitado por defecto, pero si su sistema no lo habilita en php.ini (normalmente en Windows) o no lo instala con el gestor de paquetes (normalmente en Linux), deberá hacerlo manualmente.
Mbstring
La extensión PHP mbstring proporciona funciones especiales de cadenas multibyte utilizadas para instalar Drupal en idiomas distintos al inglés, así como para sitios multilingües en Drupal. Ayuda a trabajar con codificaciones multibyte en PHP y maneja codificaciones basadas en Unicode como UTF-8 o UCS-2.
Configuraciones de PHP
Requisitos de memoria
Los requisitos de memoria de PHP pueden variar significativamente según los módulos usados en su sitio. El mínimo necesario es 64 MB.
Se mostrarán mensajes de advertencia si la configuración de PHP no cumple con estos requisitos. Sin embargo, aunque estos valores pueden ser suficientes para una instalación predeterminada de Drupal, un sitio en producción con múltiples módulos comúnmente usados activados probablemente necesite más memoria. Por lo general, 128 MB o 256 MB son comunes en sistemas de producción. Algunas instalaciones pueden requerir mucho más, especialmente en implementaciones multimedia. Si usa un servicio de hosting, es importante asegurarse de que su host pueda proporcionar suficiente memoria para el conjunto de módulos que despliega o podría desplegar en el futuro. (Consulte la página aumentar el límite de memoria PHP en las preguntas frecuentes de solución de problemas para más información sobre cómo cambiar el límite de memoria PHP.)
Configuraciones en .htaccess
Algunas configuraciones de memoria están en el archivo .htaccess predeterminado que se incluye con Drupal, por lo que no necesita establecerlas explícitamente. Sin embargo, tenga en cuenta que establecer configuraciones de PHP desde .htaccess solo funciona si:
Con Apache (o un servidor web compatible)
El archivo .htaccess se está leyendo realmente, es decir, AllowOverride All está habilitado en la configuración principal de Apache (normalmente httpd.conf)
PHP está instalado como módulo de Apache
En algunos entornos compartidos, el acceso a estas configuraciones está restringido. Si no puede hacer estos cambios usted mismo, pida a su proveedor de hosting que los configure por usted.
Otros interfaces
Consulte la Guía de PHP para saber cómo cambiar configuraciones para otros interfaces de PHP.
Xdebug
Si usa Xdebug:
Configuración: xdebug.show_exception_trace = 0
Razón: puede causar que el instalador de Drupal falle.
Uso de Xdebug con Drupal 8:
Configuración: xdebug.collect_params = ?
Razón: un valor demasiado alto de xdebug.collect_params impedirá instalar y ejecutar Drupal 8.
Configuración: xdebug.max_nesting_level = 256
Razón: usar el valor predeterminado max_nesting_level de 100 (en versiones de xdebug <2.3) causa fallos en algunas páginas.
PHP de diferentes fuentes
Drupal está diseñado para funcionar con PHP distribuido desde PHP.net. Se hacen esfuerzos para que funcione con versiones de PHP de otras fuentes, pero solo bajo esfuerzo máximo. En particular, se sabe que Suhosin rompe ciertas funciones; y algunos sistemas operativos mueven componentes principales a otros paquetes.
Detalles de los requisitos de PHP
Vea la página phpinfo() en Drupal.org para aprender a usar Phpinfo para obtener información detallada sobre su sistema. Por ejemplo, Phpinfo le dirá si ya tiene una base de datos instalada y qué versiones de PHP, MySQL, etc., están funcionando en su sistema. Phpinfo también le mostrará qué variables de PHP están configuradas y muchas otras cosas útiles.
Con frecuencia es posible actualizar a una versión más nueva de PHP que venga con su distribución de Linux. Lea la documentación de su distribución Linux.
Algunos puntos destacados
Tenga en cuenta las limitaciones de PHP de 32 bits.
Las dependencias de Drupal basadas en Composer están empaquetadas usando PHP 5.5.9. Si usa una versión más alta de PHP, puede usar el comando de actualización de Composer para obtener versiones de dependencias más adecuadas.
El gestor de actualizaciones de Drupal 8 puede instalar/actualizar módulos y temas a través de SSH si las bibliotecas necesarias están instaladas en el servidor. (En Debian, el paquete se llama «libssh2-php».)
Si usa el caché de código de operación APC con Drupal 8, se requiere APC 3.1.13 o superior.
Si está habilitado el opcache incorporado, la configuración opcache.save_comments debe estar activada (valor 1 por defecto), de lo contrario las anotaciones no se guardarán/cargarán.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.