使用 PHP5.5 VC11NTS 在 Windows Server 上安装 SSH2

使用 PHP5.5 VC11NTS 在 Windows Server 上安装 SSH2

过去几天我一直在绞尽脑汁在 PHP 上安装 SSH2 连接。

我当前的设置是 VC11 非线程安全的,我已经在 PECL 网站上下载了相应的 zip 文件夹:http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

文件名准确为:php_ssh2-0.12-5.5-nts-vc11-x86.zip,充分意识到版本的差异我在下载文件之前已经仔细检查了所有内容,PHP 如下:

编译器 MSVC11 (Visual C++ 2012)

架构 x86

PHP扩展构建 API20121212,NTS,VC11

因此,正确的文件已下载,我可以确认它们位于正确的目录(C:\PHP\ext)并且 PHP.ini 指向正确的文件夹。

现在,此压缩档案中包含

执照

php_ssh2.dll

php_ssh2.pbd

这些已放置在正确的文件夹中并且是现有的。扩展已正确输入到 php.ini 中,如下所示:

扩展=php_mbstring.dll

extension=php_exif.dll ; 必须在 mbstring 之后,因为它依赖于它

扩展=php_mysql.dll

扩展=php_mysqli.dll

;extension=php_oci8.dll ; 与 Oracle 10gR2 Instant Client 一起使用

;extension=php_oci8_11g.dll ;与 Oracle 11gR2 Instant Client 一起使用

扩展=php_openssl.dll

;扩展=php_pdo_firebird.dll

扩展=php_pdo_mysql.dll

扩展=php_ssh2.dll

但是在启动 Microsoft IIS 后出现问题,函数似乎未定义,因此我运行 C:\PHP\php.exe,它返回以下错误:

Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_ssh2.dll' - The specified module could not be found. in Unknown on line 0

但在显示此消息之前,我看到的是:

The program can't start because the libssh2.dll is missing from your computer. Try reinstalling the program to fix this problem

此 zip 文档中没有提供 libssh2.dll,这在该扩展的旧版本中很明显,我在 C:\WINDOWS\SYSTEM32 中有一个来自 5.4 文档的旧版本,并通过运行进行注册:

C:\>regsvr32 libssh2.dll

通过命令提示符。

尽管 stackoverflow 库中有许多关于此案例的问题/答案建议使用替代库,但我希望避免使用这些库并正确安装扩展。 有什么建议可以给出

答案1

回答得有点晚了。最近,我在使用 php 5.5 时遇到了这个问题。

解决方案

  • http://www.libssh2.org/并下载 libssh2.dll 并放在 php 根目录中。

  • 另一个选择是从这里并且 libssh2 应该包含在 zip 文件中。只需复制它,它应该与 php 5.4 和 5.5 兼容。但不确定为什么它没有包含在 php 5.5 中!

相关内容