PHP在Windows机器上安装SSH2

时间:2013-02-28 11:30:00

标签: php windows apache dll libssh2

我正在尝试在Windows+Apache计算机上安装this。 文档说SSH2需要OpenSSLlibssh2库。 我在php.ini文件中添加了这些行:

extension=php_openssl.dll
extension=php_ssh2.dll

并重新启动Apache,但它仍无效(Fatal error: Call to undefined function ssh2_connect())。

有人可以解释一下如何安装此服务吗?

由于

ps:我是意大利人,对不起我的英语......

8 个答案:

答案 0 :(得分:29)

我是这样做的:

  1. this location下载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。

  5. 最后的注释

    如果你有PHP x64,你必须查找SSH2库/ DLL的x64版本。 This site为PHP提供了一些Win64编译库,请先在这里试试。

    希望这有帮助。

答案 1 :(得分:9)

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

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

2)将libssh2.dll复制到 System32 [x86]或 SysWOW64 [x64]文件夹。

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

4)删除';'来自php.ini中的;extension=php_ssh2.dll行。如果你的php.ini上没有这行,请添加它。

5)重新启动 Apache

答案 2 :(得分:7)

  1. php_ssh2.dll放在ext文件夹
  2. libssh2.dll放在php文件夹
  3. 重新启动IIS
  4. 对我有用

    • PHP 5.4.25 NTS + Windows Server 2012

答案 3 :(得分:4)

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

执行alex b所说的内容,并从此页面下载与您相关的软件包(以及位)的软件包(link

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

希望这有帮助,问候。

答案 4 :(得分:3)

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

答案 5 :(得分:2)

我已经使用PHP 5.6.25 / 7.0.10 - 安装了MySQL 5.7.14并且我目前正在使用PHP 7.0。我有同样的错误。我检查使用phpinfo()如果librarires OpenSSL和libssh2都工作(你可以google如何检查它)。在我看到它们正在工作之后,我已经在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()。它奏效了。希望它有所帮助。

答案 6 :(得分:1)

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

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.)添加/替换php_ssh2.dll&在C:\ xampp \ php \ ext(标准安装)中的php_ssh2.pdb

4.)重新启动apache服务器

像魅力一样工作

CHEERS

答案 7 :(得分:0)

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

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

      

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

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

  2. extension=php_ssh2.dll要求您在PHP的php_ssh2.dll目录中实际拥有一个名为ext的文件,而您可能没有它,主要是因为它没有与PHP。

  3. 如果我们检查Installation章节,我们可以读到SSH2是PECL扩展。有一些指示链接,但我可以总结重要信息:

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

    说,除非你谷歌php_ssh2.dll找到相关内容,否则你可能会运气不好。