SSH2 для PHP7 MacOS?

При попытке использовать

ssh2_sftp($this->con);

PHP 7.1.7 думает, что я ищу функцию в классе. Почитав немного, я обнаружил, что SSH2 нужно устанавливать из PECL ( http://php.net/manual/en/wrappers.ssh2.php )

Когда я пошел, чтобы сделать это, я получил следующую ошибку:

pecl/ssh2 requires PHP (version >= 4.0.0, version <= 6.0.0), installed version is 7.1.7
No valid packages found
install failed

У кого-нибудь есть идеи, как заставить это работать на MacOs 10.13.3 (17D47) с PHP 7.1.7? Заранее спасибо!


person Oman    schedule 17.04.2018    source источник


Ответы (4)


Наконец-то я нашел решение для MacOS Mohave. У меня есть PHP 7.3, установленный Homebrew:

brew install php
brew install libssh2

Установите разрабатываемую версию расширения ssh2 pecl из последних источников:

cd ~/Downloads
git clone https://git.php.net/repository/pecl/networking/ssh2.git
cd ssh2
phpize
./configure
make
make install

Включить расширение в php.ini. Вы можете использовать TextEdit:

open -e /usr/local/etc/php/7.3/php.ini

Добавьте extension="ssh2.so" в начало файла и сохраните.

Проверьте результат:

php -i | grep libssh2

Тебе следует увидеть

libssh2 version => 1.9.0
person Peter Knut    schedule 30.07.2019
comment
Это тот, который работает для меня! Большое спасибо за публикацию этого ответа. - person Collegeman; 12.08.2019
comment
+1 по этому поводу. Он установит ssh2 версии 1.8.0. Спасибо! Вы только что разблокировали обновление php7.3 нашей компании. :) - person guice; 14.09.2019

Мне удалось установить php-ssh2 на MacOS High Sierra.

Сначала мне пришлось установить libssh2, чтобы PECL скомпилировал расширение.

Я использовал brew, однако, скорее всего, libssh2 также доступен из портов Mac.

brew install libssh2

а потом

pecl install ssh2-1.1.2

У меня установлены (уже) инструменты командной строки Xcode, которые, как я полагаю, были необходимы для компиляции расширения.

person Nigel Atkinson    schedule 22.08.2018
comment
Я попробовал это на Mac с запущенным Mojave, и я получил эту ошибку при установке pecl ssh2-1.1.2: нет доступных выпусков для пакета pecl.php.net/ssh2 установка не удалась - person mcgregor94086; 16.05.2019
comment
Пробовал на Мохаве. Установил libssh2 1.9.0 без проблем. Затем установка pecl завершилась неудачно с 17 предупреждениями и 3 ошибками. Похоже на несовместимость между libssh2 и расширением pecl. - person Peter Knut; 31.07.2019
comment
есть удача до сих пор? - person Haseeb Zulfiqar; 04.11.2019
comment
работал на меня. libssh2 был извлечен в v1.9.0.1 из brew, но установка pecl работала только с ssh2-1.2 - person Erik Pöhler; 23.12.2019
comment
У меня это сработало на macOS Catalina (10.15.2). Небольшая модификация - я сделал pecl install ssh2-1.2. - person Blake Frederick; 20.02.2020

Попробуй это:

pecl install ssh2-1.1.2

Доступные версии для ssh2 можно посмотреть ЗДЕСЬ

Для тех, кто использует alpine linux, обязательно сначала добавьте libssh2-dev:

apk --update add libssh2-dev
person lloiacono    schedule 07.06.2018

В macOS Big Sur:

brew install libssh2
pecl install ssh2-1.2
person Léo Benoist    schedule 26.11.2020