web-dev-qa-db-ja.com

PHP WindowsマシンにSSH2をインストール

_Windows+Apache_マシンに this をインストールしようとしています。ドキュメントには、SSH2にはOpenSSLおよび_libssh2_ライブラリが必要であると書かれています。 _php.ini_ファイルに次の行を追加しました。

_extension=php_openssl.dll
extension=php_ssh2.dll
_

apacheを再起動しましたが、まだ動作していません(Fatal error: Call to undefined function ssh2_connect())。

誰でもこのサービスのインストール方法を説明できますか?

ありがとう

ps:私はイタリア人です、私の英語がすみません...

18
LaYle

以下がその方法です。

  1. this location (適切なバージョンを選択)からWin32 SSH2 PECL拡張モジュールをダウンロードしました;

  2. アーカイブのコンテンツを抽出し、以下を行いました。

    • php_ssh2.dllおよびphp_ssh2.pdbファイルをextフォルダーに配置しました(例:C:\php\ext);
    • libssh2.dllファイルをC:\Windows\system32および(Win64を持っている場合)C:\Windows\SysWOW64フォルダーにコピーしました。
  3. 次のコマンドを実行して、DLLを登録します。

    C:\> regsvr32 libssh2.dll
    
  4. Apacheを再起動しました。

最終ノート

PHP x64の場合、x64バージョンのSSH2ライブラリ/ DLLを検索する必要があります。 このサイト は、 PHP、まずここで試してください。

お役に立てれば。

29
Alex B

SSH2のインストールで問題が発生した場合は、次のようにします。

1) PHP.net [適切なバージョンを選択]からSSH2 PECLライブラリをダウンロードします。

2)libssh2.dllSystem32[x86]またはSysWOW64[x64]フォルダーにコピーします。

3)php_ssh2.dllおよびphp_ssh2.pdbphp/extフォルダーにコピーします。

4)「;」を削除しますphp.iniの;extension=php_ssh2.dll行から。この行がphp.iniにない場合は追加してください。

5)Apacheを再起動します。

10
user2893097
  1. 場所 php_ssh2.dll extフォルダー
  2. 場所 libssh2.dll phpフォルダー
  3. 再起動IIS

それは私のために働く

  • PHP 5.4.25 NTS + Windows Server 2012
7
MrTeChId

Xamp 3.2.1とPHP 5.6.8を実行している場合、これはあなたに役立つでしょう。

Alex bが言ったことを実行し、このページからPHPバージョン(およびビット)に依存するパッケージをダウンロードします( link

C:\ xampp\php\extにダウンロードして置き換えたところ、うまくいきました!

よろしくお願いします。

4
Cristian B.

libssh2(deps): http://windows.php.net/downloads/php-sdk/deps/

php_ssh2(ext): http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

5.5より前のバージョンには、すでにlibssh2.dllがあります(2番目のリンクから)

3
lodev09

PHP 5.6.25/7.0.10 – MySQL 5.7.14がインストールされ、現在作業中のPHP 7.0。同じエラーが発生しました。 。librarires OpenSSLとlibssh2の両方が動作しているかどうかをphpinfo()で確認しました(確認方法はグーグルで確認できます)。動作していることが確認できたら、 http://pecl.php .net/package/ssh2/1.0/windows (7.0バージョンの場合は http://windows.php.net/downloads/pecl/releases/ssh2/ にもあります) php\extフォルダへ。extension= php_ssh2.dllを使用してphp.iniファイルに含めました。

その後、phpinfo()に登場しました。そしてそれは働いた。それが役に立てば幸い。

2
Maks Z.

私のために働いた修正。同じ問題に直面しているxampp v。3.2.1 Apache 2.2を実行している場合、dllファイルを別のc:場所に配置しようとしましたが、最終的には失敗しました。

1.) http://pecl.php.net/package/ssh2/0.12/windows からバージョン固有のdllファイルをダウンロードし、ファイルを抽出します

64ビットバージョンのWindowsを使用している場合でも、32バージョンのTHREAD SAFE ssh、つまりphpのバージョンごとにスレッドセーフ(TS)x86をダウンロードします

2.)C:\ xampp\phpでlibssh2.dllを追加/置換します(標準インストール)

3.)C:\ xampp\php\ext内のphp_ssh2.dllおよびphp_ssh2.pdbを追加/置換します(標準インストール)

4.)Apacheサーバーを再起動します

チャームのように働いた

乾杯

1
akashBhardwaj

まず第一に、あなたの質問は2つの誤解を明らかにします:

  1. Requirements セクションは実際にこれを言っています:

    "OpenSSLおよび"libssh2ライブラリが必要です。開発ライブラリがインストールされていることを確認します。通常のパッケージ名はopenssl-devです。

    PHP拡張機能のことではなく、PHPとは関係のないサードパーティのライブラリのことです。

  2. extension=php_ssh2.dllでは、PHPのextディレクトリにphp_ssh2.dllというファイルが実際に存在する必要がありますが、おそらくPHPにバンドルされていないため、おそらく存在しないでしょう。

インストール の章を確認すると、SSH2がPECL拡張機能であることがわかります。手順のリンクがいくつかありますが、重要な情報の要約を作成できます。

  • PHPインストールに一致するphp_ssh2.dllファイルが必要です。
  • PHPチームもPECLチームもそのようなファイルを配布しません。
  • PECL拡張機能をWindowsにインストールするのは困難です。 Cソースコードをダウンロードするか、Cコンパイラを入手して自分でファイルを作成するか、既にそれを行った人を見つける必要があります。

Googleがphp_ssh2.dllを探して関連性のあるものを見つけない限り、あなたはおそらく運が悪いと言いました。

0