Fopen через ssh2 sftp wrapper вызывает chrome ERR_EMPTY_RESPONSE

У меня возникают проблемы с загрузкой файла по SFTP. Вот мой код:

$connection = ssh2_connect("ftp.mysite.com", 22);
ssh2_auth_password($connection, "username", "password");
$sftp = ssh2_sftp($connection);
$file = "/full/path/to/file.txt";
$stream = fopen("ssh2.sftp://{$sftp}$file", "w+");

Все, что я получаю, это хром, говорящий

No data received
Error code: ERR_EMPTY_RESPONSE

Я сделал phpinfo() чтобы проверить, включена ли оболочка ssh2.sftp, и я это делаю. Я запускаю PHP v4.4.0 и libssh2 v1.2.7.

Мы ценим любые предложения!

1 ответ

Вы используете старую версию php. У вас есть какая-то особая причина, почему вы не можете обновить?

Бьюсь об заклад, проблема связана с тем, что вы запускаете такую старую версию. В свете этого у вас может быть больше успеха с phpseclib, чистой реализацией PHP SFTP. Вам понадобится PHP_Compat, чтобы он работал с php4, но при условии, что у вас есть установленный (и оба он, и phpseclib в include_path), он должен работать нормально.

образец кода:

<!--?php
include('Net/SFTP.php');

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

// puts a three-byte file named /full/path/to/file.txt on the SFTP server
$sftp->put('/full/path/to/file.txt', 'xxx');
?>

licensed under cc by-sa 3.0 with attribution.