среда, 17 ноября 2021 г.

Установка расширения ssh2 для php7 в CentOS8

В CentOS8 по умолчанию устанавливается версия php – 7.2.
Данная версия языка php не содержит готового пакета расширения ssh2 в репозитариях CentOS8. Более того расширение не поддерживается официально для php7. В связи с этим нет возможности использовать директивы ssh2_connect, ssh2_exec, ssh2_scp_send в программах на php7.

Это ограничение можно обойти, установив расширение вручную.
1) Подготовим систему для сборки расширения ssh2
# yum install gcc php-devel libssh2 libssh2-devel

2) Скачиваем и собираем расширение
# cd /usr/src
# git clone https://github.com/php/pecl-networking-ssh2.git
# cd pecl-networking-ssh2
# phpize
# ./configure
# make

Сборка завершается сообщением:
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/src/pecl-networking-ssh2/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

3) Устанавливаем собранный пакет
# make install
Результат:
Installing shared extensions:     /usr/lib64/php/modules/

4) Информацию о новом модуле нужно задать в директории /etc/php.d
Создаем файл и заносим в него информацию о расширении:
# touch /etc/php.d/40-ssh2.ini
# nano /etc/php.d/40-ssh2.ini

Вписываем туда:
extension=ssh2

5) Проверить результат можно командой:
# php -i |grep ssh2
Для применения настроек в apache, web-сервер нужно перезагрузить







Комментариев нет:

Отправить комментарий