Composer 安装 - 需要 ext-mbstring

Composer Install - requires ext-mbstring

我正在尝试执行 composer install ...,但出现错误 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system. 我正在使用 Apache (Cpanel) 和 PHP 5.6.

以下是我尝试修复错误的方法。

1: yum search mbstring

============================================= N/S matched: mbstring =============================================
ea-php54-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
ea-php55-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
ea-php56-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
ea-php70-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
ea-php71-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
ea-php72-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
rh-php56-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
rh-php70-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
rh-php71-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling

2: yum install ea-php56-php-mbstring.x86_64

Loaded plugins: fastestmirror, universal-hooks
Loading mirror speeds from cached hostfile
 * EA4: 110.4.45.120
 * cpanel-addons-production-feed: 110.4.45.120
 * base: ftp.cuhk.edu.hk
 * centosplus: ftp.cuhk.edu.hk
 * epel: ftp.cuhk.edu.hk
 * extras: ftp.cuhk.edu.hk
 * ius: hkg.mirror.rackspace.com
 * updates: ftp.cuhk.edu.hk
Package ea-php56-php-mbstring-5.6.35-1.1.5.cpanel.x86_64 already installed and latest version
Nothing to do

似乎已经安装了 mbstring,但为什么我尝试安装 composer 时出现错误?

另一种方式(在 cPanel 中更新 PHP 版本)

1:WHM - 已设置为 7.1

2: cPanel - 已设置为 7.1

但服务器中的版本仍然是 5.6

有什么解决 require ext-mbstring 错误的建议吗?

使用此命令安装 mbstrig

 yum install php-mbstring

安装后重启apache

 service httpd restart

安装rh可以解决这个问题yum install rh-php56-php-mbstring.x86_64

请仔细检查您的服务器中有什么。我的是 rh-php56-php-mbstring.x86_64 不是 php-mbstring

尝试使用 aptitude 安装 mbstring php 库。

sudo apt-get install php-mbstring php7.1-mbstring

如果线下没有更深的依赖关系,您可以改用 polyfill:编辑 composer.json 并将问题行替换为 "symfony/polyfill-mbstring": "~1.0"

https://packagist.org/packages/symfony/polyfill-mbstring

我最近在尝试 运行 为我的 PHP WordPress 网站构建时遇到了类似的问题。我最终在 require 部分使用下面的代码片段更新了 composer.json

# composer.json
# ...

"require": {
  "ext-mbstring": "*", # <-- I've added this
  "ext-gd": "*",
  "php": "7.*",
  "wordpress/wordpress": "*",

  # ...

}

希望这对以后的其他人有用!