He subido mi proyecto Laravel al alojamiento de AWS cuando voy a la dirección IP de la instancia EC2 y me da este error:
Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0".Compruebo la versión de PHP y la versión actual 7.3. No sé lo que realmente tengo que hacer. Primero la versión era 7.4, y luego la bajé a 7.3.
Problema:
Su Composer verifica los requisitos de la plataforma (versión de PHP y extensiones cargadas) cuando se carga el cargador automático. Si ejecuta la aplicación que no cumple con los requisitos de la plataforma, la aplicación se cerrará con un mensaje similar a este:
Composer detectó problemas en su plataforma: sus dependencias de Composer requieren una versión de PHP ">= 7.3.0".
Solución:
Puede usar la forma más fácil: agregue la opción --ignore-platform-reqs a la composer install/composer update para ignorar todos los requisitos de la plataforma.
Proyecto o archivo composer.json global:
{ "config": { "platform-check": false } }sigue este truco
agregue esta línea en el objeto de configuración del archivo composer.json
"verificación de plataforma": falso
ejecutar php artisan config:cache
luego ejecute composer dump-autoload en la terminal
Ignorar no es la opción correcta. Tienes que actualizar tu versión de PHP. Ten en cuenta que a estas alturas ya tenemos PHP 8, por lo que con la versión 7.2 te quedas muy atrás.
Dependiendo de sus distribuciones, si está utilizando un derivado de Debian como Ubuntu, use esta guía de enlace: Actualice la versión de PHP a PHP 7.4 en Ubuntu o simplemente búsquelo en Google y todo estará bien.
Si está utilizando Windows, con Laragon, todo lo que tiene que hacer es descargar la versión de PHP que desee de https://www.php.net/downloads.php . Descomprima la carpeta en la carpeta c:/laragon/bin/php y luego, usando la interfaz gráfica de usuario de Laragon, seleccione otra versión en Menú/php.
Si desea actualizar la versión PHP global de Windows, puede utilizar el Instalador de plataforma web . Para mí, esta fue una de las formas más fáciles de hacerlo en Windows. Para obtener más información, siga Instalar y configurar PHP .
En realidad, esta fue la única solución que funcionó para mí:
composer global update composer dump-autoloadEn primer lugar, ¡lea la advertencia! ¡Dice que no ejecute Composer como root! En segundo lugar, probablemente esté utilizando XAMPP en su local, que tiene las bibliotecas PHP necesarias de forma predeterminada.
Pero en tu servidor te falta ext-dom . php-xml tiene todos los paquetes relacionados que necesita. Entonces, puedes instalarlo ejecutando:
sudo apt-get update sudo apt install php-xmlLo más probable es que también te falte mbstring . Si obtiene el error, instale este paquete también con:
sudo apt-get install php-mbstringEntonces corre:
composer updateLuego ejecute: para recargar su servidor Apache :
sudo systemctl reload apache2Si es como yo, que tuvo que degradar la versión de PHP en su máquina (Mac) debido a una razón específica y cuando ejecuta valet use php --force , ve que las dependencias globales de Composer requieren PHP v7.3.0 o superior, entonces Estás en el lugar correcto. Puede comentar las siguientes tres líneas temporalmente y eso solucionará el problema cuando ejecute valet use php --force nuevamente.
Ruta: ~/.composer/vendor/composer/platform_check.php
if (!(PHP_VERSION_ID >= 70300)) { $issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.'; }Nota: no olvide descomentar las tres líneas relevantes después de cambiar a la última versión de PHP.
Esto funcionó para mí:
sudo a2dismod php7.2 sudo a2enmod php7.4 sudo service apache2 restart Ajuste php7.2 a su módulo actual.
Después de haber usado todas las soluciones que se intentaron anteriormente, descubrí que la que funciona mejor es la siguiente.
sudo apt-get update sudo apt install php-xml sudo apt-get install php-mbstring sudo rebootLogré solucionar este problema descargando una versión más nueva de PHP que a la vez era compatible con la versión de Apache instalada desde aquí !.
En la interfaz de Laragon , vi que la versión de Apache era "httpd 2.4.35 win64 VC15", así que busqué una versión de PHP que tuviera este "vc15".
Descargué el "php-7.4.19-Win32-vc15-x64" y lo seleccioné en mi Laragon. ¡En este enlace puede encontrar cómo reemplazar la versión de PHP en Laragon aquí !
Entonces, habiendo luchado con este mismo problema,
Error fatal de PHP: Composer detectó problemas en su plataforma: Sus dependencias de Composer requieren una versión de PHP ">= 7.2.5". Está ejecutando 7.1.28
durante varias horas, y al descubrir que ninguna de las sugerencias anteriores funcionó, finalmente descubrí que, al menos en los sistemas FreeBSD, el módulo PHP requerido por Apache no está instalado por el paquete PHP principal (por ejemplo, "php74-7.4.19 "), sino por un paquete diferente, específico del módulo con su propio control de versiones (por ejemplo, "mod_php71-7.1.28").
Ejecutar php -v consulta el paquete php; visitar phpinfo() consulta el paquete mod.
La clave para esto es ejecutar pkg info | grep php y examine los resultados para ver qué paquetes ha instalado. Obviamente, debe ajustar lo anterior para el sistema de empaquetado que utiliza su sistema.
La respuesta de Hashmat Waziri es correcta, pero si alguien quiere usar la versión de su plataforma, Composer requiere algo, puede configurar el código, según su sistema, en el archivo composer.json como:
"config": { "platform": { "php": "7.1.0" } }El mismo problema al cambiar de PHP 8.0 a 7.2 era necesario para ejecutar un proyecto anterior.
Cómo he solucionado mi problema:
$brew link php@7.2 , pero creo que puede usar cualquier aplicación de administrador de PHP para pasar a una versión anterior de PHP sin ningún problema)Esto solucionó mi problema y me permitió cambiar entre diferentes versiones sin más problemas, el único requisito es usar:
composer global updatedespués de cambiar la versión de PHP para actualizar las dependencias globales.
No tengo ni idea de qué causó el problema. Tal vez algo salió mal durante el cambio de versión de PHP, pero no pudimos identificar la causa del problema.
PD Nuestro problema estaba relacionado con el paquete "laravel/install", desinstalarlo requería desinstalar "laravel/valet" antes, sin embargo, el procedimiento no cambia, simplemente tenemos que reinstalar ambos paquetes en PHP 7.2.
Como se mencionó en un comentario bajo la pregunta original, en lugar de simplemente tratar de ocultar el error o evitarlo, sería mejor resolverlo por completo para asegurarse de que la aplicación funcione como debería. Para eso, tenemos que actualizar la versión de PHP que se está utilizando. Recibí este error en una máquina_virtual en la nube, así que tuve acceso a la terminal desde donde instalé la versión requerida de PHP en el sistema.
Después de eso, cambié la versión activa de PHP de la versión anterior a la versión más nueva.
Para hacer esto, primero corrí,
sudo a2dismod php7.2Entonces verás,
Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2
Como se mencionó, corre,
sudo systemctl restart apache2
Entonces corre,
sudo a2enmod php8.0
Esto habilitará la versión requerida. Luego ejecute,
sudo systemctl restart apache2
Una explicación más detallada está disponible aquí .
Reforzaría la instrucción de no ignorar descaradamente las advertencias. ¿Ignorarías una advertencia en una cerca eléctrica que te dice que hay riesgo de muerte si la tocas?
En mi caso, estaba tratando de ejecutar una aplicación antigua, usando PHP 7.2, por lo que no podía simplemente cambiar la versión de PHP.
Mi solución fue bastante simple. Examine el archivo composer.lock para encontrar qué paquete requiere la versión de PHP que se informa en la advertencia. Encuentre ese paquete en packagist.org, busque una versión del paquete que coincida con su versión de PHP e instálela.
P.ej,
composer require <package>:<version>
Es posible que deba pasar por esto varias veces. En mi caso, tuve que instalar paquetes que querían PHP 7.4 y aquellos que querían PHP 7.3 antes de que mi aplicación estuviera feliz.
Aquellos que están aquí después de enfrentar un problema similar en XAMPP (nada que ver con Laravel), lo resolví de la siguiente manera:
Me muestra el error:
Composer detectó problemas en su plataforma: Sus dependencias de Composer requieren que se instalen las siguientes extensiones de PHP: mysqli, openssl
Utilice --ignore-platform-reqs con su comando composer.
--ignore-platform-reqs ignorará las dependencias de la plataforma.
composer install --ignore-platform-reqso
composer update --ignore-platform-reqsLa mejor forma en que arreglé la mía fue
Vaya a su carpeta xampp, busque php.ini
Cambié esto ;extension=mysqli a extension=mysqli Y también cambie ;extension=openssl a extension=openssl
Reinicia tu Apache y MySQL
Listo (Trabajando)