我正在建立一个系统(基于PHP),允许用户立即配置SVN环境以供使用。这是一个内部项目,因此用户主要是内部用户。
我没有最模糊的想法,甚至从哪里开始。是否有PHP的SVN绑定,或者我将不得不使用svn
控制台命令?
答案 0 :(得分:3)
这是一种可能性。你在这里有几个步骤。首先,您需要在PHP动作脚本中创建svn repo,可能类似于:
$name = $_REQUEST['name'];
// gonna need some sanity checking on $name here. no '..', no '/'s, etc
$cmd = 'svnadmin create ' . escapeshellarg('/var/svn/' . $name) . ' --fs-type fsfs';
exec('sudo ' . $cmd, $output, $exitValue);
if ($exitValue != 0) {
// put the error message on the session, redirect out
}
$cmd = 'chown -R apache:apache ' . escapeshellarg('/var/svn/' . $name);
exec('sudo ' . $cmd, $output, $exitValue);
// error handling again
您需要设置sudo以允许您的Web服务器运行该svnadmin命令。然后你需要在/etc/httpd/conf.d中输入一个新的apache .conf片段:
<Location /$name>
DAV svn
SVNPath /var/svn/newproj
#AuthType Basic
#AuthName "SVN Repository"
#AuthUserFile /var/svn/${name}.passwd
#Require valid-user
</Location>
并重启Apache。也许为安全性创建newproj htpasswd文件。请务必检查并清理所有传递的表单值($ _REQUEST)。希望这能让你开始。
答案 1 :(得分:0)
让它执行svnadmin create reponame
来创建回购。我认为没有任何库可用,因为您通常只能找到客户端SVN库。
只是提出建议“配置”Git repos要简单得多。由于客户端和服务器之间没有区别,因此通过git库(http://code.google.com/p/git-php/)等进行处理非常简单。当然你可能只想要SVN回购,但是如果你有选择,那就去找git。