У меня проблемы с использованием PHP для загрузки файлов по SFTP на удаленный сервер. Когда я использую cURL, я получаю сообщение об ошибке, описанное здесь:
SFTP из PHP - неопределенные константы CURLOPT_PROTOCOLS и CURLPROTO_SFTP?
Я также попробовал phpseclib, как предлагается в:
Но когда я пробую phpseclib, я получаю следующие ошибки:
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
Затем я попытался использовать системные команды в php, но ничего не произошло:
<?php
echo system('sftp [email protected]');
echo system('password');
echo system('put file.csv');
?>
Я тоже пробовал
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>
но мой php-сервер говорит, что ss2_connect не определен.
Я пытался сделать следующее с терминала
scp file.csv [email protected]
password
Но сервер не разрешает команду scp. У меня нет доступа к оболочке для создания ключей ssh.
Все, что я могу сделать прямо сейчас, это sftp с терминала и вручную загрузить. Но я действительно хочу автоматизировать это, чтобы веб-сайт PHP мог все это делать.
Учебников по загрузке SFTP с PHP не так много. Потому что это плохо? Если да, то что мне делать? Сервер, на который я хочу загрузить, разрешает только sftp-соединения.