Процесс установки для phpseclib 2.0 не работает - PullRequest
0 голосов
/ 15 мая 2019

При установке phpseclib-2.0 кажется, что композитор не создает правильную структуру каталогов

Я пытаюсь установить phpseclib-2.0 на свой рабочий сервер Linux. У меня 1.07 установлена ​​рабочая на другом, но я хочу довести рабочий сервер до 2.0.
Для установки выполните следующие шаги:
1.) Я скачал и распаковал библиотеку в phpseclib-2.0 /
2.) Скопировал эту папку вендору / в папку моего приложения
3.) перейдите к продавцу / phpseclib-2.0
4.) выполнить установку композитора

Полученная структура поставщик - phpseclib-2.0
vendor - phpseclib-2.0 - phpseclib (включает в себя Crypt, File, Math, Net, System)
vendor - phpseclib-2.0 - vendor (вот где закончился композитор и загруженный файл)

Это код, который я использую для тестирования:

require __DIR__ . '/vendor/phpseclib-2.0/vendor/autoload.php';
use phpseclib\Net\SFTP;

$connection = ssh2_connect($FTP_URI, 22);
if (!$ssh->login(username, password)) {
    exit('Login Failed');
}

echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');

Я ожидаю, что это даст мне список каталогов.

Что я получаю:
Неустранимая ошибка PHP: вызов неопределенной функции ssh2_connect ()

Обратите внимание, что тест выполняется с: php -f sshtest.php

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 16 мая 2019
$connection = ssh2_connect($FTP_URI, 22);

Это не определено в phpseclib. Это расширение PECL ssh2.

Вот что вам нужно сделать, чтобы заставить эту работу работать с phpseclib:

require __DIR__ . '/vendor/phpseclib-2.0/vendor/autoload.php';
use phpseclib\Net\SFTP;

$connection = new SFTP($FTP_URI, 22);
if (!$ssh->login(username, password)) {
    exit('Login Failed');
}

echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
...