156

What is the PHP mbstring extension, and what is the best way to install it on Ubuntu 14.04?

8 Answers 8

244

EDIT: Dylan Pierce has confirmed that you can already install some PHP 7.2 extensions in the same way you would for PHP 5. For mbstring in particular, you can execute:

sudo apt-get install php7.2-mbstring

To complement sparkmood's answer, this now works for PHP 7.2 if you already imported ondrej's PPA for it.

sudo apt-get install libapache2-mod-php7.2

Don't forget, either PHP 7 is available through ubuntu's official repositories or you will need an external PPA.

9
  • 19
    I've figured it out: sudo apt-get install php7.0-mbstring Also works for other php extensions you might need like: sudo apt-get install php7.0-zip sudo apt-get install php7.0-dom I really like how brainless it is to install/activate these modules. I just wish I didn't have to go on an internet wide goose chase for them. Feb 25, 2016 at 14:26
  • 5
    Why is nobody fighting this version-in-name stuff? -_-
    – erikbstack
    Aug 16, 2016 at 16:28
  • 2
    I believe that as soon as version 7 covers all of the old 5 libraries, you won't have to write 7 to get the latest and greatest. Not doing so would probably break build scripts or cause unexpected behavior. Aug 17, 2016 at 15:13
  • 1
    After installed in Ubuntu 16.04 with LAMP is needed to restart Apache2 service sudo service apache2 restart Aug 23, 2017 at 15:05
  • 6
    You can just use package php-mbstring without the version number
    – pd12
    Jan 11, 2018 at 3:21
50
sudo apt-get install php-mbstring

I have installed mbstring in php7.0-fpm (7.0.15-0ubuntu0.16.04.4)

6
  • 3
    This is correct for Debian Stretch. No need to add the version number. Internally a sub-package with version number is loaded.
    – Jpsy
    Sep 21, 2017 at 9:06
  • I have added version because i have tested on above version. thanks for you comment Sep 21, 2017 at 10:20
  • This is vastly superior to specifying the version on the cli as it seems to adapt to the installed version. Feb 9, 2018 at 19:01
  • My experience using the sury package repo on debian 9 (stretch), I had to specify the 7.2 version, because php-mbstring is only supported until php 7.2. By not using the php prefix version, it kept saying it doesn't exist since by php7.4 (the latest release of php as of today). Make sure to install only php7.2 and not above or it might not work as expected.
    – jpalala
    Jun 5, 2020 at 13:57
  • 1
    E: Unable to locate package php-mbstring (on buster)
    – geoidesic
    Mar 13, 2021 at 18:03
27

mbstring is built in libapache2-mod-php5 package, so you can use this command for installing :

sudo apt-get install libapache2-mod-php5

As described in package details :

 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.
3
  • I have already installed apache2 on my server now if I install "libapache2-mod-php5" on my server will it any problem.
    – Rohit Bind
    Jul 4, 2014 at 11:03
  • 1
    When I run your line, it break my LAMP - l have to re-install :(
    – SIDU
    Aug 25, 2016 at 4:19
  • This is poor advice. While some systems have Apache2 installed, many others may not. Executing this command risks breaking otherwise working systems. (Yes, I know I'm years late, but maybe it'll help someone not try this fix.) Jan 21, 2020 at 4:14
9

If you're using php 5.6

Install php 5.6 mbstring package:

sudo apt-get install php5.6-mbstring

Then add the following line to the bottom of your php.ini file:

extension=php5.6-mbstring.so

Restart apache:

sudo service apache2 restart

To find your php.ini file, create a file and insert the following line:

<?php phpinfo(); ?>

Then open with a browser to see where your php.ini file is located.

8

In my case it was already installed, but I just needed to do phpenmod mbstring, followed by apachectl graceful.

2

For Ubuntu 14.04 extension mbstring should be built in.

For Ubuntu 16.04:

sudo apt-get install php7.0-mbstring

See also Introduction to Multibyte String

1

It requires adding another source for apt for install in 18.04..

Download Page for php7.2-mbstring_7.2.7-0ubuntu0.18.04.2_amd64.deb on AMD64 machines

If you are running Ubuntu, it is strongly suggested to use a package manager like aptitude or synaptic to download and install packages, instead of doing so manually via this website.

You should be able to use any of the listed mirrors by adding a line to your /etc/apt/sources.list like this:

deb http://security.ubuntu.com/ubuntu bionic-security main universe

1
  • +1 I had to use this solution as well for my Google Cloud Ubuntu 18.04 LTS install before I could use apt-get for the 7.2 mbstring extension, then I was able to use the accepted answer.
    – Adam Prall
    Feb 4, 2020 at 0:21
1

Since the mcrypt itself (the package that php-mcrypt uses to do its crypt stuff) is no longer supported after PHP7.2, As of today, to install it specifically for php7.2, you'll need to make sure when installing to prefix all php7.2 extensions with php7.2-.

While initially the commands suggested by others to just install it work, when using it with an framework version that requires mcrypt (such as Laravel4.2), it will require you to install mcrypt using pecl. Follow the fix here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .