Добрый день, коллеги.
Возможно кто-то сталкивался с необходимостью получать доступ к удаленному серверу по SFTP для скачивания файлов. Чаще всего для этого используется либа phpseclib 2/3 версии, однако в рамках текущего проекта ее использование невозможно из-за конфликта с битриксом - ему требуется включенная функция mbstring.func_overload, а phpseclib ее не поддерживает, что вызывает падение сайта с соответствующей ошибкой.
Чем можно заменить phpseclib, буду благодарен за наводку.
Обновить битрикс возможности у вас нет? Они в 21-какой-то версии наконец отказались от mbstring.func_overload=2, и корректно работают с func_overload=0 и не конфликтуют с требующими этого библиотеками.
Работа с SFTP у вас идёт прямо внутри запросов к веб-серверу, или через крон/консольный запуск процессов? Если через крон - то можно запускать PHP с отдельным конфигом php.ini, в котором выставлять func_overload=0
В качестве итогового решения была выбрана не очень популярная, но при этом рабочая библиоткеа php-ssh (herzult/php-ssh). По факту, это обертка над обычными php-функциями.
Работает она хуже, в сравнении с phpseclib, но в условиях, когда обновить битрикс невозможно, это очень хороший вариант.