PHP在Windows机器上安装SSH2

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

 extension=php_openssl.dll extension=php_ssh2.dll 

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

任何人都可以解释我如何安装此服务?

谢谢

ps:我是意大利人,对不起我的英文…

以下是我如何做到的:

  1. 从此位置下载Win32 SSH2 PECL扩展(select适当的版本);

  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编译库,请先在这里试试。

希望这可以帮助。

  1. php_ssh2.dll放在ext文件夹中
  2. 在php文件夹中放置libssh2.dll
  3. 重新启动IIS

为我工作

  • PHP 5.4.25 NTS + Windows Server 2012

如果有人在安装SSH2时遇到问题,请按照以下步骤操作:

1)从PHP.net下载SSH2 PECL库。

2)将libssh2.dll复制到System32文件夹。

3)将php_ssh2.dll和php_ssh2.pdb复制到php / ext文件夹。

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

5)重新启动Apache。

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

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

做什么亚历B说,并下载相应的包取决于您的PHP版本(和位)从这个页面( 链接 )

我已经下载并在C:\ xampp \ php \ ext中replace,它的工作!

希望这有助于问候。

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

  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编译器并自己创build文件,或者find已经为您做过的人。

说,除非你的Google for php_ssh2.dllfind一些相关的东西,否则你可能是运气不好的。

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

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

请注意,即使您在64位版本的Windows下载32版本的线程安全ssh,即线程安全(TS)的x86根据您的PHP版本

2.)在C:\ xampp \ php(标准安装)中添加/replacelibssh2.dll

3.)添加/replaceC:\ xampp \ php \ ext中的php_ssh2.dll&php_ssh2.pdb(标准安装)

4.)重新启动Apache服务器

工作就像一个魅力

干杯

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

然后它出现在phpinfo()。 它的工作。 希望它有帮助。