我正在尝试在一个Windows+Apache
机器上安装this。
文档中提到SSH2需要OpenSSL
和libssh2
库。
我已经在我的php.ini
文件中添加了这些行:
extension=php_openssl.dll
extension=php_ssh2.dll
我已经重新启动了Apache,但它仍然无法工作(Fatal error: Call to undefined function ssh2_connect()
)。
有人能向我解释如何安装此服务吗?
这是我完成它的方法:
从这个位置下载Win32 SSH2 PECL扩展(选择适当的版本);
提取存档的内容并:
php_ssh2.dll
和php_ssh2.pdb
文件放置在ext
文件夹中(例如C:\ php \ ext
);libssh2.dll
文件到C:\Windows\system32
和(如果您使用的是Win64)C:\Windows\SysWOW64
文件夹;运行以下命令注册DLL:
C:\> regsvr32 libssh2.dll
重启了Apache。
最后说明
如果你使用的是PHP x64,则需要查找SSH2库/ DLL的x64版本。 此网站提供了一些针对PHP编译的Win64库,请先尝试这里。
希望这能有所帮助。
如果有人在安装SSH2时遇到了问题,以下是我是如何做的:
1)从PHP.net下载适合的版本SSH2 PECL库。
2)将 libssh2.dll
复制到 System32 [x86] 或 SysWOW64 [x64] 文件夹。
3)将 php_ssh2.dll
和 php_ssh2.pdb
复制到 php/ext 文件夹中。
4)从 php.ini 中的 ;extension=php_ssh2.dll
行中删除 ';' 。如果 php.ini 上没有此行,则添加它。
5)重新启动 Apache。
php_ssh2.dll
放置在ext文件夹中。libssh2.dll
放置在php文件夹中。IIS
。对我来说这很有效。
PHP 5.4.25 NTS + Windows Server 2012
C:\Windows\SysWOW64
(32位系统为 C:\Windows\System32
)。 - jave.weblibssh2 (依赖库): http://windows.php.net/downloads/php-sdk/deps/
php_ssh2 (扩展库): http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
在 PHP 版本 5.5 之前已经内置了 libssh2.dll (来自第二个链接)
以下是对我有效的解决方法。我的版本是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,即Thread Safe(TS)x86
2.) 在C:\xampp\php(标准安装)中添加/替换libssh2.dll
3.) 在C:\xampp\php\ext(标准安装)中添加/替换php_ssh2.dll和php_ssh2.pdb
4.) 重新启动apache服务器
非常完美地解决了问题
干杯
要求部分实际上是这样说的:
需要 OpenSSL 和 libssh2 库。确保安装了开发库,一个典型的包名称可能是 openssl-dev。
它不是在谈论 PHP 扩展,而是在谈论与 PHP 无关的第三方库。
extension=php_ssh2.dll
要求你实际上在 PHP 的 ext
目录中有一个名为 php_ssh2.dll
的文件,你可能没有它,主要是因为它没有捆绑在 PHP 中。
如果我们检查安装章节,我们可以看到 SSH2 是一个 PECL 扩展。有一些带有说明的链接,但我可以总结一下重要信息:
php_ssh2.dll
文件。话虽如此,除非您搜索php_ssh2.dll
并找到相关内容,否则您可能会运气不佳。
php -i
显示SSH2支持已启用
,但是尝试运行Phing任务却导致Windows消息出现PHP崩溃。有什么提示可以帮助解决问题吗? - Rarst