本文参考了一下博客,特此感谢:

灰烬之灵     一米阳光做IT.测试

环境描述:ubuntu 13.04
 
1、先创建svn组和svn用户:
 
sudo addgroup svn
sudo useradd svn -g svn -m  //新增svn用户名,-g并制定它所在的组svn,-m同时创建svn用户所在的home目录
sudo passwd svn  //设置svn用户的密码 // hzsxsvn 我设置的用户svn的密码

2、安装apache2和svn server

sudo apt-get install apache2
sudo apt-get install subversion
sudo apt-get install libapache2-svn

3、创建svn版本库 这里库的名字为 svn,项目的名字为project
 
sudo mkdir /home/svn/project
sudo svnadmin create /home/svn/project/repos
 
此时可以在/home/svn/project/repos目录下
看到svn版本库的所有文件夹以及配置文件,如:conf、db、format、hooks、locks、README.txt

4、配置并导入项目  测试
 
sudo mkdir /home/svn/testprj
sudo mkdir /home/svn/testprj/branches
sudo mkdir /home/svn/testprj/tags
sudo mkdir /home/svn/testprj/trunk
 
导入项目到版本库:svn import /home/svn/testprj file:///home/svn/project/repos/testprj -m "initial import" 
//  /home/svn/testprj 表示需要引入的项目
//    file:///home/svn/project/repos/testprj 表示svn的版本库,此处是做初始化引入
 

5、更改权限

