0

我正在尝试运行这个 exec

exec('svn export -r '.$rev2.' '.$repourl.'/'.$dir.$parts[$j].' cache/diff/'.$dir.$parts[$j]);

这等于:

svn export -r 1192 file:///var/svn/Repo/folder/file.xml cache/diff/folder/file.xml

当我尝试脚本时,它根本不会导出文件(文件夹是用另一个函数创建的,所以有一个。)

但如果我尝试以用户 www-data (从命令行)运行 svn 导出,它可以工作。

所以我不明白为什么它不应该从 php.. 也许一些配置?希望有人可以提供帮助,在此先感谢

编辑 还尝试了 svn (which svn) exec 的完整路径:

exec('/usr/bin/svn export -r '.$rev2.' '.$repourl.'/'.$dir.$parts[$j].'

结果

/usr/bin/svn export -r 1192 file:///var/svn/Repo/folder/file.xml cache/diff/folder/file.xml

仍然没有变化,文件没有被导出。

4

2 回答 2

0

这不是配置。或者更确切地说,不是直接的。您的 PHP 实例似乎设置为无法写入您指定的文件夹的用户。PHP运行的用户可以写入的任何一个chmod或它。chown

旁注:我为 laravel 编写了一个 SVN 库。但是,它是独立的。您可能想通过使用它来减轻负担 - 它本身使用 PECL SVN 扩展。

于 2013-03-28T11:54:06.110 回答
0

找到了解决方案,问题与不允许执行运行的全局变量有关。

于 2013-03-28T14:45:02.070 回答