Mengapa SFTP melalui PHP gagal, tetapi berhasil di FileZilla di mesin Windows 8.1 saya?

Di PHP, saya bahkan tidak bisa membuat koneksi SFTP berfungsi. Saya telah mencoba menggunakan fungsionalitas SFTP asli (ssh_connect), dan gagal terhubung. Saya juga sudah mencoba menggunakan phpseclib, tetapi gagal juga. Tak satu pun dari upaya saya yang disebutkan di atas memberikan banyak informasi log.

Kode asli:

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);

kode perpustakaan phpseclib:

include('Net/SFTP.php');

$sftp = new Net_SFTP('sftp.example.com');
if (!$sftp->login('username', 'password')) {
    exit('Login Failed');
}

Saya juga telah mencoba melacak semua transaksi melalui Fiddler untuk melihat apakah saya setidaknya melihat koneksi dibuat, dan saya melihat kesalahan di browser (di bawah) yang dari googling mungkin berarti koneksi dibuat ke server, tapi tidak ada tanggapan.

[Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 17139 bytes. 

Mengapa saya dapat terhubung ke URL dengan nama pengguna dan kata sandi melalui FIleZilla, tetapi tidak dari dalam php? Apakah saya memerlukan DLL lain di folder /ext PHP (misalnya php_openssl.dll, dll.)?

Terima kasih, Sean


person Sean Charles    schedule 12.07.2015    source sumber
comment
saya menggunakan phpseclib untuk debugging: tambahkan print_r($sftp->getSFTPErrors()); sebelum keluar   -  person    schedule 12.07.2015
comment
Saya belum mencoba getSFTPErrors(), namun saya telah mencoba menampilkan $sftp-›getLog(). Saya mencoba getSFTPErrors() dan sama seperti getLog(), tidak ada yang dikembalikan.   -  person Sean Charles    schedule 12.07.2015
comment
pemeriksaan kesalahan reguler penuh?   -  person    schedule 12.07.2015
comment
Pertanyaan bagus. Saya tidak yakin. Di bagian atas fungsi saya, saya memiliki ini: mendefinisikan('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX); // NET_SFTP_LOG_COMPLEX atau NET_SFTP_LOG_SIMPLE   -  person Sean Charles    schedule 12.07.2015
comment
aku berpikir seperti ini: ini_set('display_errors', 'On'); ini_set('html_errors', 0); error_reporting(-1);   -  person    schedule 12.07.2015
comment
Terima kasih @Dagon. Setidaknya saya menerima beberapa pesan kesalahan sekarang. Meskipun saya tidak begitu yakin bagaimana cara memperbaikinya. Kesalahan PHP tak terduga [Tidak ditemukan algoritma enkripsi server ke klien yang kompatibel] tingkat keparahan [1024] di [C:\dev\php\workspace\phpseclib\Net\SSH2.php baris 1266] Ada ide tentang cara aktifkan algoritma enkripsi yang sesuai?   -  person Sean Charles    schedule 14.07.2015
comment
saya yakin itu berarti file tersebut tidak disertakan dengan benar.   -  person    schedule 14.07.2015
comment
Ya, sejauh ini penelitian google saya juga menemukan hal itu. Secara khusus ada laporan bahwa file /Crypt/RC4.php tidak disertakan dengan benar, tapi saya sudah memasukkannya, dan saya mengalami masalah yang sama. Saya akan terus menggali dan melihat apakah saya tidak bisa kembali dan memberikan perbaikan untuk generasi mendatang.   -  person Sean Charles    schedule 14.07.2015
comment
@Dagon, saya menggunakan PHP versi 5.3.3, dan dari apa yang saya tahu dari dokumentasi phpseclib, saya boleh menggunakan perpustakaan apa adanya. Jadi saya telah menyertakan beberapa file perpustakaan di atas, seperti: require_once($GLOBALS['codedir'] . /phpseclib/Crypt/RC4.php); Haruskah saya menyertakan file tersebut dengan cara lain?   -  person Sean Charles    schedule 14.07.2015
comment
coba tambahkan set_include_pat sebelum menyertakan. milikku: 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
comment
Luar biasa, saya bisa menghubungkannya, lalu mengunggah file. Saya tidak yakin bagaimana memberi Anda penghargaan atas jawaban gabungan Anda (beri tahu saya jika ada cara), tapi terima kasih atas semua bantuannya!!   -  person Sean Charles    schedule 14.07.2015
comment
senang itu berhasil, beruntung saja saya telah menggunakan perpustakaan itu untuk sebuah proyek - Anda dapat menulis jawaban (bahkan yang singkat) untuk orang lain yang mencari   -  person    schedule 14.07.2015
comment
@Dagon Saya mengalami masalah yang sama. Tetapi mengatur jalur file yang disertakan tidak berfungsi untuk saya. Jadi bisakah Anda membimbing saya?   -  person Anandharaman Buvaneswaran    schedule 31.12.2016