• 欢迎访问VPS岛网站,国外VPS,国内VPS,国外服务器,国内服务器,服务器主机,测评及优惠码,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站 QQ群

ubuntu上搭建svn+apache服务器

Apache技术 yaoliang833 20次浏览 已收录 0个评论

本次试用的linux发行版是Ubuntu 12.04.5 LTS

yaoliang@node2:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 12.04.5 LTS
Release:	12.04
Codename:	precise

需要安装的环境:

apache2

subversion

libapache2-svn


1、安装svn

yaoliang@node2:~$ sudo apt-get install subversion

2、创建仓库

yaoliang@node2:~$ sudo mkdir /srv/svn
yaoliang@node2:~$ cd /srv/svn
yaoliang@node2:/srv/svn$ sudo svnadmin create repos
yaoliang@node2:/srv/svn$ sudo tree -L 2
.
└── repos
    ├── conf
    ├── dav
    ├── db
    ├── format
    ├── hooks
    ├── locks
    └── README.txt

6 directories, 2 files

3、修改配置文件

yaoliang@node2:/srv/svn$ cd repos/conf/
yaoliang@node2:/srv/svn/repos/conf$ ls
authz  passwd  svnserve.conf
yaoliang@node2:/srv/svn/repos/conf$ sudo vim svnserve.conf 
[general]                                    
anon-access = none                           # 匿名用户权限改为none
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository


yaoliang@node2:/srv/svn/repos/conf$ sudo vim passwd
[users]
admin = admin                                # 使用明文的方式存放账号和密码


yaoliang@node2:/srv/svn/repos/conf$ sudo vim authz
[groups]                                                 
admin = admin                                # 将admin用户加到admin组中
[/] 
@admin = rw                                  # admin组的权限为读写
* = r                                        # 其他权限为只读

4、测试

yaoliang@node2:/srv/svn/repos/conf$ sudo svnserve -d -r /srv/svn
yaoliang@node2:/srv/svn/repos/conf$ sudo netstat -antp | grep svn       
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      13900/svnserve

发现3690端口已启动。


-d:以守护进程的形式运行

-r: 指明仓库所在的目录


通过TortoiseSVN查看并上传文件进行测试

wKioL1f7Rn6BoAIzAACSQC0VUPg444.png


5、安装apache2和libapache2-svn

yaoliang@node2:~$ sudo apt-get install apache2 libapache2-svn

6、配置apache2

yaoliang@node2:~$ cd /etc/apache2
yaoliang@node2:/etc/apache2$ ls
apache2.conf        conf.d   httpd.conf  mods-available  ports.conf       sites-enabled  
apache_ssl_pass.sh  envvars  magic       mods-enabled    sites-available

7、权限修改

yaoliang@node2:/etc/apache2$ sudo useradd svnuser
yaoliang@node2:/etc/apache2$ sudo groupadd subversion
yaoliang@node2:/etc/apache2$ sudo groupadd svnuser subversion
yaoliang@node2:/etc/apache2$ sudo chown -R root:subversion /srv/svn
yaoliang@node2:/etc/apache2$ sudo chown -R www-data.www-data /src/svn

8、修改配置文件

将mods-enabled中的dav_svn.load和dav_svn.conf全部注释掉,重写一个新的配置文件

yaoliang@node2:/etc/apache2$ sudo vim conf.d/subversion.conf
# 导入模块
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

<Location /svn/>
    DAV svn
    SVNParentPath /srv/svn
    SVNListParentPath on
    AuthType Basic
    AuthName 'SVN Authentication'
    AuthUserFile /etc/apache2/svn.passwd
    AuthzSVNAccessFile /etc/apache2/svn.authz
    Require valid-user
</Location>


9、生成认证和密钥文件

# 生成密钥文件
yaoliang@node2:/etc/apache2$ sudo htpasswd -c -m svn.passwd  admin     # 首次创建加 -c
yaoliang@node2:/etc/apache2$ tail svn.passwd 
admin:$apr1$ZAA6soA3$8zZ5aApEP9WAN/KajN4rw1

# 生成配置文件
yaoliang@node2:/etc/apache2$ sudo vim svn.authz
[groups]                                         
admin = admin

[/]
@admin = rw
* = r

[repos:/]
@admin = rw
* = r

10、重启apache和svn

yaoliang@node2:/etc/apache2$ sudo pkill svnserve
yaoliang@node2:/etc/apache2$ sudo svnserve -d -r /srv/svn
yaoliang@node2:/etc/apache2$ sudo /etc/init.d/apache2 restart

11、通过TortoiseSVN进行测试

wKiom1f7TUrzg5lOAACdlM-lqWU733.png


VPS岛 的文章和资源来自互联网,仅作为参考资料,如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。丨 转载请注明ubuntu上搭建svn+apache服务器
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址