【发布时间】:2013-10-31 17:13:34
【问题描述】:
我在this 问题中遇到了同样的问题。如果我再解释一遍,我可以使用 rsync 将我的本地数据与服务器同步,而无需密码(我使用了 SSH 密钥)。但是当我在 PHP 中使用 exec() 函数时,它不起作用。
提出上述问题的人已经自己给出了答案。他说这可以通过允许 Apache 用户帐户无密码访问服务来完成。所以我的问题是如何为 Apache 用户帐户提供对服务器的无密码访问?
我的 PHP 代码是:
echo exec('rsync -aze --progress --size-only /var/tmp/src/File01 serveruser@mycloud.com.lk:/var/tmp/dest/File01');
PS:我使用我的典型用户帐户(假设用户名是'bob')登录我的机器,并使用 ssh-keygen -t rsa 生成 ssh 密钥。然后 bob 可以无密码访问服务器。
但是,当我运行 PHP 命令时,它在 Apache 中运行在 mod_php 下,并且通常 Apache 作为自己的用户帐户运行,独立于使用服务器的现实世界的人。因此,我生成的密钥不适用于 Apache 内的 PHP。
因此我尝试以 Apache 用户身份登录(我认为是 www-data)。但是大部分文章都说www-data默认没有密码,不能以www-data的身份登录。
谢谢。
【问题讨论】: