如何在Ubuntu上安装PHP的`mbstring`扩展?

什么是 PHP 的 mbstring 扩展,以及在 Ubuntu 14.04 上安装它的最佳方法是什么?
8个回答

编辑:Dylan Pierce已确认,您可以使用与PHP 5相同的方式安装一些PHP 7.2扩展。特别是对于mbstring,您可以执行以下操作:

sudo apt-get install php7.2-mbstring

补充sparkmood的回答,如果你已经导入了ondrej的PPA,这个现在适用于PHP 7.2。
sudo apt-get install libapache2-mod-php7.2

不要忘记,无论是通过Ubuntu官方仓库还是需要外部PPA,都可以获得PHP 7。

安装完这个包之后,mbstring扩展在哪里?我在/etc/php/7.0/mods-available中找不到它,就像其他的扩展一样。我尝试取消在php.ini中的注释,但它不知道扩展的路径。 - Dylan Pierce
我也找不到它。我需要它来安装一个可以检查 PHP 扩展的软件,其中 mbstring 是其中之一。它被识别为已安装,所以即使我不确定它在哪里,我猜它肯定在那里的某个地方!很抱歉我不能提供更多帮助。 - goncalotomas
19我已经弄清楚了:sudo apt-get install php7.0-mbstring对于其他可能需要的php扩展也适用,比如: sudo apt-get install php7.0-zip sudo apt-get install php7.0-dom我真的很喜欢安装/激活这些模块的简单性。只是希望不必在整个互联网上四处寻找它们。 - Dylan Pierce
我最初尝试像你一样安装它,但其中一些扩展不可用,而且我不久前也尝试过。不过这很酷,因为越来越多的工作都是在PHP 7.0版本上完成的! - goncalotomas
5为什么没有人对这个版本名称的事情进行抗议呢?-_- - erikbstack
2我相信,一旦版本7涵盖了所有旧的5个库,您就不必编写7来获取最新和最好的版本。不这样做可能会破坏构建脚本或导致意外行为。 - goncalotomas
1在Ubuntu 16.04上安装LAMP后,需要重新启动Apache2服务。请执行命令sudo service apache2 restart来完成重启。 - Yosvel Quintero
5你可以直接使用php-mbstring软件包,无需指定版本号。 - pd12
你需要在php.ini文件中启用这个扩展吗?我正在按照某个教程的指示,在/etc/php/8.1/apache2/php.ini文件中进行操作,但另外两个教程没有提到这一步骤。 - Kevin Wheeler

sudo apt-get install php-mbstring

我已经在php7.0-fpm(7.0.15-0ubuntu0.16.04.4)中安装了mbstring。

3这对于Debian Stretch来说是正确的。不需要添加版本号。 在内部加载了一个带有版本号的子包。 - Jpsy
我添加了版本,因为我在上一个版本上进行了测试。谢谢你的评论。 - Nanhe Kumar
这种方式要比在命令行界面上指定版本要好得多,因为它似乎能够适应安装的版本。 - Félix Gagnon-Grenier
使用Debian 9(stretch)上的sury软件包仓库的经验,我不得不指定7.2版本,因为php-mbstring只支持到php 7.2。如果不使用php前缀版本,它会一直提示不存在,因为截至今天,最新的php版本是php7.4。请确保只安装php7.2,而不要安装更高版本,否则可能无法按预期工作。 - jpalala
1无法找到 php-mbstring 包(在 buster 上) - geoidesic
@geoidesic 首先更新 sudo apt-get update,然后尝试一下。 - Nanhe Kumar

mbstring是在libapache2-mod-php5软件包中内置的,因此您可以使用以下命令进行安装:
sudo apt-get install libapache2-mod-php5

如包裹详情中所述:
 dba dom ereg exif fileinfo filter ftp gettext hash iconv json libxml
 mbstring mhash openssl pcre Phar posix Reflection session shmop SimpleXML
 soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml
 xmlreader xmlwriter zip zlib.

我已经在我的服务器上安装了apache2,现在如果我在服务器上安装"libapache2-mod-php5"会有任何问题吗? - Rohit Bind
1当我运行你的代码时,它导致我的LAMP崩溃了 - 我不得不重新安装 :( - SIDU
这是一个糟糕的建议。虽然一些系统已经安装了Apache2,但许多其他系统可能没有。执行这个命令可能会破坏原本工作正常的系统。(是的,我知道我迟了几年,但也许对某人有帮助,让他们不要尝试这个修复方法。) - Chris Burgess

如果你正在使用PHP 5.6,请安装PHP 5.6的mbstring包:
sudo apt-get install php5.6-mbstring

然后在您的php.ini文件的底部添加以下行:
extension=php5.6-mbstring.so

重启Apache:
sudo service apache2 restart

要找到您的php.ini文件,请创建一个文件并插入以下行:
<?php phpinfo(); ?>

然后用浏览器打开,查看您的php.ini文件的位置。

在我的情况下,它已经安装好了,但我只需要执行phpenmod mbstring,然后再执行apachectl graceful

对于Ubuntu 14.04,扩展mbstring应该是内置的。
对于Ubuntu 16.04:
sudo apt-get install php7.0-mbstring

另请参阅多字节字符串介绍

需要为apt添加另一个源以在18.04中进行安装。
在AMD64机器上下载php7.2-mbstring_7.2.7-0ubuntu0.18.04.2_amd64.deb的页面。
如果您正在运行Ubuntu,强烈建议使用像aptitude或synaptic这样的软件包管理器来下载和安装软件包,而不是通过此网站手动操作。
您应该能够通过在/etc/apt/sources.list文件中添加以下行来使用任何列出的镜像:
deb http://security.ubuntu.com/ubuntu bionic-security main universe

+1 我也不得不在我的Google Cloud Ubuntu 18.04 LTS安装中使用这个解决方案,然后才能使用apt-get安装7.2 mbstring扩展,之后我才能使用被接受的答案。 - Adam Prall

自从PHP7.2之后,mcrypt本身(php-mcrypt使用的包)不再受支持。因此,如果要专门为php7.2安装它,您需要确保在安装时将所有php7.2扩展前缀为php7.2-
虽然最初其他人建议的命令只需安装即可运行,但是当与需要mcrypt(如Laravel4.2)的框架版本一起使用时,您需要使用pecl来安装mcrypt。请按照此处的修复方法进行操作。