В PHP я даже не могу заставить работать SFTP-соединение. Я пытался использовать встроенную функциональность SFTP (ssh_connect), и мне не удалось подключиться. Я также пытался использовать phpseclib, но тоже не получается. Ни одна из моих вышеупомянутых попыток не предоставила много информации о журнале.
Родной код:
if (!function_exists('ssh2_connect')) {
echo "dll not loaded properly"; //never see this, so I know it works
return false;
}
$connection = ssh2_connect('sftp.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
код библиотеки phpseclib:
include('Net/SFTP.php');
$sftp = new Net_SFTP('sftp.example.com');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
Я также попытался отследить все транзакции через Fiddler, чтобы увидеть, вижу ли я, по крайней мере, установленное соединение, и я вижу ошибку в браузере (ниже), которая из-за поиска в Google может означать, что соединение с сервером было установлено, но нет откликов.
[Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 17139 bytes.
Почему я могу подключиться к URL-адресу с именем пользователя и паролем через FIleZilla, но не из php? Нужны ли мне другие библиотеки DLL в папке /ext PHP (например, php_openssl.dll и т. д.)?
Спасибо, Шон
print_r($sftp->getSFTPErrors());
перед выходом - person   schedule 12.07.2015ini_set('display_errors', 'On'); ini_set('html_errors', 0); error_reporting(-1);
- person   schedule 12.07.2015set_include_pat
перед включением. мой:set_include_path(get_include_path() . PATH_SEPARATOR . '/var/virtual/customers/XXX/html/update/phpseclib'); include ('/var/virtual/customers/XXX/html/update/phpseclib/Net/SFTP.php');
- person   schedule 14.07.2015