Bitrix и phpmyadmin - одновременная работа

Главная » Блог программиста » Одновременная работа Bitrix и phpMyAdmin на примере OpenServer под Windows

Просмотров: 11923

Одновременная работа Bitrix и phpMyAdmin на примере OpenServer под Windows

Одной детской болезнью системы 1С-Битрикс Управление сайтом является обязательное использование mbstring.func_overload 2, хотя начиная с PHP 7.2 такая конфигурация является устаревшей, и некоторые библиотеки не поддерживают данную конфигурацию, например, phpMyAdmin выдаёт следующее:
Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Overloading of string functions using mbstring.func_overload is not supported by phpseclib.' in C:\OSPanel\modules\system\html\openserver\phpmyadmin\vendor\phpseclib\phpseclib\phpseclib\bootstrap.php:11 Stack trace: #0 C:\OSPanel\modules\system\html\openserver\phpmyadmin\vendor\composer\autoload_real.php(66): require() #1 C:\OSPanel\modules\system\html\openserver\phpmyadmin\vendor\composer\autoload_real.php(56): composerRequirebea6ca147e09cdcb5ffb389949d1d084('decc78cc4436b12...', 'C:\\OSPanel\\modu...') #2 C:\OSPanel\modules\system\html\openserver\phpmyadmin\vendor\autoload.php(7): ComposerAutoloaderInitbea6ca147e09cdcb5ffb389949d1d084::getLoader() #3 C:\OSPanel\modules\system\html\openserver\phpmyadmin\libraries\common.inc.php(91): require_once('C:\\OSPanel\\modu...') #4 C:\OSPanel\modules\system\html\openserver\phpmyadmin\index.php(26): require_once('C:\\OSPanel\\modu...') #5 {main} thrown in C:\OSPanel\modules\system\html\openserver\phpmyadmin\vendor\phpseclib\phpseclib\phpseclib\bootstrap.php on line 11
Временным решением данной проблемы (до устранения её разработчиками битрикса) является добавление отдельной конфигурации для phpMyAdmin в файл конфигурации, быстрый доступ к которому осуществляется через меню OpenServer: Дополнительно->Конфигурация->Apache-2.4-x64 (в зависимости от версии PHP), например C:\OSPanel\userdata\config\Apache-2.4-x64_server.conf: в блок Настройка прав доступа к серверу
<Directory "c:/ospanel/modules/system/html/openserver/phpmyadmin">
php_value default_charset utf-8
php_admin_value mbstring.func_overload 0
php_value mbstring.internal_encoding utf8
</Directory>

Для php7 закомментируйте строку #php_value mbstring.internal_encoding utf8
Где c:/ospanel/modules/system/html/openserver/ - путь к папке с phpMyAdmin.


Таким же образом можно добавлять Ваши проекты, которые не поддерживают mbstring.func_overload 2 (если большинство проектов у Вас на битриксе)
Если у Вас немного проектов на битриксе - можно выставить в файле конфигурации PHP через меню OpenServer: Дополнительно->Конфигурация->PHP-5.6-x64 (например C:\ospanel\userdata\config\PHP-5.6-x64_php.ini) 
mbstring.func_overload = 0, а для проектов на битриксе добавить блок в файл конфигурации Apache, как показано выше, заменив в блоке строку на:
php_admin_value mbstring.func_overload 2

Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.