exec/shell_exec PHP中的PSCP

exec/shell_exec PHP中的PSCP,php,ajax,exec,sftp,shell-exec,Php,Ajax,Exec,Sftp,Shell Exec,我正在尝试使用SFTP通信将文件从一台服务器发送到另一台服务器 SO服务器来自:Windows服务器 所以服务器:我不知道: 为此,我只需运行: 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: 非常感谢大家 问题解决了 当我使用wind

我正在尝试使用SFTP通信将文件从一台服务器发送到另一台服务器

SO服务器来自:Windows服务器 所以服务器:我不知道:

为此,我只需运行:

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: 非常感谢大家

问题解决了

当我使用windows的CMD运行de-php时,一切正常,因为CMD使用administrator user运行命令。当我通过网站调用它时,PHP使用没有运行PSCP命令权限的系统用户运行exec


当我授予PHP服务以管理员身份运行的权限时,执行是有效的。

可能需要一个或多个完整路径c:\path\to\pscp,也可能是ppk。这不起作用,请您的问题描述在运行代码时具体发生了什么。你收到错误信息了吗?他们怎么说?不要使用pscp,而是使用PHPSSSH库,比如phpseclib或PHPSH2模块。
<?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 NAME_MY_FILE.php