Функции ssh2_scp_send() и ssh2_scp_recv() не работают в php. Зачем?
Функция ssh2_scp_send() висит в php. Вот код:
$debug_line_feed = "\n";
$conn = ssh2_connect($sftp_server, 22);
$return = ssh2_auth_password($conn, $sftp_user_name, $sftp_user_pass);
if ($return===true) echo "successfull connection".$debug_line_feed;
echo "uploading file".$debug_line_feed;
$local_filename = $product_feed_file_with_path;
$remote_filename = 'product_feed.txt';
ssh2_scp_send($conn, $local_filename, $remote_filename);
echo "echo "successful".$debug_line_feed;
Когда я запускаю его, он выводит "успешное соединение", "загрузка файла", а затем зависает. Есть идеи, как это исправить?
Я также попытался загрузить файл с помощью ssh2_scp_recv, и он также зависает, когда локальный файл создается в виде 0-байтового файла.
2 ответа
Решение
Я предполагаю, что на сервере установлена оболочка джейла. В этот момент SCP не будет работать, а SFTP будет работать.
В последнее время я использую sftp для отправки файла, Linux для Windows,ssh2_scp_send не работает, я решаю проблемы использования
$sftp = ssh2_sftp($conn);
$contents = file_get_contents($localPath);
$result = file_put_contents("ssh2.sftp://{$sftp}/{$remotePath}", $contents);
потом работает