来自PHP exec的SVN用户奇怪()

时间:2012-08-14 00:43:09

标签: php apache svn

我正在运行通过exec()调用脚本的PHP代码。此脚本在没有指定用户的情况下运行svn commit命令。运行此脚本的用户(让我们称他为NICK)(通过致电whoami进行验证)在~/.subversion下有一个证书,该证书在~/.subversion/servers中使用ssl-client-cert-file选项指定。此证书文件附加了一个用户名(通过输出证书的内容like so看到)。

当通过NICK的crontab上的cron作业调用此脚本时,提交的SVN作者与我之前提到的证书中的作者相同。但是当通过PHP的exec()函数调用相同的脚本时,提交的作者是另一个用户。我不能在我的生活中弄清楚为什么要使用其他用户。我尝试过使用--username选项提交命令,我也尝试使用svn propset svn:author无效。有谁知道为什么会这样? PHP / Apache使用不同的证书吗?任何有关正在发生的事情或如何改变这种行为的信息将不胜感激。

2 个答案:

答案 0 :(得分:0)

您是否尝试过在exec中使用sudo命令前缀?

exec('sudo -u nick ./path/to/script');

答案 1 :(得分:0)

Apache通常配置为无人运行。如果从浏览器调用脚本。它将在用户apache配置为。

时运行