5

使用的操作系统

Windows 7 - V 6.1

安装了 Apache

httpd-2.2.22-win32-x86-no_ssl.msi

我的 httpd.conf

AddType application/x-httpd-php .php

LoadModule php5_module "X:/Program Files/PHP/php5apache2_2.dll"

安装的php版本

php-5.3.16-Win32-VC9-x86.msi

我从未压缩的 php_ssh2-0.11.2-5.3-nts-vc9-x86.zip 复制了 php_ssh2.dll

php_ssh2-0.11.2-5.3-nts-vc9-x86.zip

X:\Program Files\PHP\ext\php_ssh2.dll

我的 php.ini

extension_dir="X:\Program Files\PHP\ext"

PHPIniDir "X:/Program Files/PHP"

[PHP_SSH2]
extension=php_ssh2.dll

在使用 php_ssh2.dll 配置 php.ini 并将文件 php_ssh2.dll 复制到 extension_dir 后,Apache 已重新启动 - 错误仍然存​​在

Fatal error: Call to undefined function ssh2_connect() in X:\Program Files\Apache Software Foundation\Apache2.2\htdocs\index.php on line 4

用于测试的代码

<?php
$connection = ssh2_connect("XXX.XXX.XXX.XXX", 22);

if(ssh2_auth_password($connection, "XXXXXX", "XXXXXX"))
  printf("CONNECTED");
else
  printf("ERROR");
?>

使用 phpinfo() 的测试在浏览器中完美显示页面,因为 php 配置了 httpd.conf 但参数 extension_dir 显示为

extension_dir C:\php C:\php

但此参数设置为“X:\Program Files\PHP\ext”

4

5 回答 5

3

为 PHP 使用的 php.ini(或单独的扩展 conf,如果适用)启用相应的 .DLL 文件:( extension=ssh2.dll删除一个;如果它恰好在这一行前面)

我们可以使用 windows 命令行检查是否已启用 PHP 的 SSH2 扩展(这可能需要重新启动 apache): php -m 这将列出所有已安装的 php 扩展,您应该会在其中看到 ssh2。

您现在应该可以使用ssh2_connect()

于 2012-08-17T20:02:19.543 回答
1

在您的 ini 文件中,您是否ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftpRegistered PHP Streamsif not 未加载 dll 下看到。Apache重启可能吗?

我也假设你有

PHPIniDir "X:/Program Files/PHP"

httpd.confphp.ini

于 2012-08-17T20:07:24.663 回答
1

肯定会工作。

运行这个来安装 ssh2:

sudo apt-get install libssh2-php

现在运行此命令以检查 ssh2 是否附加到扩展数组

php -r "print_r(get_loaded_extensions());"

现在代码移动你的文件

public function movefolder() {



          $connection = ssh2_connect('xxx.xx.xx.xx', 22);

        $res = ssh2_auth_password($connection, 'xxxx', 'xxxx123');


          $res1 = ssh2_scp_send ($connection, '/home/user/public/upgrades/downloaded/abc.tar', '/home/xxx/public/abc.tar', 0644);


           echo $connection . '--' . $res. '--' .$res1;

        die;

    }
于 2013-07-23T07:32:45.323 回答
0
  1. 下载php_ssh2-0.11.2-5.3-vc9-x86.zip
  2. 在 php.ini 中设置扩展名
  3. 重启 Wamp

这适用于带有 Apache 5.3 和 W32 的 Wamp

于 2013-03-23T01:25:00.760 回答
0

在 php_ssh2-0.11.2-5.3-nts-vc9-x86.zip 你有2 个dll

  1. php_ssh2.dll
  2. libssh2.dll

第一个去这里
X:\Program Files\PHP\ext\php_ssh2.dll 和第二个去那里 X:\Program Files\PHP\libssh2.dll

于 2015-12-06T17:59:28.253 回答