【发布时间】:2020-06-10 13:44:48
【问题描述】:
我正在尝试使用 SFTP 通信将文件从一台服务器发送到另一台服务器。
SO 服务器来自:Windows 服务器 SO Server To: 我不知道 :(
为此,我只需要运行:
pscp -i "MY_SSH_KEY.ppk" MY_FILE USER_FTP@URL_SERVER_TO_SEND:/PATH/TO/SEND
工作正常的情况:
- 在 windows 中通过 CMD 运行此命令;
- 将此命令放入PHP文件中的exec函数中,并使用cmd调用此PHP文件; PHP 文件中的 Conde:
<?php
$command = 'pscp -i "MY_SSH_KEY.ppk" MY_FILE USER_FTP@URL_SERVER_TO_SEND:/PATH/TO/SEND && echo success || echo error';
$result = "";
exec($command,$result);
echo json_encode($result,JSON_PRETTY_PRINT);
但是,如果我从前面调用同一个 PHP 文件,使用 ajax,它就不起作用。
注意:要从 cmd 调用这个 PHP 文件,我使用这个命令:
php NAME_MY_FILE.php
非常感谢各位!
【问题讨论】:
-
可能需要完整路径来处理一件或多件事情
c:\path\to\pscp,也可能需要ppk。 -
“它不起作用” 请edit您的问题描述运行代码时具体发生的情况。您收到错误消息吗?他们说什么?
-
不要使用 pscp,而是使用 PHP SSH 库,例如 phpseclib 或 PHP SSH2 模块。
标签: php ajax exec sftp shell-exec