Jak przesyłać pliki SFTP z PHP

Mam problemy z używaniem PHP do przesyłania plików SFTP na zdalny serwer. Kiedy używam cURL, otrzymuję opisany tutaj błąd:

SFTP z PHP - niezdefiniowana stała CURLOPT_PROTOCOLS i CURLPROTO_SFTP?

Próbowałem również phpseclib, jak sugerowano w:

SFTP z poziomu PHP

Ale kiedy próbuję phpseclib, otrzymuję te błędy:

Warning: require_once(Math/BigInteger.php) [function.require-once]: failed to open stream: No such file or directory in /home/john/public_html/test/Net/SSH2.php on line 53

Fatal error: require_once() [function.require]: Failed opening required 'Math/BigInteger.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/john/public_html/test/Net/SSH2.php on line 53

Następnie próbowałem użyć poleceń systemowych w php tak, ale nic się nie stało:

<?php
echo system('sftp [email protected]');
echo system('password');
echo system('put file.csv');
?>

Próbowałem też

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

ale mój serwer php mówi, że ss2_connect nie jest zdefiniowany.

Próbowałem wykonać następujące czynności z terminala

scp file.csv [email protected]
password

Ale serwer nie zezwala na polecenie scp. Nie mam dostępu do powłoki do tworzenia kluczy ssh.

Wszystko, co mogę teraz zrobić, to sftp z terminala i ręczne przesyłanie. Ale naprawdę chcę to zautomatyzować, aby strona PHP mogła to wszystko zrobić.

Nie ma wielu samouczków na temat przesyłania SFTP z PHP. Czy to dlatego, że to złe? Jeśli tak, co powinienem robić? Serwer, który chcę przesłać, umożliwia tylko połączenia sftp.

questionAnswers(5)

yourAnswerToTheQuestion