Php 如何设置SVN存储库;“在飞行中”;以编程方式?
我正在建立一个系统(基于PHP),它将允许用户立即提供一个SVN环境以供使用。这是一个内部项目,因此用户主要是内部用户Php 如何设置SVN存储库;“在飞行中”;以编程方式?,php,svn,Php,Svn,我正在建立一个系统(基于PHP),它将允许用户立即提供一个SVN环境以供使用。这是一个内部项目,因此用户主要是内部用户 我根本不知道从哪里开始。PHP是否有SVN绑定,或者我必须使用SVNconsole命令?让它执行svnadmin create repo name来创建repo。我不认为有任何库用于此,因为您通常只能找到客户端SVN库 只是提出一个建议,“供应”Git回购要简单得多。由于客户端和服务器之间没有区别,所以通过git库()等进行处理非常简单。当然,您可能只想要SVN回购,但如果您有
我根本不知道从哪里开始。PHP是否有SVN绑定,或者我必须使用
SVN
console命令?让它执行svnadmin create repo name
来创建repo。我不认为有任何库用于此,因为您通常只能找到客户端SVN库
只是提出一个建议,“供应”Git回购要简单得多。由于客户端和服务器之间没有区别,所以通过git库()等进行处理非常简单。当然,您可能只想要SVN回购,但如果您有选择,请选择git。这里有一种可能性。你在这里要走几步。首先,您需要在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>
DAV svn
SVNPath/var/svn/newproj
#AuthType Basic
#AuthName“SVN存储库”
#AuthUserFile/var/svn/${name}.passwd
#需要有效用户
然后重新启动Apache。为了安全起见,也可以创建newproj htpasswd文件。确保检查并清理所有传递的表单值($\u请求)。希望这能让你开始。+1回答得好。。。我克制住了对这个问题发表许多讽刺性评论/回答的冲动。如果你的sudo条目缺少NOPASSWD,我会的。