Установка SSH2 на Windows Server с использованием PHP5.5 VC11NTS
Последние несколько дней я ломал голову над установкой SSH2-соединения на PHP.
Моя текущая настройка - VC11, не ориентированная на многопотоковое исполнение. Я загрузил соответствующие zip-папки на веб-сайте PECL: 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 Build API20121212, NTS, VC11
Итак, правильные файлы были загружены, я могу подтвердить, что они находятся в правильном каталоге (C:\PHP\ext), а PHP.ini указывает на правильную папку.
Теперь в этот сжатый архив входит
ЛИЦЕНЗИЯ
php_ssh2.dll
php_ssh2.pbd
Они были помещены в правильную папку и существуют. Расширения правильно вводятся в php.ini, который выглядит следующим образом:
расширение = php_mbstring.dll
extension = php_exif.dll; Должно быть после mbstring, так как это зависит от него
расширение =php_mysql.dll
расширение = php_mysqli.dll
; extension = php_oci8.dll; Использовать с Oracle 10gR2 Instant Client
; extension = php_oci8_11g.dll; Использовать с Oracle 11gR2 Instant Client
расширение = php_openssl.dll
; Расширение =php_pdo_firebird.dll
расширение =php_pdo_mysql.dll
расширение =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
В этом zip-документе отсутствует libssh2.dll, что очевидно в более старых версиях этого расширения, у меня есть более старая версия из документа 5.4 в C:\WINDOWS\SYSTEM32, и я зарегистрирован с помощью:
C:> regsvr32 libssh2.dll
через командную строку.
Несмотря на то, что есть альтернативные библиотеки, предложенные по ряду вопросов / ответов из библиотеки вопросов о стеке в этом случае, я стараюсь избегать этих библиотек и правильно устанавливать расширение. Любой совет, который можно дать
1 ответ
Это немного поздний ответ. Недавно я столкнулся с этой проблемой с php 5.5.
Решение
Перейдите по http://www.libssh2.org/, загрузите libssh2.dll и поместите в корневой каталог php.
Другой вариант - получить один из php 5.4.* Отсюда, и libssh2 должен быть включен в zip-файл. Просто скопируйте его, и он должен быть совместим с php 5.4 и 5.5. Не уверен, почему он не включен в php 5.5, хотя!