sudo chown -R svn:svn /home/svn/project/repos
sudo chmod –R 777  /home/svn/project/*

6、将svn配置到apache中通过http web方式访问
 
sudo  vi /etc/apache2/apache.conf,将如下文件粘帖到apache.conf尾部,如下:
 
 <Location /svn>
    DAV svn
    SVNPath /home/svn/project/repos
    AuthzSVNAccessFile /home/svn/project/repos/conf/authz
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /home/svn/project/repos/conf/passwd
    Require valid-user
</Location>
 
 备注:此配置文件是告诉apache关于svn的访问路径已经相关配置文件,这里注意访问的跟目录。重启apache服务器,然后就可以通过http://localhost/svn进行远程访问
 
重启apache服务器:/etc/init.d/apache2 restart
 
当然这里需要验证访问登录用户,接下来将介绍添加svn用户

############################
## 这里报错了
############################
hzsx@hzsx-server:~$ sudo /etc/init.d/apache2 restart
Syntax error on line 268 of /etc/apache2/apache2.conf:
Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!
############################################

查一下后发现是一个so文件没加,在/etc/apache2/mods-available/dav_svn.load最后添加一行:
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so,apache服务器成功重启。

hzsx@hzsx-server:~$ sudo /etc/init.d/apache2 restart       
 * Restarting web server apache2                                                                            
 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
                                                                                                      [ OK ]

7、添加svn用户
 
sudo htpasswd -c /home/svn/project/repos/conf/passwd testuser1  //然后会提示你输入密码,当然第一次创建svn用户,需要通过参数-c,然后第二次创建svn用户就不需要,这里要注意。
sudo htpasswd /home/svn/project/repos/conf/passwd testuser2  //创建第二个svn用户
 
然后就可以通过这些用户访问http://localhost/svn了,并可以在其他pc上对svn进行checkout,命令行如下:
svn checkout http://localhost/svn --username testuser1 --password 123456
当然还可以通过svn客户端工具checkout更方便

8、用户权限控制
 
需要在apache的配置文件中增加如下配置,才能使得apache能够获取svn的权限配置,如下:
修改/etc/apache2/mods-available/dav_svn.load 继续添加另外两行,然后将apache服务器重启。

#LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
#LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
事实上好像前两行 添不添加 无所谓

9、如果不配置如下权限,局域网其他主机浏览器访问 http://192.168.1.9/svn/testprj/
会提示 You don't have permission to access /svn/project on this server.
svn的权限控制是通过目录结构来控制,控制权限在/home/svn/project/repos/conf/authz文件中,示例配置如下:
 
 文件最后面添加几句:
 [groups]
svn = testuser1
# add user testuser1 to group svn

[/]
# / svn root directory
@svn = rw

10、图形化管理 svnmanager
SVNManager is a PHP web based tool to administer a Apache Subversion repository server.
svnmanager.sourceforge.net  当前版本为1.10

wget http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.10.tar.bz2
tar -vxjf svnmanager-1.10.tar.bz2
sudo mv svnmanager-1.10 /var/www/svnmanager

11、安装MYSQL root密码:roothzsx
sudo apt-get install mysql-server mysql-client

12、创建SVNManager数据库
mysql -u root -proothzsx

mysql> create database svnmanager;
mysql> grant all privileges on svnmanager.* to 'svnmanager'@'localhost' identified by 'roothzsx';
mysql> flush privileges;
mysql> exit

这里注意 mysql> 后面语句的结尾; 不能省略。

13、安装PHP_5
sudo apt-get install php5 php5-mysql php5-sqlite php-pear

14、安装Pear模块:VersionControl_SVN
pear install VersionControl_SVN-0.3.4 
最新的应该是
pear install VersionControl_SVN-0.5.1

downloading VersionControl_SVN-0.5.1.tgz ...
Starting to download VersionControl_SVN-0.5.1.tgz (31,121 bytes)
.........done: 31,121 bytes
install ok: channel://pear.php.net/VersionControl_SVN-0.5.1

15、配置SVNManager
sudo mkdir -p /home/svn/svnconfig
sudo chown -R svn:svn  /home/svn
sudo chmod -R g+rws /home/svn

16、修改SVNManager配置文件
 sudo cp /var/www/svnmanager/config.php.linux /var/www/svnmanager/config.php
 vi /var/www/svnmanager/config.php

对应修改config.php如下配置项:
$lang = "en_US.utf8";
$htpassword_cmd = "/usr/bin/htpasswd";
$svn_cmd = "/usr/bin/svn";
$svnadmin_cmd = "/usr/bin/svnadmin --config-dir /home/svn/svnconfig";

$svn_config_dir  = "/home/svn/svnconfig";
$svn_repos_loc  =      "/home/svn/project/repos";
$svn_passwd_file =      "/home/svn/project/repos/conf/authz";
$svn_access_file =      "/home/svn/project/repos/conf/passwd";

$smtp_server = "smtp.163.com";
$dsn  = "mysqli://root:roothzsx@localhost/svnmanager";

$admin_name  = "admin";
$admin_temp_password = "admin";

17、SVNManager配置完毕,重启服务:

sudo service apache2 restart
sudo service mysql restart

18、进行一次访问:http://svn-ip/svnmanager/  会提示创建SVNManager数据表,刷新页面,出现登录页面。
svn-ip 是我配置机器的IP地址。需要注意的是,这里使用admin admin登录。
但是这个密码是一次性的,只能管理其他用户。所以要立刻增加一个管理员用户。

19、退出admin,当使用刚刚建立的管理员帐户再登录的时候。菜单就不一样了。

20、但是此时,如果操作Create a new Repository,实际上在服务器上是没有生成的。
编辑Change User Privileges of a Repository,会报错。

这里主要是SVNManager没有权限,我们要给SVNManager分配权限。
sudo chown -R www-data:svn /home/svn/project  再操作Create a new Repository就正常了。

转载于:https://www.cnblogs.com/zzugyl/p/3688796.html

Ubuntu下部署SVN+SVNManager相关推荐

  1. ubuntu下使用SVN

    写在前面的话 我最烦网上写个什么鬼东西,看完一脸懵逼的感觉,这这这写的是啥.这种时候只能靠我们这种每一步都必须弄得非常清楚的女程序员出来撑脸面了. 哈哈哈哈哈哈-. 玩嘛,就是要胆子大就是要不断试错. ...

  2. ubuntu下部署solr

    ubuntu下部署solr IKAnalyzer linliangyi2007.javaeye.com http://code.google.com/p/ik-analyzer reference: ...

  3. 应用打包Ubuntu下部署ScriptCase应用一例

    最近应用开辟的过程中出现了一个小问题,顺便记录一下原因和方法--应用打包 应用ScriptCase开辟的应用是完全开源的PHP代码,和ScriptCase本身已无任何关系:但为了便于部署,SC供给了部 ...

  4. ubuntu下部署eclipse集成hadoop\android\web\GCC开发环境小记

    Hadoop环境: 1.部署:    1)ubuntu上创建新用户账号:hadoop/123,并设置为管理员:    2)ubuntu上安装SSH:创建rsa无密码ssh-key:    3)ubun ...

  5. windows 和 ubuntu 下 git + svn 客户端

    一. git 客户端(分布式版本管理) 1 Windows下 1.1 安装git windows版本客户端 官方下载动作https://git-scm.com/downloads 运行Git-2.31 ...

  6. linux下部署svn服务器

    系统Linux debian 2.6.32-5-686 先安装svn工具:apt-get install subversion,耐心等待安装完成.安装完成后svn客户端.服务器都有了. 接者建立svn ...

  7. linux svn apt get,Ubuntu下安装SVN客户端

    http://rabbitvcs.org/ 1. sudo add-apt-repository ppa:rabbitvcs/ppa 上面的地址在http://wiki.rabbitvcs.org/w ...

  8. ubuntu下搭建svn服务器

    下载LOFTER客户端 1.首先安装SVN这个软件 apt-get install subversion 2.在home目录下创建一个名为svn的文件夹(文件夹的名字随便起) mkdir /home/ ...

  9. ubuntu下部署mongodb以及设置允许远程连接

    最近因为项目原因需要在阿里云服务器上部署mongodb,网上查阅了一些资料,特此记录一下步骤 1.运行apt-get install mongodb命令安装mongodb服务(如果提示找不到该pack ...

最新文章

  1. 工作中5个实用的Linux命令
  2. 把时间当作朋友(四)
  3. 树莓派第三代跨越发展,采用64位处理器内建WiFi及蓝牙
  4. 上午写了一段代码,下午就被开除了...
  5. 基于python的测试报告自动化生成
  6. WPF DataGrid显示图片的一种方法
  7. Stanford Parser demo错误:Unsupported major.minor version 52.0 error
  8. 矩阵理论第一章-特征值与特征向量
  9. 3K水稻SNP数据集的简单利用
  10. 为什么说c语言是关键字,为什么说C语言既有高级语言又有低级语言的特点
  11. jQuery制作手风琴图片切换效果
  12. sql数据库去重语法_oracle大数据去重sql语句
  13. 使用synergy/barrier服务端和客户端连接不上的问题
  14. 非华为手机可以刷鸿蒙系统吗,非华为手机用户,你愿意尝试鸿蒙系统吗?
  15. 代码签名证书_代码签名
  16. 微纳制造技术(半导体制造书籍pdf)
  17. AGV 交通控制算法
  18. 网站推广-----100个基本推广方法
  19. 2021WSB-day1-1 - 孙老师讲解生物特征识别的基础知识
  20. Noah Mt4跟单系统制作第八篇 Mt4TradeApi交易历史篇

热门文章

  1. 怎么判断子元素距离父元素顶部位置_css子元素如何相对父元素定位?
  2. php7 findandmodify,node.js – (mongoose / promises)如何检查文档是否是使用带有upsert的findOneAndUpdate创建的...
  3. jquery ajax html php区别,ajax与jquery的区别是什么
  4. 把计算机怎么连接手机的网络助手在哪里,手机连接电脑上网,详细教您手机如何连接电脑上网...
  5. php记录上次观看记录,PHP Cookei记录用户历史浏览信息的代码
  6. seleniumpython定位网页元素方法_Python+Selenium 定位元素
  7. 嵌入式系统——系统安全之常见病毒漏洞刷题整理
  8. Windows10下VB6.0开发——常用的字符串处理函数工具
  9. php xml扩展,php-SimpleXML,请不要扩展实体
  10. presto自定义UDF函数