2013-03-28 27 views
0

我试图运行此execPHP的exec SVN出口

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 

当我试图脚本它根本不导出文件(folde使用另一个函数创建,所以那里有一个。)

但是如果我尝试运行svn导出为用户www-data(从命令行)它的工作原理。

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

编辑 完整路径还试图SVN(这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 

仍没有更改,文件不会被导出。

回答

0

找到解决方案, 该问题与不让exec运行的全局变量有关。

0

这不是配置。或者说,不直接。您的PHP实例似乎被设置为无法写入您指定的文件夹的用户。它可以是chmodchown它可以写入PHP所运行的用户的东西。

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

+0

Checed the use(with exec('whoami'))并且是** www-data **,这个文件夹对于www-data是chown,并且有777个chmod,所以我不认为这取决于这个(也因为从终端执行命令如www-data按预期工作) – Easly

+0

'posix_getpwuid(posix_geteuid())'将返回包含所有有效用户信息的assoc数组。 'name'就是你所追求的。 –

+0

也使用你建议的命令返回www-data作为用户,所以不应该有任何问题 – Easly