SSH2 for PHP7 MacOS?

Oma*_*man 4 macos ssh pecl ssh2-sftp php-7.1

尝试使用时

ssh2_sftp($this->con);
Run Code Online (Sandbox Code Playgroud)

PHP 7.1.7认为Im正在类中寻找函数。经过一番阅读后,我发现需要从PECL(http://php.net/manual/en/wrappers.ssh2.php)安装SSH2。

当我这样做时,出现以下错误:

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

任何人都对如何使其在PHP 7.1.7的MacOs 10.13.3(17D47)上运行有任何想法?提前致谢!

llo*_*ono 5

尝试这个:

pecl install ssh2-1.1.2
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看 ssh2 的可用版本

对于使用 alpine linux 的用户,请务必先添加 libssh2-dev:

apk --update add libssh2-dev
Run Code Online (Sandbox Code Playgroud)


Nig*_*son 5

我设法在MacOS High Sierra上安装了php-ssh2。

首先,我必须安装libssh2,以便PECL编译扩展。

我使用brew,但是很可能libssh2也可以从mac端口获得。

brew install libssh2
Run Code Online (Sandbox Code Playgroud)

然后

pecl install ssh2-1.1.2
Run Code Online (Sandbox Code Playgroud)

我已经安装了Xcode命令行工具-我认为编译扩展需要它。

  • 为我工作。libssh2 是从brew 中引入 v1.9.0.1 的,但 pecl 安装仅适用于 ssh2-1.2 (2认同)
  • 这对我在 macOS Catalina (10.15.2) 上有效。稍作修改 - 我做了“pecl install ssh2-1.2”。 (2认同)

Pet*_*nut 5

我终于在MacOS Mohave上找到了解决方案。我有Homebrew安装的PHP 7.3:

brew install php
brew install libssh2
Run Code Online (Sandbox Code Playgroud)

从最新来源安装ssh2 pecl扩展的开发版本:

cd ~/Downloads
git clone https://git.php.net/repository/pecl/networking/ssh2.git
cd ssh2
phpize
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

在中启用扩展名php.ini。您可以使用TextEdit:

open -e /usr/local/etc/php/7.3/php.ini
Run Code Online (Sandbox Code Playgroud)

添加extension="ssh2.so"到文件的开头并保存。

测试结果:

php -i | grep libssh2
Run Code Online (Sandbox Code Playgroud)

你应该看到

libssh2 version => 1.9.0
Run Code Online (Sandbox Code Playgroud)