SSH2 for PHP7 MacOS?
Asked Answered
O

5

12

When trying to use

ssh2_sftp($this->con);

PHP 7.1.7 thinks Im looking for a function in the class. After some reading, I found that SSH2 needs to be installed from PECL ( http://php.net/manual/en/wrappers.ssh2.php )

When I went to do that, I got the following error:

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

Anyone have any ideas on how to get this to run on MacOs 10.13.3 (17D47) with PHP 7.1.7? Thanks in advance!

Otalgia answered 17/4, 2018 at 19:58 Comment(0)
L
24

I finally found a solution on MacOS Mohave. I have PHP 7.3 installed by Homebrew:

brew install php
brew install libssh2

Install development version of ssh2 pecl extension from the latest sources:

cd ~/Downloads
git clone https://github.com/php/pecl-networking-ssh2.git
cd pecl-networking-ssh2
phpize
./configure
make
make install

Enable extension in php.ini. You can use TextEdit:

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

Add extension="ssh2.so" to the beginning of the file and save.

Test the result:

php -i | grep 'libssh2 version'

You should see

libssh2 version => 1.10.0

-- EDIT for Apple silicon (M1)

Homebrew uses different path on Apple silicon machines and ./configure command fails with error: "checking for ssh2 files in default path... not found". I resolved this with setting custom path:

./configure --with-ssh2=/opt/homebrew/opt/libssh2
Lamrouex answered 30/7, 2019 at 22:0 Comment(5)
This is the one that works for me! Thank you so much for posting this answer.Howland
+1 on this. It'll install ssh2 version 1.8.0. Thanks! You just unblocked our company's php7.3 update. :)Heliolatry
the new location for ssh2 (march 2022) is github.com/php/pecl-networking-ssh2.gitNunciature
After successful ssh2 install I still have Error 32759. Unable to find the socket transport "ssh2.sftp" - did you forget to enable it when you configured PHP?Caster
For me (PHP 7.4 & macOS Ventura M1) just pecl install ssh2 and specifying /opt/homebrew/opt/libssh2 when asked, did the trick. I already had libssh2 installed with brew.Lardon
M
13

I managed to install php-ssh2 on MacOS High Sierra.

First I had to install libssh2, in order for PECL to compile the extension.

I used brew, however most likely libssh2 is available from mac ports also.

brew install libssh2

and then

pecl install ssh2-1.1.2

I have the Xcode command line tools (already) installed - which I assume was needed to compile the extension.

Mercie answered 22/8, 2018 at 2:16 Comment(5)
I tried this on a Mac running Mojave, and I got this error on "pecl install ssh2-1.1.2": No releases available for package "pecl.php.net/ssh2" install failedConvertible
I tried on Mohave. Instalelled libssh2 1.9.0 without any problems. Than pecl installation failed with 17 warnings and 3 errors. It looks like incompatibility between libssh2 and pecl extension.Lamrouex
any luck so far?Webworm
worked for me. libssh2 was pulled in v1.9.0.1 from brew but pecl install only worked with ssh2-1.2Kristofer
This worked for me on macOS Catalina (10.15.2). Slight modification - I did pecl install ssh2-1.2.Etiology
T
5

Try this:

pecl install ssh2-1.1.2

You can see available versions for ssh2 HERE

For those using alpine linux, make sure to add libssh2-dev first:

apk --update add libssh2-dev
Tica answered 7/6, 2018 at 13:13 Comment(0)
I
2

On macOS Big Sur:

brew install libssh2
pecl install ssh2-1.2
Incommunicado answered 26/11, 2020 at 13:12 Comment(0)
C
0

On macOS Big Sur and with MacPorts and MAMP Pro:

sudo port install libssh2
cd ~/Downloads
git clone https://git.php.net/repository/pecl/networking/ssh2.git
cd ssh2

Then use an editor and edit ~/Downloads/ssh2/config.m4 around line 7 and change the search paths "/usr/local /usr" to "/usr/local /usr /opt/local" like this

if test "$PHP_SSH2" != "no"; then
    SEARCH_PATH="/usr/local /usr /opt/local"

save and go on:

phpize
./configure
make
make install

Then follow the steps in answer and regarding your PHP version…

Crestfallen answered 12/8, 2021 at 9:11 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.