J'ai des problèmes pour utiliser PHP pour SFTP télécharger des fichiers sur un serveur distant. Quand je CURL, je suis en train de l'erreur décrite ici:Comment SFTP télécharger des fichiers à partir de PHP
SFTP from PHP - undefined constant CURLOPT_PROTOCOLS and CURLPROTO_SFTP?
J'ai aussi essayé phpseclib comme le suggère:
Mais quand j'essaie phpseclib, je reçois ces erreurs :
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
Je puis essayé d'utiliser les commandes du système en php comme si, mais rien ne se passe:
<?php
echo system('sftp [email protected]');
echo system('password');
echo system('put file.csv');
?>
J'ai aussi essayé
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>
mais mon serveur php dit ss2_connect n'est pas défini.
J'ai essayé de faire ce qui suit du terminal
scp file.csv [email protected]
password
Mais le serveur ne permet pas la commande scp. Je n'ai pas d'accès shell pour créer des clés ssh.
Tout ce que je peux faire maintenant est sftp à partir du terminal et télécharger manuellement. Mais je veux vraiment automatiser cela afin qu'un site web PHP puisse faire tout cela.
Il n'y a pas beaucoup de tutoriels sur la façon de télécharger SFTP à partir de PHP. Est-ce parce que c'est une mauvaise chose à faire? Si oui, que devrais-je faire? Le serveur que je veux télécharger ne permet que les connexions sftp.
Le serveur sur lequel je travaille indique que ssh2_connect() n'est pas défini. En outre, l'hôte distant auquel je me connecte ne m'a pas permis de scp file.csv [email protected] – John
Ceci n'est probablement pas disponible par défaut. Vous avez besoin de l'extension PECL ssh2 avec libssh2. –