我得到这个错误与Laravel 9,我有PHP 8.1.7安装
Composer在您的平台中检测到问题:您的Composer依赖项要求PHP版本“〉= 8.1.0”。
我可以看到其他人也问过这个问题,但没有一个解决方案看起来有效
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
然后一切都按计划进行。参考编号:
ttcibm8c2#
提示
在composer.json文件中添加以下行:
composer.json
{ "config": { "platform-check": false } }
或设置版本:
{ "config": { "platform": { "php": "7.1.0" } } }
然后运行composer dump-autoload
composer dump-autoload
lnvxswe23#
如果@eril的答案没有帮助您禁用旧的PHP版本
我还要检查composer是否使用了正确的PHP版本
composer -vvv about 2>&1 | grep "PHP"
如果composer about已经显示了正确的PHP版本,则通过将PHP_BINARY放入vendor/composer/platform_check.php中,查看composer正在使用的真实的PHP二进制路径,如下所示:
PHP_BINARY
vendor/composer/platform_check.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
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
esbemjvw5#
如果您只是使用git来为部署版本化Composer依赖项,请考虑--ignore-platform-reqs标志。
--ignore-platform-reqs
composer update --dry-run --ignore-platform-reqs
--ignore-platform-reqs:忽略所有平台要求(php,hhvm,lib-* 和ext-*)并强制安装,即使本地机器不满足这些要求。2另请参阅平台配置选项。
pnwntuvh6#
如果您在nginx服务器上操作,则php-fpm8.1可能未处于活动状态。尝试:
nginx
php-fpm8.1
sudo systemctl status php-fpm8.1.service
根据php-fpm版本的状态,您可以采取行动,如果它已停止,您可能要执行以下操作:
php-fpm
sudo systemctl enable php-fpm8.1.service sudo systemctl start php-fpm8.1.service
然后再检查一遍状态,如果是激活的,就可以开始了。
注:这适用于任何php-fpm版本,而不仅仅是8.1。
8.1
希望这个能帮上忙!
kwvwclae7#
如果使用XAMPP,请检查XAMPP的PHP版本是否正确(与计算机上的版本相同)。否则,请下载并安装正确的XAMPP版本
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页)
e0bqpujr9#
直到我找到解决的方法,但它的工作,所以这就是我所做的:
只需找到服务器的php文件夹
9条答案
按热度按时间k0pti3hp1#
我遇到了同样的问题,这是因为我在命令行上配置了一个PHP 8.1版本,而我将PHP模块保持在8.0。
所以PHP_VERSION_ID给了我80020,而php -v给了我8.1.7。
它提醒我将PHP模块重新配置为PHP 8.1版:
然后一切都按计划进行。
参考编号:
ttcibm8c2#
提示
在
composer.json
文件中添加以下行:或设置版本:
然后运行
composer dump-autoload
lnvxswe23#
如果@eril的答案没有帮助您禁用旧的PHP版本
我还要检查composer是否使用了正确的PHP版本
如果composer about已经显示了正确的PHP版本,则通过将
PHP_BINARY
放入vendor/composer/platform_check.php
中,查看composer正在使用的真实的PHP二进制路径,如下所示:在我例子中,启用了php-fpm的旧版本。
eimct9ow4#
当我把我的php从8.1降级到v7.4的时候也遇到了同样的问题。我不知怎么搞砸了php7.4-fpm mod。然而,当我再次尝试升级我的php v8.1的时候,composer开始抱怨这个错误。我只是简单地删除了我的php版本7.4和8.1,只重新安装了8.1,这就解决了我的问题。
要删除,以下是我遵循的步骤....
最后,
esbemjvw5#
如果您只是使用git来为部署版本化Composer依赖项,请考虑
--ignore-platform-reqs
标志。--ignore-platform-reqs
:忽略所有平台要求(php,hhvm,lib-* 和ext-*)并强制安装,即使本地机器不满足这些要求。2另请参阅平台配置选项。pnwntuvh6#
如果您在
nginx
服务器上操作,则php-fpm8.1
可能未处于活动状态。尝试:
根据
php-fpm
版本的状态,您可以采取行动,如果它已停止,您可能要执行以下操作:然后再检查一遍状态,如果是激活的,就可以开始了。
注:这适用于任何
php-fpm
版本,而不仅仅是8.1
。希望这个能帮上忙!
kwvwclae7#
如果使用XAMPP,请检查XAMPP的PHP版本是否正确(与计算机上的版本相同)。否则,请下载并安装正确的XAMPP版本
vnjpjtjt8#
打开composer.json并检查“require”块中的“php”。它有一个表达式,可以对PHP版本或版本范围施加约束,该约束适用于所有项目的依赖项。
一个很好的值将是使用下面的一个。更改它,然后运行 composer 更新。
与laravel 9随附的composer.json不同:
(see laravel 9 composer.json在官方知识库中:(第10页)
e0bqpujr9#
直到我找到解决的方法,但它的工作,所以这就是我所做的:
只需找到服务器的php文件夹