Image
Versión correcta de PHP en Apache, como configurarlo.
Versión correcta de PHP en Apache, como configurarlo.

Una circunstancia que podemos encontrar es que cuando intentemos ejecutar un programa que requiera una versión específica de php, nos dé error porque la versión no es la adecuada, por eso necesitamos saber configurar la  versión correcta de PHP en Apache.

En relación con la instalación de Drupal, las más recientes versiones pueden o son recomendables, gestionarlas con el gestor de paquetes Composer. Composer es un gestor de paquetes php que facilita la gestión de dependencias y librerías.

La versión más reciente de Composer, en el momento de escribir este artículo la 2.1.3, requiere trabajar en un entorno con php 7.3 o superior.

Poniéndonos en un caso práctico, supongamos que hemos instalado Drupal en un servidor Debian 9, lanzamos la url de instalación y nos presenta el siguiente mensaje.

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0".

Podemos comprobar la versión que tenemos en php con el comando php --version.
 

root@gondor-01:/var/www/html/midrupal/web# php --version
PHP 8.0.8 (cli) (built: Jul  1 2021 16:10:07) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.8, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.8, Copyright (c), by Zend Technologies

Curiosamente podemos observar que nos indica que la versión que tenemos instalada en la 8.0.8, con lo cual, teóricamente debería dejarnos funcionar pero no es el caso.

Realmente no quiere decir que sea la versión que Apache está utilizando. Para ver qué versión está utilizando el apache, creamos un fichero php que podemos llamar miversionphp.php en el mismo directorio con el código:

<?php

phpinfo();

?>

Lanzamos la url llamando al fichero que hemos creado para que no se active el index.php y veremos un cuadro con multitud de información pero la que nos interesa es la siguiente:

Image
versión correcta de PHP en Apache.

Realmente Apache está utilizando otra versión que tenemos instalada porque está activo el módulo de la versión 7.0. Para cambiar la versión del módulo, tenemos que deshabilitar el anterior y habilitar la versión correcta.


En Debian, para poder ejecutar los comandos de activación o desactivación de módulos de apache, tenemos que poner toda la ruta, por ello, para desactivar la versión de php7.0, escribimos:

root@gondor-01:/var/www/html/midrupal/web# /usr/sbin/a2dismod 7.0

Y activamos el módulo de php7.3:

root@gondor-01:/var/www/html/midrupal/web# /usr/sbin/a2enmod 7.3

 

En principio no debemos asustarnos por los mensajes de respuesta ya que son warnings que nos advierten de posibles incompatibilidades entre módulos. Realmente nos deja activado el módulo de php7.3 para el Apache. Sólo nos queda como indica en la última linea, reiniciar el apache2.


Actualizamos la página y ya aparece la versión correcta:

Image
versión correcta de PHP en Apache.

Podemos volver a lanzar la url de instalación de Drupal. 

 

Esto ha sido Versión correcta de PHP en Apache, como configurarlo.

Si necesitas más ayuda, visita el blog

Image
aula drupal composer
Composer detected issues in your platform

Cuando nos da este error, al subir nuestra web a un servidor nuevo : Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0".

Lo primero que debemos comprobar es la versión real de PHP que tenemos. Pues aunque pensemos que tenemos puesta la correcta, a veces si el servidor soporta multiphp por dominio, al crear un dominio nuevo no asigna bien la versión seleccionada y aplica la "por defecto". 

Para comprobarlo vamos a: vendor/composer/plataform_check.php ( si no tenemos el archivo lo podemos crear) 

y dentro modificamos el archivo para que quede así:

<?php

// platform_check.php @generated by Composer

$issues = array();

if (!(PHP_VERSION_ID >= 70400 && PHP_VERSION_ID < 90000)) {
    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0" and "< 9.0.0". You are running ' . PHP_VERSION  .  '.';
}

$missingExtensions = array();
extension_loaded('pdo') || $missingExtensions[] = 'pdo';

if ($missingExtensions) {
    $issues[] = 'Your Composer dependencies require the following PHP extensions to be installed: ' . implode(', ', $missingExtensions);
}

if ($issues) {
    echo 'Composer detected issues in your platform:' . "\n\n" . implode("\n", $issues);
    exit(104);
}

Al volver a la web, el mensaje habrá cambiado y nos dirá la versión de los archivos:  Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0" and "< 7.4.0". You are running 7.2.5.

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0".

En mi caso, El Cpanel me indicaba que tenia la 7.3 pero realmente estaba aplicando la 7.2 por tanto acudí al panel y aplique de nuevo la 7.3. 

 

Volví a comprobar en la web y ahora ya me decía: You are running 7.3.23.

Como no puedo poner la versión 7.4, baje la versión al drupal para que tabaje con la 7.3 que es la mínima para Drupal 9

Para ello vamos al composer.json y añadimos las siguientes lineas: 

 "prefer-stable": true,
    "config": {
        "sort-packages": true,
+       "platform-check": false,
+       "platform": {
+           "php": "7.3.0"
+       }
    },

Abrimos el composer.lock y añadimos las siguientes lineas: 

   "platform": [],
   "platform-dev": [],
+  "platform-overrides": {
+       "php": "7.3.0"
+    },
   "plugin-api-version": "2.0.0"

A continuación ejecutamos composer update o install para bajar de nuevo el core y sus contrib con los nuevos requisitos.

Subimos todo de nuevo y comprobamos. La web debería funcionar correctamente.

 

Nota = Si te da error 500 tras todo esto, recuerda configurar el php ( aumentarle memoria) pues cada vez que cambiamos php los valores se restablecen. 

Esto resuelve Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0".

 

Más ayuda en el blog