exec/shell_exec PHP中的PSCP
我正在尝试使用SFTP通信将文件从一台服务器发送到另一台服务器 SO服务器来自:Windows服务器 所以服务器:我不知道: 为此,我只需运行: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
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