php拒绝找到ssh2_connect()函数

时间:2012-08-17 19:55:33

标签: php apache apache2 libssh2

使用的操作系统

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”

5 个答案:

答案 0 :(得分:3)

将相应的.DLL文件启用到PHP使用的php.ini(或适用的单独扩展conf): extension=ssh2.dll(如果碰巧在此行前面,请删除;

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

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

答案 1 :(得分:1)

在您的ini文件中,如果未加载dll,您会在ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp下看到Registered PHP Streams吗? Apache重启可能是?

我还假设你有

PHPIniDir "X:/Program Files/PHP"
<{1>}中的

而不是httpd.conf

答案 2 :(得分: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;

    }

答案 3 :(得分:0)

  1. 下载php_ssh2-0.11.2-5.3-vc9-x86.zip
  2. 在php.ini
  3. 中设置扩展名
  4. 重新启动Wamp
  5. 这适用于使用Apache 5.3和W32的Wamp

答案 4 :(得分:0)

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

  1. php_ssh2.dll
  2. libssh2.dll
  3. 第一次去这里 X:\ Program Files \ PHP \ ext \ php_ssh2.dll 第二个去那里 X:\ Program Files \ PHP \ libssh2.dll