PHP Установить SSH2 на компьютере с Windows
Я пытаюсь установить этот на машине Windows+Apache
.
Документация говорит, что SSH2 требует библиотеки OpenSSL
и libssh2
.
Я добавил эти строки в мой файл php.ini
:
extension=php_openssl.dll
extension=php_ssh2.dll
и перезапустил Apache, но он все еще не работает (Fatal error: Call to undefined function ssh2_connect()
).
Кто-нибудь может объяснить мне, как установить эту службу?
Спасибо
ps: я итальянский, извините за мой английский...
Ответы
Ответ 1
Вот как я это сделал:
-
Загружено расширение Win32 SSH2 PECL из это местоположение
(выберите соответствующую версию);
-
Извлечено содержимое архива и:
- размещены
php_ssh2.dll
и php_ssh2.pdb
файлы в папке ext
(например, C:\php\ext
);
- скопирован
libssh2.dll
файл на C:\Windows\system32
и (если у вас есть Win64) C:\Windows\SysWOW64
папка (ы);
-
Выполните следующую команду для регистрации DLL:
C:\> regsvr32 libssh2.dll
-
Перезапуск Apache.
Заключительная записка
Если у вас есть PHP x64, вам нужно искать версию 64 библиотеки SSH2 или DLL.
Этот сайт предлагает некоторые компилируемые библиотеки Win64 для PHP, сначала попробуйте здесь.
Надеюсь, что это поможет.
Ответ 2
Если у кого-то возникают проблемы с установкой SSH2, вот как я это сделал:
1) Загрузите библиотеку SSH2 PECL с PHP.net [выберите подходящую версию].
2) Скопируйте libssh2.dll
в папку System32 [x86] или SysWOW64 [x64].
3) Скопируйте php_ssh2.dll
и php_ssh2.pdb
в папку php/ext.
4) Удалить ';' из строки ;extension=php_ssh2.dll
в php.ini. Если этой строки нет в вашем php.ini, добавьте ее.
5) Перезапустите Apache.
Ответ 3
- Поместите
php_ssh2.dll
в папку ext
- Поместите
libssh2.dll
в папку php
- Перезагрузка
IIS
которые работают для меня
-
PHP 5.4.25 NTS + Windows Server 2012
Ответ 4
Если вы используете xamp 3.2.1 и PHP 5.6.8, это может быть полезно для вас.
Сделайте то, что сказал alex b, и загрузите пакет, который соответствует зависимости вашей версии php (и битов) от этой страницы (ссылка)
Я загрузил и заменил в C:\xampp\php\ext, и он сработает!
Надеюсь, что это поможет, приветствует.
Ответ 5
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(со второй ссылки)
Ответ 6
У меня есть wamp с PHP 5.6.25/7.0.10 - установлен MySQL 5.7.14, и я сейчас работаю над PHP 7.0. У меня была такая же ошибка. Я проверил использование phpinfo(), если работали оба библиотекаря OpenSSL и libssh2 (вы можете Google проверить, как это проверить). После того, как я увидел, что они работают, я загрузил php_ssh2.dll в http://pecl.php.net/package/ssh2/1.0/windows (также можно найти http://windows.php.net/downloads/pecl/releases/ssh2/) для версии 7.0, поместите его в папку php\ext. Затем я включил его в файл php.ini с помощью расширения = php_ssh2.dll.
Затем он появился в phpinfo(). И это сработало. Надеюсь, что это поможет.
Ответ 7
Исправьте, что сработало для меня. Я запускаю xampp v. 3.2.1 apache 2.2, столкнувшись с одной и той же проблемой, попытался поместить файлы dll в другое место c: но не удалось, наконец, это помогло.
1.) Загрузите файлы определенной версии DLL из http://pecl.php.net/package/ssh2/0.12/windows и извлеките файлы
Обратите внимание, что даже если вы в 64-битной версии Windows загрузите 32 версию THREAD SAFE ssh i.e Thread Safe (TS) x86 в соответствии с вашей версией php
2.) Добавьте/замените libssh2.dll на C:\xampp\php (стандартная установка)
3.) Добавьте/замените php_ssh2.dll и php_ssh2.pdb в C:\xampp\php\ext (стандартная установка)
4.) перезапустите сервер Apache
Работал как шарм
CHEERS
Ответ 8
Прежде всего, ваш вопрос раскрывает два неправильных представления:
-
Раздел Requirements на самом деле говорит следующее:
Требуются библиотеки OpenSSL и libssh2. Убедитесь, что библиотеки разработки, где типичное имя пакета может быть openssl-dev.
Речь идет не о расширениях PHP, а о сторонних библиотеках, которые не имеют никакого отношения к PHP.
-
extension=php_ssh2.dll
требует, чтобы у вас на самом деле был файл с именем php_ssh2.dll
в вашем каталоге PHP ext
, и, вероятно, у вас его нет, в основном потому, что он не связан с PHP.
Если мы проверим главу Installation, мы можем прочитать, что SSH2 является расширением PECL. Есть несколько ссылок с инструкциями, но я могу сделать сводку важной информации:
- Вам нужен файл
php_ssh2.dll
, который соответствует вашей установке PHP.
- Ни команда PHP, ни команда PECL не распространяют такой файл.
- Устанавливать расширения PECL в Windows сложно. Вам нужно загрузить исходный код C, захватить компилятор C и сделать файл самостоятельно или найти того, кто уже сделал это для вас.
Сказал, что, если вы не используете Google для php_ssh2.dll
и не найдете что-то актуальное, вам, вероятно, не повезло.