我想用SFTP通信方式将文件从一个服务器发送到另一个服务器。
SO服务器 从:Windows服务器 Windows ServerSO服务器发往: 我不知道 :(
要做到这一点,我只需要运行:
pscp -i "MY_SSH_KEY.ppk" MY_FILE USER_FTP@URL_SERVER_TO_SEND:/PATH/TO/SEND
情况下,工作正常。
<?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);
但是,如果我从我的前台,使用ajax调用同一个PHP文件,它不工作。
注:要从cmd调用这个PHP文件,我使用这个命令。
php NAME_MY_FILE.php
非常感谢大家!
问题解决了。
当我用windows的CMD运行de php时,一切都很正常,因为CMD使用管理员用户运行命令。当我在网站上调用它时,PHP使用系统用户运行exec,而系统用户没有运行PSCP命令的权限。
当我给PHP服务权限以管理员身份运行时,执行就可以了。