Estoy tratando de instalar mis paquetes de compositor, pero me da esto:
This package requires php >=7.0.0 but your PHP version (5.5.9)
Pero php -v
me da esto: PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Estoy ejecutando una máquina Ubuntu 16.04.3 LTS, encontré algunas soluciones para Mac y Windows, pero nadie parece tener el problema en Linux.
prueba esto:
composer install --ignore-platform-reqs
o esto en composer.json
"config": {
"preferred-install": "dist",
"platform": {
"php": "7.0.0"
}
}
en la segunda solución básicamente estás falsificando una plataforma y ejecutas composer.phar update
después de este
-
esto funciona, pero ¿cuál es la causa de esto?
which php
espectáculos/usr/bin/php
y/usr/bin/php -v
espectáculos7.0.22
también…– PrimuS
28 de agosto de 2017 a las 8:08
-
@PrimuS, no sé, puede ser un
composer
error de . Siempre tuvo problemas con las versiones de PHP. Así que haz que lo acepte. Está bien– usuario10089632
28 de agosto de 2017 a las 8:11
-
No, ignorar los requisitos de la plataforma es simplemente incorrecto y oculta el problema real en sí. Asegúrese de tener solo una versión de PHP instalada. Entonces esto debería solucionar el problema. Vea mi respuesta a continuación.
– roland
15 de enero de 2020 a las 14:23
-
@Roland tiene razón, esta no es una respuesta de ninguna manera. & @Roland está ligeramente equivocado, OP puede tener varias versiones de PHP pero ha configurado la deseada como predeterminada. En ubuntu OP puede usar
sudo apt update-alternative --config php
para eso– APu
14 de noviembre de 2021 a las 12:24
-
Es por eso que no podemos tener cosas bonitas – hackjobs…
–Jacob Thomason
17 de marzo a las 22:44
Si está usando sistemas basados en Debian, puede pedirle que use globalmente una versión específica con el siguiente comando (dependiendo de cómo y dónde estén instaladas sus versiones de php):
sudo update-alternatives --set php /usr/bin/php7.2
update-alternatives crea, elimina, mantiene y muestra información sobre los enlaces simbólicos que componen el sistema de alternativas de Debian.
malek zarkouna
Prueba esto a mi me funciono:
alias php='/usr/local/php7/bin/php'
php composer.phar install
roland
composer
hace referencia al ejecutable de PHP aquí de la siguiente manera:
#!/usr/bin/env php
Cuando lo hago which php
yo obtengo /c/Program Files/php-7.1/php
bajo GIT-Bash (Windows 10).
Bajo Linux (en casa tengo Debian), php
puede ser un enlace simbólico a un binario PHP real.
Así que haz lo siguiente:
- Comprueba dos veces dicho
php
conls -l `which php`
- Asegúrese de tener solo una versión de PHP instalada, esto puede causar que se mezclen versiones incompatibles que pueden ser la causa raíz de su problema
Eso debería ayudarte a encontrar la causa raíz.
Solo comparto aquí porque tuve el mismo problema y encontré este hilo primero mientras buscaba. Para mi tenia un servidor Windows con PHP 5.6.? en él, así como PHP 7.2.? en eso. Había configurado IIS para usar 7.2 pero 5.6 todavía estaba en las variables de entorno en la ruta. Abra Propiedades del sistema>pestaña Avanzado> “Variables de entorno…”. Edite “ruta” y elimine la referencia a “C:/archivos de programa (x86)/PHP/v5.6” de la ruta y guárdela. Reinicie su terminal y debería estar listo. Espero que eso ayude a alguien.
Emperador MC
Recientemente me encontré con el mismo problema. php --version
devuelto 7.4.30
pero Composer dijo que estaba usando PHP 8.0.18.
Resulta que Composer está usando su propia versión de PHP. los composer
script contiene una ruta codificada a PHP 8. (Para mí, este es un error del compositor, ya que Composer debe respetar el valor de la config.platform.php
propiedad de la composer.json
expediente.)
-
Una opción puede ser alias
composer
:alias composer="/usr/local/bin/php /usr/bin/composer.phar
-
Otra opción puede ser reescribir
composer
:cat /usr/bin/composer \ | sed "s~/usr/bin/php8~/usr/local/bin/php~g' \ > /usr/bin/composer.tmp mv /usr/bin/composer.tmp /usr/bin/composer
Así es como me enteré. Primero, quería encontrar la ubicación de composer
. Mediante el uso whereis composer
uno puede encontrar el camino de la composer
dominio. Para mí, volvió
composer: /usr/bin/composer
Luego quise ver el contenido de /usr/bin/composer
para poder averiguar cuál es el composer
comando estaba haciendo bajo el capó. Mediante el uso cat /usr/bin/composer
el contenido de la composer
se imprime el guión. Para mí, volvió
#!/bin/sh
/usr/bin/php8 /usr/bin/composer.phar "$@"
Ahí está. los composer
el comando usa codificado /usr/bin/php8
para ejecutar el composer.phar
expediente.
Yuri Tinyukov
Bueno, esto funcionó para mí.
$ alias composer="php /usr/bin/composer.phar"
$ composer install
Use el binario php exacto en el alias, por ejemplo
$ alias composer="php8.1 /usr/bin/composer.phar"
¿Qué hace un phpinfo(); show de llamadas en su navegador? ¿Tenías previamente 5.5.9 instalado antes de instalar 7.x?
– alarde de
28 de agosto de 2017 a las 7:48
Tenga cuidado, porque la versión CLI puede ser diferente a la que muestra phpinfo().
– Víctor
28 de agosto de 2017 a las 7:54
necesita usar el comando alias php solo para pasar la sesión
– Malek Zarkuna
28 de agosto de 2017 a las 8:27