Debian/Kali下Subversion的配置

20190624记录

本来想用Nginx直接搞subversion,然后发现nginx不支持,好像是缺少对dav什么的支持

于是用apache搞,然后再用nginx反向代理

安装不再记了,电脑自带nginx和apache,subversion用apt都能装

操作系统Kali2

一、配置Subversion

首先配置subversion,至少svn协议能跑起来再说下一步

我把库建在/srv/svn目录下

一个项目准备放在/srv/svn/demo1里面 建立目录不说了

建完之后 命令 svnadmin create /srv/svn/demo1

其他选项我用不到 用这个就够了

然后修改配置,添加用户,设置权限

1、vi /srv/svn/demo1/conf/svnserve.conf

anon-access = none 这个是设置匿名用户权限 默认是read 也就是只读 设置成none就是禁止访问
auth-access = write 这个是设置认证用户的权限 肯定要设置成write 就是可以写入

password-db = passwd 这个是设置认证方式 一般密码认证就够了 这个密码明文保存在文件里 也就是同目录下的passwd文件

authz-db = authz 这个是设置权限 跟上面一样

2、vi /srv/svn/demo1/conf/passwd

在[users]下面添加记录 一个用户一行 格式为 <用户名> = <密码>

3、vi /srv/svn/demo1/conf/authz

我承认我很懒 我在最下面添加的一个

[/]

admin = rw

* = r

意思就是根目录权限

admin用户 权限为读写

其他用户 权限为只读

这里的用户在passwd里面必须要有

 

配置完了之后 启动svnserve

命令 svnserve -d -r /srv/svn/demo1

-d 后台运行 -r 指定目录

如果有防火墙要开放3690端口

然后软件通过svn://<你的IP地址>/ 访问 不要用浏览器 浏览器不支持svn协议

输入用户名和密码 如果成功了 就可以做下一步了

二、配置Apache2

我的系统自带apache2,但是不自带svn支持,需要下载

apt install libapache2-mod-svn

装完之后在apache2的目录下 /etc/apache2 的mods-enabled里面 应该有几个文件

authz_svn.load

dav_svn.conf

dav_svn.load

如果没有的话去mods-available里面看看 如果有的话建立软链接过来

然后编辑dav_svn.conf

注意 这里我只列出了我修改的地方 即解除注释或者添加
<Location /svn>
  DAV svn
  SVNParentPath /srv/svn
  SVNListParentPath on 注意 这行是我添加的
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd 注意 这个文件需要自己创建
  AuthzSVNAccessFile /etc/apache2/dav_svn.authz 注意 这个文件需要自己创建
  Require valid-user
</Location>
以下也是我添加的
<Directory "/srv/svn">
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
  Satisfy all
</Directory>

改完之后保存

然后配置用户

htpasswd -c /etc/apache2/dav_svn.passwd <用户名>

然后会让你输入两次密码

如果再加用户就不用-c选项

htpasswd /etc/apache2/dav_svn.passwd <用户名>

这样就可以

配置权限

vi /etc/apache2/dav_svn.passwd

[demo1:/]
admin = rw
* = r

其实这里和subversion的权限一样

因为我在apache2里面配置的svn是根目录 不是那个demo1 所以没有直接写[/]

到这里apache2的配置也完成了

重启apache2服务

service apache2 restart

如果没报错 则配置正确

浏览器打开http://localhost:81/svn

认证之后应该会显示

Collection of Repositories

  • demo1/

Powered by Apache Subversion version 1.10.4 (r1850624).

到这里apache2的配置就完成了

 

三、配置Nginx转发Apache

因为我觉得还是nginx用的顺手 80也给nginx用的 于是就把apache的端口换成了81

apache端口在/etc/apache/ports.conf里面配置

修改 Listen 81

修改Nginx的配置文件

vi /etc/nginx/sites-enabled/default

在server段的里面添加

    location /svn {
        proxy_pass http://localhost:81;
    }

要注意 我的default文件是默认的 没有修改过

他的网站根目录在/var/www/html

他监听80端口

他的server_name是_ 对 就是个下划线

启动nginx服务

service nginx restart

然后再用浏览器访问http://localhost/svn

如果和刚才81端口访问的效果一样 那么配置完成

上一篇:UOS系统修改分辨率


下一篇:python安装