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

灰烬之灵    一米阳光做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就正常了。

Ubuntu下部署SVN+SVNManager的更多相关文章

  1. ubuntu下部署SVN

    sudo apt-get install subversion 创建库文件夹 sudo mkdir svn sudo chown -R 777 svn 设置为所有用户配置777权限 sudo chmo ...

  2. Ubuntu下使用SVN

      SVN作为日常开发中不可缺少的工具,今天终于开始在Ubuntu下使用了. 1.首先需要安装SVN.Ubuntu下的SVN安装十分简单,sudo apt-get install subversion ...

  3. Ubuntu 下部署asp.net运行环境

    在Ubuntu下部署asp.net运行环境,网上教程很多,基本都是编译Mono源码,然后安装jexus.但是可能是我最近RP不太好,编译Mono源码一直都是失败,无奈之下只好找另外的方法安装了. 网上 ...

  4. ubuntu下安装svn

    Ubuntu下使用SVN SVN作为日常开发中不可缺少的工具,今天终于开始在Ubuntu下使用了. 1.首先需要安装SVN.Ubuntu下的SVN安装十分简单,sudo apt-get install ...

  5. ubuntu下搭建svn服务器

    [ubuntu下搭建svn服务器] 1.创建目录 mkdir ~/svn/repository/ 2.创建仓库 svnadmin create repository 3.进入 repository/c ...

  6. Linux:Ubuntu下部署Web运行环境

    Linux:Ubuntu下部署Web运行环境 本次博客将会从三部分内容详述Ubuntu系统下Web运行环境的配置: 依次是:FTP服务器的搭建.MYSQL数据库的搭建.JDK的安装等. 参考文章如下: ...

  7. Ubuntu下Apache+SVN+submin实现WEB管理SVN

    为什么需要submin管理SVN? 原来在Ubuntu下,都是直接通过命令行创建SVN仓库并分配权限,但是这有一些问题: 每创建一个SVN仓库,都需要修改httpd.conf 每创建一个帐户,都需要手 ...

  8. Ubuntu下的svn的安装

    安装SVN问题很多,现在目前遇到的问题是,安装时候找不到svn connector的连接器 导致不能够对SVN插件进行完整安装.但是可以单独安装该插件     http://community.pol ...

  9. 【转】Ubuntu下搭建SVN环境-Apache

    原文网址:http://www.cnblogs.com/candle806/archive/2012/12/20/2826280.html 环境描述:ubuntu server 12.04  / sv ...

随机推荐

  1. VS2008调试技巧收集备用

    VS2005调试技巧集合 http://blog.csdn.net/rainylin/archive/2007/09/06/1775125.aspx 下面有从浅入深的6个问题,您可以尝试回答一下 一个 ...

  2. 阿里云PHP Redis代码示例

    测试代码示例 <?php /* 这里替换为连接的实例host和port */ $host = "localhost"; $port = 6379; /* 这里替换为实例id和 ...

  3. PreparedStatement是如何大幅度提高性能的

    本文讲述了如何正确的使用prepared statements.为什么它可以让你的应用程序运行的更快,和同样的让数据库操作变的更快.  为什么Prepared Statements非常重要?如何正确的 ...

  4. C语言 结构体的内存对齐问题与位域

    http://blog.csdn.net/xing_hao/article/details/6678048 一.内存对齐 许多计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地 ...

  5. ANDROID_MARS学习笔记_S01_011ProgressBar

    文档是这样来设置样式 <ProgressBar android:layout_width="wrap_content" android:layout_height=" ...

  6. 统计学习方法笔记--EM算法--三硬币例子补充

    本文,意在说明<统计学习方法>第九章EM算法的三硬币例子,公式(9.5-9.6如何而来) 下面是(公式9.5-9.8)的说明, 本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流 ...

  7. PHP上传遇到的问题-php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项

    今天在做上传的时候出现一个非常怪的问题,有时候表单提交可以获取到值,有时候就获取不到了,连普通的字段都获取不到了,苦思冥想还没解决,最后问了师傅,师傅看了说挺奇怪的,然后问我upload_max_fi ...

  8. dom解析器机制 web基本概念 tomcat

    0 作业[cn.itcast.xml.sax.Demo2]   1)在SAX解析器中,一定要知道每方法何时执行,及SAX解析器会传入的参数含义 1 理解dom解析器机制 1)dom解析和dom4j原理 ...

  9. SharePoint2013切换帐户登录菜单

    SharePoint2013帐户姓名显示的地方没有切换帐户的菜单,这个功能对于终端用户是可有可无的,但对于sharepoint管理员或sharepoint开发人员来讲,却是一个很重要的菜单,由于经常要 ...

  10. Ubuntu设置中文

    Ubuntu设置中文:需要联网下载中文包,不然无法设置中文系统. 进去系统后再右上角有个齿轮图标点击,找到系统设置(System Settings)点击弹出一个界面,找到Language Suppor ...