Laravel 更新编写器时出错
我在Laravel-5.1中有一个项目,我已经将我的平台从win10改为Ubuntu 显示错误: 使用包信息加载composer存储库 更新依赖项(包括需要开发人员) 无法将您的需求解析为可安装的软件包集 Composer/jsonLaravel 更新编写器时出错,laravel,laravel-5.1,laravel-5.2,Laravel,Laravel 5.1,Laravel 5.2,我在Laravel-5.1中有一个项目,我已经将我的平台从win10改为Ubuntu 显示错误: 使用包信息加载composer存储库 更新依赖项(包括需要开发人员) 无法将您的需求解析为可安装的软件包集 Composer/json { "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": [
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"infyomlabs/laravel-generator": "dev-master",
"laravelcollective/html": "5.2.*",
"infyomlabs/core-templates": "dev-master",
"infyomlabs/swagger-generator": "dev-master",
"jlapp/swaggervel": "dev-master",
"doctrine/dbal": "~2.3",
"infyomlabs/generator-builder": "dev-master",
"yajra/laravel-datatables-oracle": "~6.0",
"barryvdh/laravel-ide-helper": "^2.1",
"infyomlabs/adminlte-templates": "dev-master"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"symfony/css-selector": "2.8.*|3.0.*",
"symfony/dom-crawler": "2.8.*|3.0.*"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
]
},
"config": {
"preferred-install": "dist"
}
}您的错误信息非常明确地说明了问题所在: laravel/framework v5.2.9需要ext mbstring*->系统中缺少请求的PHP扩展mbstring 您的服务器上是否安装了
mbstring
,并且是否已启用
您可以作为libapache2-mod-php5包的一部分安装mbstring
:
sudo apt get安装libapache2-mod-php5
或单独使用:
sudo apt get install php mbstring
安装它也将启用它,但是您也可以通过编辑php.ini
文件并删除来启用它代码>如果已经安装,则注释掉它
如果这是在您的本地计算机上,请按照适当的步骤将其安装到您的环境中。对于php7,您可以执行以下操作:
sudo apt-get install php-gd php-xml php7.0-mbstring
Ubuntu已经有很多好的答案了。我在Linux上,也有同样的问题,但是上面的命令都不适合我
对于Linux和php70,我使用了以下命令,这非常有效:
sudo yum install php70 mbstring-y
根据给定的答案安装软件包后,我仍然会遇到一些错误,然后安装以下软件包,它工作正常:
- php xml
对于特定版本:
- php7.0-xml
用于php 7.0的命令
sudo apt-get install php7.0-xml
在某些情况下,您还需要一个php7.0-common包。在php7.2 Ubuntu 18.04 LTS和Ubuntu 19.04中安装与上述命令相同的程序。
sudo apt-get install php-gd php-xml php7.2-mbstring
如果您使用PHP7.3作为Laravel5.7,那么它的工作方式就像一个魔咒。这是我的工作
sudo apt-get install php-gd php-xml php7.3-mbstring
这对我来说适用于PHP7.2
sudo apt get install php7.2-xml
此错误的快速解决方案
运行此命令
composer安装--忽略平台需求
<强>此命令不考虑操作系统或平台>/P>< P>问题:
Problem 1
- laravel/framework v5.8.38 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
- laravel/framework v5.8.38 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
- laravel/framework v5.8.38 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
- Installation request for laravel/framework (locked at v5.8.38, required as 5.8.*) -> satisfiable by laravel/framework[v5.8.38].
To enable extensions, verify that they are enabled in your .ini files:
- C:\xampp\php\php.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
解决方案:
如果使用xampp,只需删除“;”从
;extension=mbstring
在php.ini中,保存它,完成 您好@kkpatel,请举一个简单的工作示例,说明您为解决问题所做的工作。@Andy K需要在php.ini文件中安装mbstring、yum和xml for php7.0以及beet change。这是James给您的答案。不是你为发现问题所做的一切如果我错了请纠正我:并删除代码>注释你的意思是取消注释,因为分号代表注释,对吗?@SaiyanPrince我已经编辑了我的答案-但我的意思是,分号现在正在注释它out@James感谢您提供的澄清,但您的编辑没有做任何更改。从我的角度看,我仍然不清楚。。在这种情况下,注释出来的;
是正确的英语。为什么作曲者不自动删除库中的ext-mbstring?我认为它是一个软件包管理器?对于php7.2,我使用sudo apt get安装PHPgd PHPxmlPHP7.2-mbstringFinally!非常感谢,好心的先生。这是它对我有效的唯一方式,我使用的是:PHP版本7.2.24-1+ubuntu16.04.1+deb.sury.org+Laravel 5.8.35似乎PHP版本在这里很重要。。。我尝试了几次使用php xml而不是php7.*-xml。它对我很有用。Composer正在检查平台需求,但实际上已经满足了需求。运行此命令后,一切正常
;extension=mbstring