ใน 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 เพื่อดูว่าอย่างน้อยฉันเห็นการเชื่อมต่อที่กำลังทำอยู่หรือไม่ และฉันเห็นข้อผิดพลาดในเบราว์เซอร์ (ด้านล่าง) ที่จาก googling อาจหมายถึงว่ามีการเชื่อมต่อเกิดขึ้นกับเซิร์ฟเวอร์ แต่ไม่มีการตอบสนอง
[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