19

我正在尝试将其安装Windows+Apache机器上。文档说 SSH2 需要OpenSSLlibssh2库。我在我的php.ini文件中添加了这一行:

extension=php_openssl.dll
extension=php_ssh2.dll

并重新启动了 Apache,但它仍然无法正常工作(Fatal error: Call to undefined function ssh2_connect())。

谁能解释我如何安装此服务?

4

8 回答 8

29

我是这样做的:

  1. 从这个位置下载 Win32 SSH2 PECL 扩展 (选择合适的版本);

  2. 提取档案的内容并:

    • 放置php_ssh2.dllphp_ssh2.pdb文件ext夹中的文件(例如C:\php\ext);
    • 将文件复制libssh2.dllC:\Windows\system32和(如果你有 Win64)C:\Windows\SysWOW64文件夹;
  3. 运行以下命令来注册 DLL:

    C:\> regsvr32 libssh2.dll
    
  4. 重新启动阿帕奇。

最后说明

如果您有 PHP x64,则必须查找 x64 版本的 SSH2 库/DLL。 该站点提供了一些用于 PHP 的 Win64 编译库,请先在此处尝试。

希望这可以帮助。

于 2013-05-10T10:39:39.610 回答
9

如果有人在安装 SSH2 时遇到问题,我是这样做的:

1) 从PHP.net [选择合适的版本]下载 SSH2 PECL 库。

2) 复制libssh2.dllSystem32 [x86] 或SysWOW64 [x64] 文件夹。

3) 复制php_ssh2.dllphp_ssh2.pdbphp/ext文件夹。

4)删除';' 从;extension=php_ssh2.dllphp.ini 中的行。如果此行不在您的 php.ini 中,请添加它。

5)重启阿帕奇

于 2013-10-18T04:33:14.017 回答
7
  1. 放入php_ssh2.dllext 文件夹
  2. 放入libssh2.dllphp文件夹
  3. 重新开始IIS

那对我有用

  • PHP 5.4.25 NTS + Windows Server 2012
于 2014-07-17T11:29:44.323 回答
5

如果您正在运行 xamp 3.2.1 和 PHP 5.6.8,这可能对您有所帮助。

做亚历克斯 b 说的,并从这个页面下载与你的 php 版本(和位)相对应的包(链接

我已经下载并替换了 C:\xampp\php\ext 并且它有效!

希望这会有所帮助,问候。

于 2016-11-21T09:31:29.497 回答
4

libssh2(deps): http: //windows.php.net/downloads/php-sdk/deps/

php_ssh2 (ext): http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

5.5 之前的版本已经有 libssh2.dll(来自第二个链接)

于 2014-07-16T19:26:26.577 回答
2

我已经安装了 PHP 5.6.25/7.0.10 – MySQL 5.7.14,我目前正在使用 PHP 7.0。我有同样的错误。如果库 OpenSSL 和 libssh2 都在工作,我使用 phpinfo() 检查(你可以谷歌如何检查)。在我看到它们正在工作之后,我在http://pecl.php.net/package/ssh2/1.0/windows下载了 php_ssh2.dll (也可以在http://windows.php.net/downloads/pecl找到/releases/ssh2/ ) 对于 7.0 版本,将其放入 php\ext 文件夹。比我使用 extension=php_ssh2.dll 将它包含在 php.ini 文件中。

然后它出现在 phpinfo() 中。它奏效了。希望能帮助到你。

于 2017-01-30T08:51:38.753 回答
1

修复对我有用的问题。我正在运行 xampp v. 3.2.1 apache 2.2 面临同样的问题,尝试将 dll 文件放在不同的 c: 位置,但最终失败了,这有帮助。

1.) 从http://pecl.php.net/package/ssh2/0.12/windows下载版本特定的 dll 文件并提取文件

请注意,即使您使用的是 64 位版本的 windows,也请根据您的 php 版本下载 32 版本的 THREAD SAFE ssh 即线程安全 (TS) x86

2.) 在 C:\xampp\php 添加/替换 libssh2.dll(标准安装)

3.) 在 C:\xampp\php\ext 中添加/替换 php_ssh2.dll 和 php_ssh2.pdb(标准安装)

4.) 重启apache服务器

像魅力一样工作

干杯

于 2015-08-07T06:57:57.780 回答
0

首先,您的问题揭示了两个误解:

  1. 需求部分实际上是这样说的:

    » OpenSSL 和 » libssh2 库是必需的。确保已安装开发库,其中典型的包名称可能是 openssl-dev。

    它不是在谈论 PHP 扩展,而是在谈论与 PHP 无关的第三方库。

  2. extension=php_ssh2.dll要求您实际上php_ssh2.dll在 PHP 的ext目录中调用了一个文件,而您可能没有它,主要是因为它没有与 PHP 捆绑在一起。

如果我们查看安装章节,我们可以看到 SSH2 是一个 PECL 扩展。有一些带有说明的链接,但我可以总结一下重要信息:

  • 您需要一个php_ssh2.dll与您的 PHP 安装相匹配的文件。
  • PHP 团队和 PECL 团队都不会分发此类文件。
  • 在 Windows 上安装 PECL 扩展很困难。您需要下载 C 源代码,获取 C 编译器并自己制作文件,或者找到已经为您完成的人。

说,除非你谷歌搜索php_ssh2.dll并找到相关的东西,否则你可能不走运。

于 2013-02-28T13:13:55.820 回答