5

使用するオペレーティング システム

Windows 7 - V 6.1

アパッチがインストールされている

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

確かに動作します。

これを実行して 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 に答える
1

あなたのiniファイルでは、DLLがロードされていない場合はssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp下に表示されますか。Registered PHP StreamsApacheの再起動はありますか?

また、私はあなたが持っていたと思います

PHPIniDir "X:/Program Files/PHP"

ではhttpd.confないphp.ini

于 2012-08-17T20:07:24.663 に答える
0
  1. php_ssh2-0.11.2-5.3-vc9-x86.zip をダウンロード
  2. php.ini に拡張子を設定
  3. リスタートワンプ

これは、Apache 5.3 および W32 を使用する Wamp 用です。

于 2013-03-23T01:25:00.760 に答える