Вы здесь: Статьи Часто задаваемые вопросы Ошибка Fatal error: String functions are overloaded by mbstring в Joomla 3


Ошибка Fatal error: String functions are overloaded by mbstring в Joomla 3

Вопрос: на сайте Joomla 3 белая страница с ошибкой:

Fatal error: String functions are overloaded by mbstring in .../libraries/vendor/joomla/string/src/phputf8/utf8.php on line 39.

Ответ: данная критическая ошибка связана с изменением параметров PHP на вашем сервере. Как правило, ошибка появляется при попытке установки Joomla 3 на локальный сервер или при изменении версии PHP (или его настроек) на хостинге.

Решение:

1. Откройте файл настроек php.ini (для локального севера Денвер - \WebServers\usr\local\php5\php.ini, для OpenServer - Меню -> Дополнительно -> Конфигурация -> PHP 5.x.x или \OpenServer\userdata\config\PHP-5.x.x_php.ini, где 5.x.x - ваша версия PHP). Если сайт находится на хостинге, то, с большой долей вероятности, доступа к php.ini у Вас не будет (если у Вас не выделенный сервер), в этом случае нужно обратиться в техподдержку хостера с просьбой выполнить нижеследующие рекомендации.
2. В файле php.ini найтите параметр mbstring.func_overload - он находится в блоке [mbstring], но лучше искать поиском (ctrl+f) по файлу.
3. Установите значение параметра mbstring.func_overload в 0. Стандартно данный параметр закомментирован, т.е. его значение равно значению по умолчанию, которое и есть 0. Но если у Вас возникла критическая ошибка, значить, по какой-то причине, параметр mbstring.func_overload не равен 0.
4. После сохранения изменений конфигурации PHP необходимо перезагрузить сервер (это касается и локального сервера, и хостинга).

Альтернативное решение:

Если у Вас по какой-то причине нет доступа к php.ini и нет связи с тех.поддержкой хостинга, можно устранить ошибку альтернативным методом.

Вариант 1
В файл .htaccess, который находится в корне сайта, добавить следующее:
<IfModule mod_php5>
php_value default_charset utf8
php_admin_value mbstring.func_overload 2
php_value mbstring.internal_encoding utf8
php_admin_value realpath_cache_size 4096k
</IfModule>

Вариант 2
Открыть файл /libraries/vendor/joomla/string/src/phputf8/utf8.php и удалить часть кода:

if ( extension_loaded('mbstring')) {
    if ( ini_get('mbstring.func_overload') & MB_OVERLOAD_STRING ) {
        trigger_error('String functions are overloaded by mbstring',E_USER_ERROR);
    }
    mb_internal_encoding('UTF-8');
}

Отмечу, что второй вариант плох тем, что файл utf8.php может быть восстановлен при обновлении Joomla и Вам снова придется делать хак.

Комментарии  

 
#1 Сергей 07.03.2017 12:11
Спасибо. Помог
Цитировать
 
 
#2 ALEXANDR ERSHOV 07.05.2017 02:04
Огромное СПАСИБО!
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Популярные файлы

1.
Компонент Миграции с Joomla! 1.0.x на Joomla! 1.5.x
6030
2.
Плагин RESTFul миграции с Joomla! 1.5 на Joomla! 2.5 - JUpgrade Pro
4499
3.
Компонент миграции с Joomla! 1.0 на Joomla! 1.5 - mtwmigrator
3343

Последние комментарии

  • Огромное СПАСИБО! Подробнее....
    От ALEXANDR ERSHOV
  • Спасибо за подсказку! Обновила языковой пакет и вс... Подробнее....
    От Валентина
  • И ведь не сложная сама по себе штука, но пока знан... Подробнее....
    От Lstchk