0
当我在命令行中运行以下命令:SCP命令行和PHP的exec()不能做同样的事情
scp -i private.ppk -P 22 foo.txt [email protected]:/home/someuser/foo.txt
,一切工作正常。将foo.txt
传送到远程服务器没有任何问题。我需要从PHP运行完全相同的命令。所以,我有以下代码:
$command = 'scp -i private.ppk -P 22 foo.txt [email protected]:/home/someuser/foo.txt';
exec($command);
这是行不通的。 PHP文件正在与private.ppk
相同的目录中执行。当我var_dump
exec
的结果,我得到一个NULL
。
我想知道这是否是一个权限问题。我知道我在命令行上运行的是谁,但我不确定谁在运行脚本。这可能是问题吗?或者是完全不同的东西?
尝试使用完整的路径foo.txt的 – Rob 2013-04-23 02:40:30
OK,我做到了。这绝对是一个问题。不过,我仍然得到相同的结果。没有文件传输。 NULL是'exec'的结果。 – snoopy76 2013-04-23 02:48:35
我的脚本是作为'nobody'运行的。这会导致任何问题吗? – snoopy76 2013-04-23 02:52:28