laravel 您的Composer依赖项需要PHP版本“>= 8.1.0”

u5rb5r59  于 2022-11-18  发布在  PHP
关注(0)|答案(9)|浏览(790)

我得到这个错误与Laravel 9,我有PHP 8.1.7安装

Composer在您的平台中检测到问题:您的Composer依赖项要求PHP版本“〉= 8.1.0”。

我可以看到其他人也问过这个问题,但没有一个解决方案看起来有效

k0pti3hp

k0pti3hp1#

我遇到了同样的问题,这是因为我在命令行上配置了一个PHP 8.1版本,而我将PHP模块保持在8.0。
所以PHP_VERSION_ID给了我80020,而php -v给了我8.1.7。
它提醒我将PHP模块重新配置为PHP 8.1版:

sudo a2dismod php8.0

sudo a2enmod php8.1

sudo systemctl restart apache2

然后一切都按计划进行。
参考编号:

ttcibm8c

ttcibm8c2#

提示

composer.json文件中添加以下行:

{
    "config": {

        "platform-check": false
    }
}

或设置版本:

{
    "config": {

        "platform": {
            "php": "7.1.0"
        }
    }
}

然后运行composer dump-autoload

lnvxswe2

lnvxswe23#

如果@eril的答案没有帮助您禁用旧的PHP版本

sudo a2dismod php8.0
sudo a2enmod php8.1
sudo systemctl restart apache2

我还要检查composer是否使用了正确的PHP版本

composer -vvv about 2>&1 | grep "PHP"

如果composer about已经显示了正确的PHP版本,则通过将PHP_BINARY放入vendor/composer/platform_check.php中,查看composer正在使用的真实的PHP二进制路径,如下所示:

if (!(PHP_VERSION_ID >= 80100)) {
    $issues[] = 'You are running ' . PHP_VERSION . ' located at: ' . PHP_BINARY;
}

在我例子中,启用了php-fpm的旧版本。

a2disconf php8.0-fpm 
a2enconf php8.1-fpm 
sudo systemctl restart apache2
eimct9ow

eimct9ow4#

Your Composer dependencies require a PHP version ">= 8.1.0"

当我把我的php从8.1降级到v7.4的时候也遇到了同样的问题。我不知怎么搞砸了php7.4-fpm mod。然而,当我再次尝试升级我的php v8.1的时候,composer开始抱怨这个错误。我只是简单地删除了我的php版本7.4和8.1,只重新安装了8.1,这就解决了我的问题。
要删除,以下是我遵循的步骤....

sudo apt-get purge php8.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php8.1

最后,

sudo service apache2 restart
esbemjvw

esbemjvw5#

如果您只是使用git来为部署版本化Composer依赖项,请考虑--ignore-platform-reqs标志。

  • 有关详细信息,请参阅www.example.com上的 * 选项 *https://getcomposer.org/doc/03-cli.md#install-i
composer update --dry-run --ignore-platform-reqs

--ignore-platform-reqs:忽略所有平台要求(php,hhvm,lib-* 和ext-*)并强制安装,即使本地机器不满足这些要求。2另请参阅平台配置选项。

pnwntuvh

pnwntuvh6#

如果您在nginx服务器上操作,则php-fpm8.1可能未处于活动状态。
尝试:

sudo systemctl status php-fpm8.1.service

根据php-fpm版本的状态,您可以采取行动,如果它已停止,您可能要执行以下操作:

sudo systemctl enable php-fpm8.1.service
sudo systemctl start php-fpm8.1.service

然后再检查一遍状态,如果是激活的,就可以开始了。

:这适用于任何php-fpm版本,而不仅仅是8.1

希望这个能帮上忙!

kwvwclae

kwvwclae7#

如果使用XAMPP,请检查XAMPP的PHP版本是否正确(与计算机上的版本相同)。否则,请下载并安装正确的XAMPP版本

vnjpjtjt

vnjpjtjt8#

打开composer.json并检查“require”块中的“php”。它有一个表达式,可以对PHP版本或版本范围施加约束,该约束适用于所有项目的依赖项。
一个很好的值将是使用下面的一个。更改它,然后运行 composer 更新。

"require": {
        "php": "^8.0|^8.1",

与laravel 9随附的composer.json不同:

"require": {
        "php": "^8.0.2",

(see laravel 9 composer.json在官方知识库中:(第10页)

e0bqpujr

e0bqpujr9#

直到我找到解决的方法,但它的工作,所以这就是我所做的:

  • 下载php 8.1.9(国家标准)
  • 在bin/php/中提取它(我使用Laragon)
  • 移动php 7.14.19到一个新的文件夹(只是为了防止)
  • 并将我的php 8文件夹重命名为php 7文件夹名
  • 它还在工作

只需找到服务器的php文件夹

相关问题