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, и он сработает!

Надеюсь, что это поможет, приветствует.

Ответ 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 и не найдете что-то актуальное, вам, вероятно, не повезло.