Для корректной работы Bitrix версии 20.100.0 и ниже нужно указывать дополнительные параметры mbstring.func_overload и mbstring.internal_encoding. Если этого не сделать, в процессе работы система будет выдавать ошибку. Добавить эти параметры можно в php.ini и в .htaccess. Лучше всего делать это в файле php, так как у настройки .htaccess есть ограничения, о которых мы расскажем ниже.
Для настройки параметров:
-
1.
Перейдите в файл php.ini. Найти файл вам поможет статья.
-
2.
Добавьте записи:
mbstring.func_overload = 2 mbstring.internal_encoding = UTF-8
-
3.
Сохраните изменения.
Также подобную настройку можно сделать в файле .htaccess.
Обратите внимание! PHP версии старше 5.2 не читают mbstring.func_overload из файла .htaccess. Если у вас версия PHP выше 5.2, для настройки используйте только php.ini.
Для настройки параметров Битрикс:
-
1.
Откройте .htaccess.
-
2.
Добавьте записи:
php_value mbstring.func_overload 2 php_value mbstring.internal_encoding UTF-8
-
3.
Сохраните изменения.
Для новых версий Bitrix эти параметры не нужны, поэтому при обновлении их нужно удалить. У параметра mbstring.func_overload можно указать значение 0. Подробнее о том, как это сделать, читайте в статье Как удалить настройку PHP mbstring.func_overload.
Photo from Unsplash
When running phpMyAdmin, you may see an error that says the mbstring extension is missing as follows:
This error prevents you from opening phpMyAdmin and accessing your database.
To solve this error, you need to have mbstring
installed and activated in your PHP configuration.
Depending on your Operating System, there are different ways to install and enable the mbstring
extension:
Install mbstring for Linux
For Linux systems, you can install mbstring
using apt-get
or yum
depending on your Linux distribution.
Here’s the command to install mbstring
for Debian / Ubuntu or Red Hat Linux:
sudo apt-get install php-mbstring
# for RHL:
sudo yum install php-mbstring
The package manager should install the right mbstring
version based on your PHP version.
If not, you need to specify the version as follows:
# install mbstring v8.1
sudo apt-get install php8.1-mbstring
# install mbstring v7.4
sudo apt-get install php7.4-mbstring
Once the extenson is installed, you need to restart your PHP server.
For Apache, run the following command:
Now you can check if the mbstring
extension is enabled by running phpinfo() function to see the mbstring
enabled:
You can also run the php -m | grep mbstring
command to see the extension from the command line:
$ php -m | grep mbstring
mbstring
Now that the mbstring
extension is available, you should be able to access phpMyAdmin.
Install mbstring for Windows
For Windows system, you need to enable the mbstring
extension from the php.ini
file.
Look for the line extension=php_mbstring.dll
in your php.ini
file as follows:
;extension=php_mssql.dll
;extension=php_mbstring.dll
;extension=php_exif.dll
extension=php_mysql.dll
You need to remove the semicolon before the extension
config to enable php_mbstring.dll
for Windows.
;extension=php_mssql.dll
extension=php_mbstring.dll
;extension=php_exif.dll
extension=php_mysql.dll
Once you enable the extension, restart your PHP server. The mbstring extension should now be available on your Windows computer.
If that doesn’t work, search your php.ini
file for the extension_dir
config.
You should see where PHP look for the extensions as shown below:
extension_dir = "D:XAMPPphpext"
You need to see if the php_mbstring.dll
exists inside the D:XAMPPphpext
path. Copy the extension directory value and paste it to your explorer windows.
If the .dll
file is not present, you need to download the PHP Windows build from windows.php.net as shown below:
Extract the downloaded zip file, then look for the php_mbstring.dll
file from the ext/
folder. Copy the file to your extension_dir
path.
I don’t recommend downloading dll files from the Internet because you may get a virus on your computer.
Restart your PHP server, and now the mbstring
extension should be available.
And that’s how you enable mbstring
on Windows computers.
Install mbstring for macOS
For macOS, the PHP formula from Homebrew already enabled the mbstring
extension during the installation process.
You should have mbstring
enabled by default when you install PHP using Homebrew.
But if you install PHP using MacPorts, then you may need to install mbstring
separately.
The following command should work when you’re using MacPorts:
# 👇 install PHP 7.4 mbstring
sudo port install php74-mbstring
# 👇 install PHP 8.0 mbstring
sudo port install php80-mbstring
You can see the available mbstring
version from macports.org.
Now you’ve learned how to enable the PHP mbstring
extension on macOS. Good work! 👍
Looking for ways to manage special text on your websites?
One of the best ways for this is to enable mbstring in php.ini.
Usually, mbstring extension in web servers helps to manage the non-ASCII codes easily.
At Bobcares, we often get requests to enable mbstring extension, as a part of our Server Management Services.
Today, let’s see how our Support Engineers enable the mbstring extension for our customers.
How does mbstring error look?
Let’s begin by checking more details on mbstring and how the error appears on any website.
By default, mbstring makes multibyte encoding possible in PHP. This PHP extension helps in managing non-ASCII string. A typical example would be a website that handles musical quotes. It helps to manipulate strings encoded in a multi-byte encoding.
In many situations, customers get an error message related to missing PHP extensions. This particularly happens after enabling PHP function for wrong version of PHP. Or when the website uses an alternate PHP version.
For instance, while trying to enter phpMyAdmin and the mbstring module is missing on the server, it results in an error:
How we enable mbstring in php.ini?
Usually, adding the extension in the php.ini file enables mbstring. But, this procedure varies with different platforms.
With the expertise in Server Management, our Dedicated Engineers enable the mbsting module for our customers.
Let’s see the multiple ways that we use to enable mbstring on various platforms.
1. mbstring in Linux
Linux servers provide an easy way to enable PHP extensions.
Firstly, our Support Team check for the mbstring module using the command,
php -m | grep mbstring
If there is no such module, then we install it using the command,
yum install php7x-mbstring
Afterward, we make sure the presence of necessary extension in the PHP include file. A sample entry looks like:
[root@xxx ~]# cat /etc/php.d/mbstring.ini
; Enable mbstring extension module
extension=mbstring.so
Later we ensure to restart the webserver to save the changes. This enables PHP mbstring on the server. Finally, we verify the same by adding a web page that dispaly the results of the phpinfo() function.
2. In Windows
In the Windows server, the addition of the .dll files holds multiple codes and procedures. So, the Support Team first makes sure that the .dll file is present in the server.
Usually, php.ini is the file that contains all the PHP parameters. Thus, we access the php.ini file.
We check for the entry regarding the mbstring extension in the configuration file. We uncomment the line,
extension = php_mbstring.dll
Later, we save the changes and restart the webserver.
3. Enabling mbstring in cPanel
In servers having a cPanel, it is easier to enable mbstring. So, for cPanel customers we enable mbstring as follows:
- Firstly, we login to the cPanel account.
- Next, we go to the Software section.
- Here, we click the drop-down to Select the PHP version.
- Now, select the PHP extension mbstring.
- Finally, click the save button.
[Having difficulty in enabling PHP mbstring? – We will do it for you.]
Conclusion
In short, to manage non-ASCII strings, we enable mbstring in php.ini. Today, we saw how to enable mbstring on different server platforms. We also saw how our Support Engineers fix the mbstring error in phpMyAdmin.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
GET STARTED
var google_conversion_label = «owonCMyG5nEQ0aD71QM»;
-
install mbstring and restart your apache:
sudo apt-get install php-mbstring sudo service apache restart
then remove ; from your php.ini file:
;extension=php_mbstring.dll
to
extension=php_mbstring.dll
If it still doesn’t work..remove your php setup, without removing the databases from your phpmyadmin. Reinstall it.
NB: * if you want to remove all, all mention the one you need to.
sudo apt-get remove php*
Then install the php and modules of the php version that you need. here, php 7.1:
sudo apt-get install php7.1 php7.1-cli php7.1-common libapache2-mod-php7.1 php7.1-mysql php7.1-fpm php7.1-curl php7.1-gd php7.1-bz2 php7.1-mcrypt php7.1-json php7.1-tidy php7.1-mbstring php-redis php-memcached
restart your apache and check the php version.
sudo service apache restart
php -v
when all this is done, execute the following command to enable mbstring forcefully and restart your apache.
sudo phpenmod mbstring
sudo service apache restart
Hope it helps.
It did to me
Пользователь 1418 Постоянный посетитель Сообщений: 181 |
Можно ли исправить это: Где и как можно исправить ситуацию…. Извините за неграмотность… |
Пользователь 14571 Эксперт Сообщений: 787 |
А у меня всегда давало. Даже сложно предположить, что не так.. |
Пользователь 30895 Заглянувший Сообщений: 1 |
Перезагрузить IIS скорее всего надо было |
Пользователь 76914 Заглянувший Сообщений: 2 |
Если база была загружена в однобайтной кодировке, в файле .htaccess нужно раскомментировать php_value mbstring.func_overload 0 В русской раскладке всё заработает корректно. Перезагружать сервер не обязательно. |
Пользователь 100109 Заглянувший Сообщений: 2 |
Где найти на в административной части строку mbstring.func_overload ??? |
Пользователь 29330 Постоянный посетитель Сообщений: 129 |
Искать нужно не в административной части Bitrix, и вообще не в Битрикс. А в конфигурационном файле php.ini. Либо в файле .htaccess в корневой директории вашего сайта. |
Пользователь 140260 Заглянувший Сообщений: 8 |
если виртуальная машина то тут — /etc/php.d/bitrixenv.ini |
Пользователь 174147 Заглянувший Сообщений: 4 |
PHP версии старше 5.2 не читают mbstring.func_overload из файла .htaccess. Добавьте строчку в файл /etc/php.d/mbstring.ini: extension=mbstring.so Ошибка Bitrix mbstring.internal_encoding и mbstring.func_overload |
Пользователь 19040 Постоянный посетитель Сообщений: 264 |
На самом деле читают, например Таймвеб разрешает переопределение этого параметра в htaccess. Но по умолчанию, да, не разрешается. Т.е. все зависит от настроек хостинга. |
Пользователь 217759 Заглянувший Сообщений: 1 |
#10 0 23.09.2013 20:13:59 Тема давнишняя, но спрошу, а какие последствия будут если забить на тот 0, который показывается при установке? |
Пользователь 219522 Заглянувший Сообщений: 15 |
#11 0 13.11.2013 15:43:14 я забил. у меня поставилось. в инет магазине почта не отправляется, не пойму почему. Возможно изза этого. ps. нет, не изза этого. конфиг этот подправил, все равно не отправляется(причем только при при оформлении заказа в инет магазине) при включенном режиме правки, пытаемся редактировать параметры компонента, высвечивается окно которое должно быть с параметрами, и в нем сообщение: |
Пользователь 174147 Заглянувший Сообщений: 4 |
#12 0 02.12.2013 23:57:41 PHP версии старше 5.2 не читают mbstring.func_overload из файла .htaccess. Добавьте строчку в файл /etc/php.d/mbstring.ini: mbstring.func_overload переменная окружения 1С Битрикс |
Пользователь 247123 Заглянувший Сообщений: 1 |
#13 0 08.04.2014 16:04:29 Нет этой строки /etc/php.d/mbstring.ini: |
Пользователь 371327 Заглянувший Сообщений: 1 |
#14 0 17.08.2015 11:17:08
|
Пользователь 383005 Заглянувший Сообщений: 2 |
#15 1 04.11.2015 17:58:27 Можно mbstring.func_overload изменить «Местечково» например только для заданной папки где у вас работает скрипт требующий ее отключения. Делается на сервере под апачем тут etc/apache2/conf.d/httpd.conf, для виртуальной машины битрикс тут etc/httpd/conf/httpd.conf. Добавляем строки например для папки /personal/promo/ |
Пользователь 592669 Заглянувший Сообщений: 1 |
#16 1 21.10.2016 10:47:15
Как быть в ситуации когда надо его отключить для собственных печатных форм магазина? но в этой папке лежит много другого и результат может быть непредсказуемым |
||
Пользователь 23706 Гуру Сообщений: 2616 |
#17 0 21.10.2016 12:46:10 Александр Соболев,
Попробуйте сделать тоже самое но для файла
|
||||
Пользователь 266964 Посетитель Сообщений: 63 |
#18 2 29.11.2017 22:44:43 На дворе конец 17-го, разрабы всё так-же оставляют этот скелет в шкафу, обосновавшийся там ещё времен безнадежно устаревшей кодировки, и даже мизинцем повести не желают. Это аргумент в «пользу»… |
Пользователь 266964 Посетитель Сообщений: 63 |
#19 1 29.11.2017 22:55:40 А ещё дико бесит, что уведомления о моих новых сообщениях в этом форуме мне же на почту приходят, и так было всегда. Этот фикс так вообще пара строчек кода, но разрабам п… |
Пользователь 291336 Эксперт Сообщений: 1497 |
#20 0 30.11.2017 20:39:17
да прям вообще «трагедия века». Прикрепленные файлы Снимок экрана_2017-11-30_21-36-19.png (35.66 КБ) Как создать лендинг из любого готового решения Bitrix |
||
Пользователь 266964 Посетитель Сообщений: 63 |
#21 3 30.11.2017 21:08:11
«Уважаемый», не говорите глупостей, чтобы не вам не сказали куда надо пойти… Во первых я хорошо себе представляю что и где и как нужно прописывать, в php.ini или в .htaccess, но разница есть в некоторых случаях, и на некоторых площадках… Во вторых у меня на DEV-сервере крутится куча проектов, который я настраивал под свои нужды в то время, когда ещё ни кто не знал про Битрикс, и уже в то время всё прекрасно работало на UTF-8 безо всяких «сопель». И только Битрикс требует к себе подобного «внимания», сказать, что это настораживает, значит не сказать ни чего. И теперь внимание: Данный функционал объявлен УСТАРЕВШИМ начиная с PHP 7.2.0 и его использование крайне не рекомендовано. Ну т.е. такое… платная, недешевая система вот с такой вот детской болезнью… Картинка, поржать: Прикрепленные файлы 2017-11-30_23-06-55.png (6.94 КБ) |
||
Пользователь 242913 Заглянувший Сообщений: 33 |
#22 4 17.11.2020 17:47:11 В связи с обновлением многие будут искать, оставлю инструкцию что делать: открываем файл: добавляем (или изменяем на 0 если есть директива): перезапускам сервисы |
Пользователь 901959 Постоянный посетитель Сообщений: 177 |
#23 0 17.11.2020 21:35:48 bitrix0111, в /etc/php.d/bitrixenv.ini тоже желательно проверить чтобы не было директивы |
Алексей Шафранский
Администратор Сообщений: 1019 |
#24 1 18.11.2020 19:16:08 bitrix0111, Дмитрий Б, или просто накатить vmbitrix 7.4.4 https://dev.1c-bitrix.ru/community/forums/messages/forum32/topic122887/message666712/#message666712 |