SSH2 dll无法加载- windows server 2008 64位,php 5.3.5 32位,apache 3


SSH2 dll not being loaded - windows server 2008 64bit, php 5.3.5 32bit, apache 32 bit

我在这里遵循说明:PHP在Windows机器上安装SSH2。

请注意,我在工作,不能改变这个开发环境。

使用

if (extension_loaded('ssh2')) 

我可以看到扩展还没有加载。

  • 我尝试从这里使用TS和NTS文件:http://windows.php.net/downloads/pecl/releases/ssh2/0.12/for PHP 5.3(我是5.3.5版本)。

  • 我已经将php_ssh2.dllphp_ssh2.pdb文件放在PHP的正确ext文件夹中(我已经确认这是使用phpinfo()命令的正确ext文件夹)。

  • 我已经添加了extension=php_ssh2.dll到php.ini文件,再次确保它是正确的ini文件使用phpinfo()命令

  • 我已将libsshl2.dll添加到syswow64system32文件夹

  • 当我尝试注册那些使用命令行提示失败,但我已经告诉我的其他问题,这是因为libssh2.dll is not a COM server so cannot be registered -我如何注册一个php dll与windows,如果它's 64位的windows,但32位的php和apache?我已尝试以管理员

  • 的身份运行这些命令。
  • Apache已重启。错误日志中没有任何内容

请帮帮我,把我的头发都扯掉了

老实说,我认为你最好使用phpseclib。众所周知,Libssh2很难使用。它没有得到很好的维护,甚至没有phpseclib那样的功能包。关于phpseclib相对于libssh2的优势的更多信息:

http://phpseclib.sourceforge.net/ssh/compare.html

的例子:

<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}
echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>

看看这个答案。似乎对于php的每个版本,您都将拥有完全相同的ssh2版本。你不能运行ssh2 dll,如果它不是用那个php版本构建的

所以检查版本,注意有两个下载链接,32或64。https://stackoverflow.com/a/16480426