Я следовал инструкциям здесь: PHP установить SSH2 на машине Windows среди других мест.
Обратите внимание, что я на работе и не могу изменить эту среду разработки.
С помощью
if (extension_loaded('ssh2'))
Я вижу, что расширение не было загружено.
Я попытался использовать файлы TS и NTS отсюда: http://windows.php.net/downloads/pecl/releases/ssh2/0.12/ за PHP 5.3
(Я версии 5.3.5).
Я разместил php_ssh2.dll
а также php_ssh2.pdb
файлы в правильной папке ext для PHP
(Я подтвердил, что это правильная папка ext, использующая phpinfo()
команда).
я добавил extension=php_ssh2.dll
в файл php.ini, снова убедившись, что это правильный INI-файл, используя phpinfo()
команда
я добавил libsshl2.dll
как для syswow64
а также system32
папки
Когда я пытаюсь зарегистрировать любой из тех, кто использует запросы командной строки, это не удается, но другой вопрос мне сказал, что это libssh2.dll is not a COM server so cannot be registered
— Как мне зарегистрировать php dll в windows, если это 64-битные Windows, но 32-битные php и apache? Я попытался запустить команды от имени администратора
Apache
был перезапущен В журнале ошибок ничего нет.
Пожалуйста, помогите, вырвав мне волосы над этим
Честно говоря, я думаю, что вам будет лучше с phpseclib. libssh2 общеизвестно сложно использовать. он не очень хорошо поддерживается и даже не так упакован, как phpseclib. больше информации о преимуществах phpseclib над libssh2:
http://phpseclib.sourceforge.net/ssh/compare.html
пример:
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>
Посмотрите на этот ответ.
Похоже, что для каждой версии php у вас будет именно та версия ssh2. Вы не можете запустить dsh ssh2, если он не собран с этой версией php
Так что проверьте версию, обратите внимание, что есть две ссылки для скачивания, для 32 или 64.
https://stackoverflow.com/a/16480426