web-dev-qa-db-ja.com

PHP5.5 VC11NTSを使用してWindows ServerにSSH2をインストールする

過去数日間、私はPHPにSSH2接続をインストールすることに頭を悩ませてきました。

私の現在のセットアップはVC11非スレッドセーフであり、PECL Webサイトで適切なZipフォルダーをダウンロードしました: http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

正確なファイル名:php_ssh2-0.12-5.5-nts-vc11-x86.Zip、私が持っているバージョンの違いを完全に認識しているファイルをダウンロードする前にすべてをチェックしました、PHPは次のとおりです:

コンパイラMSVC11(Visual C++ 2012)

アーキテクチャx86

PHPExtensionビルドAPI20121212、NTS、VC11

したがって、正しいファイルがダウンロードされ、それらが正しいディレクトリ(C:\ PHP\ext)にあり、PHP.iniが正しいフォルダを指していることを確認できます。

今、この圧縮アーカイブに含まれています

ライセンス

php_ssh2.dll

php_ssh2.pbd

これらは正しいフォルダに配置され、存在しています。拡張機能は、次のphp.iniに正しく入力されます。

extension = php_mbstring.dll

extension = php_exif.dll; mbstringに依存するため、mbstringの後にある必要があります

extension = php_mysql.dll

extension = php_mysqli.dll

; extension = php_oci8.dll; Oracle10gR2インスタントクライアントで使用

; extension = php_oci8_11g.dll; Oracle11gR2インスタントクライアントで使用

extension = php_openssl.dll

; extension = php_pdo_firebird.dll

extension = php_pdo_mysql.dll

extension = php_ssh2.dll

しかし、Microsoft IISの起動後に問題が発生し、関数が未定義のように見えるため、C:\ PHP\php.exeを実行すると次のエラーが返されます。

Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_ssh2.dll' - The specified module could not be found. in Unknown on line 0

しかし、このメッセージが表示される前に..これは私に提示されます:

The program can't start because the libssh2.dll is missing from your computer. Try reinstalling the program to fix this problem

この拡張機能の古いバージョンで明らかなlibssh2.dllは、このZipドキュメントにはありません。C:\ WINDOWS\SYSTEM32に5.4ドキュメントの古いバージョンがあり、次のコマンドを実行して登録しています。

C:> regsvr32 libssh2.dll

コマンドプロンプトを介して。

この場合の質問のstackoverflowライブラリ全体で、いくつかの質問/回答で提案されている代替ライブラリがありますが、これらのライブラリを避けて、拡張機能を正しくインストールすることを検討しています。与えることができるアドバイス

2
Sophie Mackeral

それは少し遅い答えです。最近、php5.5でこの問題が発生しました。

解決

  • http://www.libssh2.org/ に移動してlibssh2.dllをダウンロードし、phpルートディレクトリに配置します。

  • 別のオプションは、php 5.4。*の1つを here から取得し、libssh2をZipファイルに含める必要があります。コピーするだけで、php5.4と5.5の両方と互換性があるはずです。しかし、なぜそれがphp 5.5に含まれていないのかわかりません!

3
Voltaire