php拒绝找到ssh2_connect()函数

Fla*_*sjr 5 php apache apache2 libssh2

使用的操作系统

Windows 7 - V 6.1
Run Code Online (Sandbox Code Playgroud)

安装了Apache

httpd-2.2.22-win32-x86-no_ssl.msi
Run Code Online (Sandbox Code Playgroud)

我的httpd.conf

AddType application/x-httpd-php .php

LoadModule php5_module "X:/Program Files/PHP/php5apache2_2.dll"
Run Code Online (Sandbox Code Playgroud)

已安装php版本

php-5.3.16-Win32-VC9-x86.msi
Run Code Online (Sandbox Code Playgroud)

我复制了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
Run Code Online (Sandbox Code Playgroud)

X:\Program Files\PHP\ext\php_ssh2.dll
Run Code Online (Sandbox Code Playgroud)

我的php.ini

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

PHPIniDir "X:/Program Files/PHP"

[PHP_SSH2]
extension=php_ssh2.dll
Run Code Online (Sandbox Code Playgroud)

在使用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
Run Code Online (Sandbox Code Playgroud)

用于测试的代码

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

if(ssh2_auth_password($connection, "XXXXXX", "XXXXXX"))
  printf("CONNECTED");
else
  printf("ERROR");
?>
Run Code Online (Sandbox Code Playgroud)

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

extension_dir C:\php C:\php
Run Code Online (Sandbox Code Playgroud)

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

PoX*_*PoX 1

在你的 ini 文件中,如果不是 dll 未加载,你会看到ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp下面的内容。Registered PHP StreamsApache重启可以吗?

我还假设你有

PHPIniDir "X:/Program Files/PHP"
Run Code Online (Sandbox Code Playgroud)

httpd.confphp.ini