次のように、scp を使用してリモート サーバーにファイルを転送します。
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
ほとんどのサーバーでは、これで問題なく動作します。ただし、1 つのリモート サーバーで、転送されたファイルに問題があり、不完全であるとマークされています。
Files sent with ssh2_scp_send() are incomplete on remote server で解決策を見つけました。
追加するしかなかった
ssh2_exec($connection, 'exit');
ただし、この変更を行った後、他の一部のリモート サーバーは終了コマンドをサポートしていないようです。これにより、php 警告が表示されます。
PHP Warning: ssh2_exec(): Unable to request command execution on remote host in FILE.php on line XX
誰もこの問題の解決策を知っていますか? 明らかに、警告を無視または抑制できます。ただし、特にコードの残りの部分が通知されていないため、これはどういうわけか間違っているように感じます。