当我转到EC2实例的 IP 地址时,我已将我的 Laravel 项目上传到AWS托管,它给了我这个错误:
Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0".
我检查了 PHP 版本和当前版本 7.3。我不知道我实际上需要做什么。首先版本是7.4,然后我降级到7.3。
遵循这个技巧
在composer.json 文件的配置对象中添加这一行
“平台检查”:假
跑php artisan config:cache
然后composer dump-autoload
在终端运行
项目或全局composer.json文件:
{
"config": {
"platform-check": false
}
}
问题:
当自动加载器加载时,您的Composer会检查平台要求(PHP 版本和加载的扩展)。如果您运行不符合平台要求的应用程序,应用程序将退出并显示类似以下的消息:
Composer 在您的平台中检测到问题:您的 Composer 依赖项需要 PHP 版本 ">= 7.3.0"。
解决方案:
您可以使用最简单的方法:添加--ignore-platform-reqs
选项composer install/composer update
以忽略所有平台要求。
这对我有用:
sudo a2dismod php7.2
sudo a2enmod php7.4
sudo service apache2 restart
调整php7.2
到您当前的模块。
如果您像我一样由于特定原因不得不在您的机器(Mac)上降级 PHP 版本,并且当您运行时valet use php --force
,您会看到 Composer 全局依赖项需要 PHP v7.3.0 或更高版本,那么您是对的地方。您可以暂时注释掉以下三行,这将在valet use php --force
再次运行时为您解决问题。
小路:~/.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 . '.';
}
注意:切换到最新版本的PHP后不要忘记取消注释相关的三行。
Hashmat Waziri 的回答是正确的,但是如果有人想使用您平台的版本,无论 Composer 需要什么,他/她都可以根据他/她的系统将代码设置到composer.json文件中,例如:
"config": {
"platform": {
"php": "7.1.0"
}
}
实际上,这是唯一对我有用的解决方案:
composer global update
composer dump-autoload
忽略不是正确的选择。您必须升级您的 PHP 版本。考虑到现在,我们已经有了 PHP 8,所以对于 7.2 版本,你已经远远落后了。
根据您的发行版,如果您使用的是像 Ubuntu 这样的Debian衍生产品,请使用此链接指南:在 Ubuntu 上将 PHP 版本升级到 PHP 7.4,或者只需 google 即可,一切都会好起来的。
如果您使用的是 Windows 和 Laragon,那么您所要做的就是从 https://www.php.net/downloads.php下载您想要的 PHP 版本。将文件夹解压缩到 c:/laragon/bin/php 文件夹,然后使用 Laragon GUI 在 Menu/php 中选择另一个版本。
如果您希望升级全球 Windows PHP 版本,您可以使用Web Platform Installer。这对我来说是在 Windows 上执行此操作的最简单方法之一。有关更多信息,请遵循安装和配置 PHP。
打开cPanel并输入 multiphp Manager。之后,选择您想要的域,然后在右上角将 PHP 版本更改为 7.3 或任何您想要的。给它一些时间,您的网站将启动并运行!
从 PHP 8.0 降级到 7.2 的相同问题需要运行旧项目。
我如何解决我的问题:
$brew link php@7.2
,但我认为您可以使用任何 PHP 管理器应用程序移动到旧版本的 PHP 没有任何问题)这解决了我的问题,让我可以在没有进一步问题的情况下在不同版本之间切换,唯一的要求是使用:
composer global update
切换 PHP 版本以刷新全局依赖项后。
我不知道是什么导致了这个问题。也许在 PHP 版本切换期间发生了一些有趣的事情,但我们无法找到问题的原因。
PS我们的问题与“laravel/install”包有关,卸载它之前需要卸载“laravel/valet”,但过程没有改变,只是我们必须在PHP 7.2上重新安装这两个包。
请在您的 composer 命令中使用--ignore-platform-reqs 。
--ignore-platform-reqs将忽略平台依赖项。
composer install --ignore-platform-reqs
或者
composer update --ignore-platform-reqs
正如原始问题下的评论中所述,与其只是试图隐藏错误或绕过它,不如完全解决它以确保应用程序按照应有的方式执行。为此,我们必须更新正在使用的 PHP 版本。我在云虚拟机中遇到了这个错误,所以我可以访问终端,从那里我将所需版本的 PHP 安装到系统。
之后,我将 PHP 的活动版本从旧版本切换到新版本。
为此,我首先跑了,
sudo a2dismod php7.2
然后你会看到,
Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2
如前所述,运行,
sudo systemctl restart apache2
然后运行,
sudo a2enmod php8.0
这将启用所需的版本。然后运行,
sudo systemctl restart apache2
更详细的解释可以在这里找到。
所以,在与这个问题作斗争之后,
PHP 致命错误:Composer 在您的平台中检测到问题:您的 Composer 依赖项需要 PHP 版本 ">= 7.2.5"。您正在运行 7.1.28
几个小时后,发现上述建议都不起作用,我终于发现——至少在 FreeBSD 系统上—— Apache 所需的 PHP 模块没有被主 PHP 包安装(例如,“php74-7.4.19 "),而是由具有自己版本控制的不同的、特定于模块的包(例如,“mod_php71-7.1.28”)。
执行php -v查询 php 包;访问phpinfo()会查阅 mod 包。
线索是执行pkg info | grep php并检查结果以查看您安装了哪些软件包。显然,您必须针对系统使用的包装系统调整上述内容。
那些在XAMPP上遇到类似问题(与 Laravel 无关)后来到这里的人,我通过以下方式解决了它:
向我显示的错误:
Composer 在您的平台中检测到问题:您的 Composer 依赖项需要安装以下 PHP 扩展:mysqli、openssl
我修复我的最好方法是
转到您的 xampp 文件夹,查找 php.ini
将此 ;extension=mysqli 更改为extension=mysqli 并将 ;extension=openssl 更改为extension=openssl
重新启动Apache和MySQL
完成(工作)
我会加强不要公然忽视警告的指示。你会忽略电栅栏上的警告,告诉你触摸它会有死亡风险吗?
在我的情况下,我试图让一个旧的应用程序运行,使用 PHP 7.2,所以不能只更改 PHP 版本。
我的解决方案相当简单。检查composer.lock文件以查找哪个包需要警告中报告的 PHP 版本。在 packagist.org 上找到该软件包,查找与您的 PHP 版本匹配的软件包版本,然后安装它。
例如,
composer require <package>:<version>
您可能需要多次执行此操作。在我的情况下,我必须在我的应用程序满意之前安装需要 PHP 7.4 和需要 PHP 7.3 的包。
我在我的 VPS 上的 Aapanel 上遇到了这个问题。我已经拥有最新版本的 PHP(PHP 8.1),但每次尝试运行 composer 命令时,错误并没有消失。我运行了许多版本的 PHP,我尝试了所有建议的选项,但没有一个有效。所以我认为也许作曲家看到了错误的 PHP 版本并决定卸载较低版本(7.2,7.4)并解决了错误!
我设法通过下载更新版本的 PHP 解决了这个问题,该版本同时与从这里安装的 Apache 版本兼容!。
在Laragon界面看到Apache版本是“httpd 2.4.35 win64 VC15”,于是找了一个有这个“vc15”的PHP版本。
我下载了“php-7.4.19-Win32-vc15-x64”并在我的 Laragon 中选择了它。在此链接中,您可以在这里找到如何替换 Laragon 中的 PHP 版本!
在使用了所有以前尝试过的解决方案后,我发现效果最好的一个是以下。
sudo apt-get update
sudo apt install php-xml
sudo apt-get install php-mbstring
sudo reboot
首先,阅读警告!它说不要以 root 身份运行Composer !其次,您可能在本地使用XAMPP,默认情况下它具有所需的 PHP 库。
但是在您的服务器中,您缺少ext-dom。php-xml有你需要的所有相关包。因此,您可以通过运行来安装它:
sudo apt-get update
sudo apt install php-xml
很可能您也缺少mbstring。如果您收到错误,请同时安装此软件包:
sudo apt-get install php-mbstring
然后运行:
composer update
然后运行:重新加载您的Apache 服务器:
sudo systemctl reload apache2