上一次在ubuntu上搭建了svn,搭建步骤:svn搭建
这一次想通过浏览器http访问svn,首先除了需要svn外,还需要两个工具
apache2、libapache2-svn
安装apache2
sudo apt install apache2
sudo apt install libapache2-svn
测试是否安装成功:
sudo /etc/init.d/apache2 restart
启动后浏览器访问:http://localhost/
出现这个页面说明apache2正常安装apache2配置
sudo vim /etc/apache2/mods-available/dav_svn.conf
在文件末尾加上
<Location /svn>
DAV svn
SVNParentPath /home/svn
SVNAdvertiseV2Protocol Off
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svn/pwdfile
AuthzSVNAccessFile /home/svn/repos/conf/authz
Require valid-user
</Location>
<Location /svn> 这一行表示等下我们要访问的地址是localhost:/svn
SVNParentPath 表示svn的父路径,在svn搭建中,我建的仓库路径是/home/svn/project,project是一个仓库,在/home/svn这个路径下可以包含多个仓库
AuthUserFile 这个配置(跟svn的passwd文件不是同一个文件,svn跟apache的密码是分开的,权限文件则可以是同一个)是通过http访问的账号密码文件配置,由htpasswd的命令生成,命令如下(第一次生成这个文件是需要用 -c这个参数(表示create),生成文件后,再次添加其他账户时,去掉-c,这里添加了admin这个账户):
sudo htpasswd -c /home/svn/pwdfile admin
AuthzSVNAccessFile这个文件,则指向svn搭建中的权限文件
配置authz文件,把刚才生成的账号以及你想要赋予的权限写入authz文件中
sudo vim /home/svn/project/conf/authz
3.重启apache2,http访问svn
sudo /etc/init.d/apache2 restart
浏览器输入
http://localhost/svn/project/
由于刚才我配置的是
<Location /svn>
SVNParentPath /home/svn
</Location>
http访问时输入/svn,实际上访问的是/home/svn这个路径,但是这个路径只是父路径,没有版本库,所以/svn后面需要我们指定仓库名,上一章的仓库路径是/home/svn/project,这里只需要在/svn后面添加project这个仓库http://localhost/svn/project/ 然后输入账号密码就可以了
通过http访问成功!