在Windows机器上安装SSH2


PHP Install SSH2 on Windows machine

我试图在Windows+Apache机器上安装这个。文档说明SSH2需要OpenSSLlibssh2库。我在我的php.ini文件中添加了这几行:

extension=php_openssl.dll
extension=php_ssh2.dll

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

谁能告诉我如何安装这个服务?

我是怎么做的:

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

  2. 提取存档的内容和:

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

    C:'> regsvr32 libssh2.dll
    
  4. 重新启动Apache .

如果你有PHP x64,你必须查找x64版本的SSH2库/dll。这个站点提供了一些用于PHP的Win64编译库,请先在这里尝试。

希望这对你有帮助。

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

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

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

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

4)从php.ini中的;extension=php_ssh2.dll行删除';'。如果这一行不在你的php.ini中,添加它。

5)重新启动Apache
  1. php_ssh2.dll放入ext文件夹
  2. libssh2.dll放入php文件夹
  3. 重启IIS

对我有用

  • PHP 5.4.25 NTS + Windows Server 2012

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

按照alex b说的做,根据你的php版本(和位)从这个页面(链接)下载相应的包

我已经下载并替换在C:'xampp'php'ext中,它工作了!

希望这有助于,问候。

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(来自第二个链接)

我已经安装了PHP 5.6.25/7.0.10 - MySQL 5.7.14的wamp,我目前正在PHP 7.0上工作。我也犯了同样的错误。我检查使用phpinfo()如果两个库OpenSSL和libssh2工作(你可以谷歌如何检查它)。在我看到它们正在工作之后,我已经在http://pecl.php.net/package/ssh2/1.0/windows(也可以找到http://windows.php.net/downloads/pecl/releases/ssh2/)下载了php_ssh2.dll的7.0版本,把它放在php'ext文件夹。然后我将它包含在php.ini文件中,使用扩展名=php_ssh2.dll。

然后它出现在phpinfo()。这招奏效了。希望能有所帮助。

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

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

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

2)。添加/替换libssh2.dll到C:'xampp'php(标准安装)

3)。添加/替换php_ssh2.dll &php_ssh2。C:'xampp'php'ext(标准安装)

4.重新启动apache服务器

欢呼

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

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

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

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

  2. extension=php_ssh2.dll要求你在PHP的ext目录下有一个名为php_ssh2.dll的文件,你可能没有,主要是因为它没有捆绑在PHP中。

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

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

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