9

尝试使用时

ssh2_sftp($this->con);

PHP 7.1.7 认为我在类中寻找一个函数。经过一番阅读,我发现需要从 PECL 安装 SSH2 ( 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 上运行?提前致谢!

4

5 回答 5

16

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

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。您可以使用文本编辑:

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

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

测试结果:

php -i | grep libssh2

你应该看到

libssh2 version => 1.9.0
于 2019-07-30T22:00:01.197 回答
12

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

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

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

brew install libssh2

接着

pecl install ssh2-1.1.2

我已经安装了 Xcode 命令行工具(已经)——我认为它是编译扩展所必需的。

于 2018-08-22T02:16:50.283 回答
5

尝试这个:

pecl install ssh2-1.1.2

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

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

apk --update add libssh2-dev
于 2018-06-07T13:13:47.460 回答
1

在 macOS 大苏尔上:

brew install libssh2
pecl install ssh2-1.2
于 2020-11-26T13:12:53.920 回答
0

在 macOS Big Sur 和 MacPorts 和 MAMP Pro 上:

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

然后使用编辑器并在第 7 行周围编辑 ~/Downloads/ssh2/config.m4 并将搜索路径“/usr/local /usr”更改为“/usr/local /usr /opt/local”,如下所示

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

保存并继续:

phpize
./configure
make
make install

然后按照回答中的步骤和关于您的 PHP 版本...</p>

于 2021-08-12T09:11:35.003 回答