Невозможно вызвать встроенный метод mb_internal_encoding?

Я пытаюсь установить Indefero на CentOS 5.3 VMware "box" и столкнулся с проблемой. Довольно рано при установке я получаю сообщение об ошибке, которое мне удалось сузить до следующего:

[root@code /var/www/html]# cat x.php
 <?php
     mb_internal_encoding("UTF-8");
 ?>
[root@code /var/www/html]# php x.php
PHP Fatal error:  Call to undefined function mb_internal_encoding() in 
/var/www/html/x.php on line 2

Я получаю ту же ошибку при вызове этого скрипта через http через Apache. Теперь, согласно руководству по PHP, функция mb_internal_encoding должна быть встроенной в PHP 5.

У меня CentOS 5.3 i386 (код Linux 2.6.18-53.1.21.el5 #1 SMP Tue 20 мая 09:34:18 EDT 2008 i686 i686 i386 GNU/Linux), и я установил PHP 5.2.9.

[root@code /var/www/html]# php -v
PHP 5.2.9 (cli) (built: Jul  8 2009 06:03:36)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

Я дважды проверил: selinux был отключен (пока).

Как это исправить?

7 ответов

Решение

mbstring - расширение "не по умолчанию", которое не включено по умолчанию; см. эту страницу руководства:

Монтаж

mbstring не является расширением по умолчанию. Это означает, что он не включен по умолчанию. Вы должны явно включить модуль с параметром конфигурации. Смотрите раздел Установка для деталей

Таким образом, вам может потребоваться включить это расширение, изменив файл php.ini (и перезапустив Apache, чтобы учесть ваши изменения)


Я не использую CentOS, но вам, возможно, придется сначала установить расширение, используя что-то вроде этого (см., Например, эту страницу, которая, кажется, дает решение):

yum install php-mbstring

(Имя пакета может немного отличаться; поэтому используйте поиск yum, чтобы получить его:-))

Для Debian/Ubuntu:

sudo apt-get install php7.0-mbstring

Если вы не знаете, как включить расширение php_mbstring в windows, откройте php.ini и удалите точку с запятой перед расширением:

изменить это

;extension=php_mbstring.dll

к этому

extension=php_mbstring.dll

после внесения изменений вам необходимо перезагрузить ваш php сервер.

Если у кого-то возникли проблемы с установкой php-mbstring пакет в Ubuntu сделать следующее sudo apt-get install libapache2-mod-php5

apt-get install php7.3-mbstring решил проблему на ubuntu, версия php - php-fpm 7.3

Для php 5.6 в ubuntu

      sudo apt install php5.6-mbstring

Перезагрузите Apache2

      sudo systemctl restart apache2

Для OpenSUse (менеджер пакетов zypper):

zypper install php5-mbstring

а также:

zyper install php7-mbstring

С другой стороны, вы можете искать их через YaST Software Manager.

Обратите внимание, что вы должны перезапустить сервер Apache http:

systemctl restart apache2.service
Другие вопросы по тегам