過去数日間、私は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ライブラリ全体で、いくつかの質問/回答で提案されている代替ライブラリがありますが、これらのライブラリを避けて、拡張機能を正しくインストールすることを検討しています。与えることができるアドバイス
それは少し遅い答えです。最近、php5.5でこの問題が発生しました。
http://www.libssh2.org/ に移動してlibssh2.dllをダウンロードし、phpルートディレクトリに配置します。
別のオプションは、php 5.4。*の1つを here から取得し、libssh2をZipファイルに含める必要があります。コピーするだけで、php5.4と5.5の両方と互換性があるはずです。しかし、なぜそれがphp 5.5に含まれていないのかわかりません!