Ich habe Probleme mit PHP, um Dateien per SFTP auf einen entfernten Server hochzuladen. Wenn ich cURL verwende, erhalte ich den hier beschriebenen Fehler:
SFTP von PHP - undefinierte Konstanten CURLOPT_PROTOCOLS und CURLPROTO_SFTP?
Ich habe auch phpseclib ausprobiert, wie in vorgeschlagen:
Aber wenn ich phpseclib ausprobiere, bekomme ich diese Fehler:
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
Ich habe dann versucht, Systembefehle in php zu verwenden, aber es passierte nichts:
<?php
echo system('sftp user@ftp.domain.com');
echo system('password');
echo system('put file.csv');
?>
Ich habe auch versucht
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>
aber mein php-Server sagt ss2_connect ist nicht definiert.
Ich habe versucht, im Terminal folgendes zu tun
scp file.csv user@ftp.remote.com
password
Aber der Server lässt den Befehl scp nicht zu. Ich habe keinen Shell-Zugang, um ssh-Schlüssel zu erstellen.
Alles, was ich im Moment tun kann, ist sftp vom Terminal aus und manuelles Hochladen. Aber ich möchte wirklich, dies zu automatisieren, so dass eine PHP-Website all dies tun kann.
Es gibt nicht viele Anleitungen für den SFTP-Upload mit PHP. Liegt es daran, dass es eine schlechte Sache ist? Wenn ja, was sollte ich dann tun? Der Server, auf den ich hochladen möchte, lässt nur SFTP-Verbindungen zu.