我试图在Windows+Apache
机器上安装这个。文档说明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,你必须查找x64版本的SSH2库/dll。这个站点提供了一些用于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中,添加它。
- 将
php_ssh2.dll
放入ext文件夹 - 将
libssh2.dll
放入php文件夹 - 重启
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服务器欢呼
首先,你的问题揭示了两个误解:
-
需求部分实际上是这样说的:
需要»OpenSSL和»libssh2库。确保安装了开发库,其中有典型的包名可能是openssl-dev。
这不是在讨论PHP扩展,而是在讨论与PHP无关的第三方库。
-
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
并找到相关的东西,否则你可能运气不好。