本人linux小白,新进公司,被分配此任务,好崩溃,只能一边百度linux命令一边完成任务。从装系统开始一直到搭建好服务,也快一周了,足见水平之差,以下博文基本靠网络,再加上自己的摸索,直至搭建成功。搭建好之后,记录下来方便查阅。废话少说,开始工作了。。。

一、搭建apache2和SVN

1、安装apache2和svn server

  1.   sudo apt-get install apache2
  2.   sudo apt-get install subversion
  3.   sudo apt-get install libapache2-svn

  完成以上安装,可以直接访问apache的主页,如http://localhost/

2、创建subversion用户组,并把apache运行用户www-data加入到subversion用户组中

  1.   sudo addgroup subversion
  2.   sudo usermod -G subversion -a www-data

3、创建svn版本库

  1.   sudo mkdir /srv/svn
  2.   sudo svnadmin create /srv/svn/tone_src

  此时可以在/srv/svn/tone_src目录下看到svn版本库的所有文件夹以及配置文件,如:conf、dav、db、format、hooks、locks、README.txt。其svn的配置文件主要都在conf中,其下有authz 、hooks-env.tmpl、passwd、svnserve.conf这四个文件。以后再说其作用。

4、配置svn

  1、编辑svnserve.conf

  1.     #匿名用户不可读
  2.     anon-access = none
  3.     #权限用户可写
  4.     auth-access = write
  5.     #密码文件为passwd
  6.     password-db = passwd
  7.     #权限文件为authz
  8.     authz-db = authz

  2、编辑authz 、passwd

  这两个文件前者是配置权限,后者是保存用户名密码,为了管理方便(会有改动),把这两个文件放到/srv/svn下进行管理,分别对应:authz、passwd文件。编辑authz文件:

  1.       [groups]          ---组权限,一共三个组,每组后面是用户,用,分开
  2.       .net = bsit
  3.       java = chenrl, tianke
  4.       M701_GROUP = testuser1
  5.       [bsit_m701_project:/]
  6.       jianping.zhao = rw
  7.       [rsu_project:/]
  8.       bsit = rw
  9.       [db:/]
  10.       jianping.zhao = rw

5、将svn配置到apache中通过http web方式访问

  在apache的路径下,有如下文件:

  1. bsit@bsit:/etc/apache2$ ls -a
  2. . conf-available envvars mods-enabled sites-enabled
  3. .. conf-enabled magic ports.conf
  4. apache2.conf dav_svn.passwd mods-available sites-available

  可以在apache2.conf里配置svn信息,即配置此文件里的location信息。但是也可以配置在mods-available文件夹下的dav_svn.conf文件,配置如下所示:

  1. <Location /svn>
  2. DAV svn
  3. #SVNPath /srv/svn/tone_src
  4. SVNParentPath /srv/svn
  5. SVNAdvertiseV2Protocol Off
  6. AuthType Basic
  7. AuthName "Subversion Repository"
  8. AuthUserFile /srv/svn/passwd
  9. AuthzSVNAccessFile /srv/svn/authz
  10. Require valid-user
  11. </Location>

  SVNPath是项目库地址,如果只有一个项目库,则直接可以用SVNPath。如果有多个项目库,则可直接使用SVNParentPath,让新建的项目库放在/srv/svn/下。AuthUserFile是存放用户文件。AuthzSVNAccessFile是用户/组权限文件。Require valid-user是登录svn要做验证。备注:此配置文件是告诉apache关于svn的访问路径已经相关配置文件,这里注意存放的根目录。重启apache服务器,sudo /etc/init.d/apache2 restart,然后就可以通过http://localhost/svn进行远程访问

  1. 启动apache服务:
  2. /etc/init.d/apache2 start or sudo /etc/init.d/apache2 start
  3. 重启apache服务:
  4. /etc/init.d/apache2 restart or sudo /etc/init.d/apache2 restart
  5. 停止apache服务:
  6. /etc/init.d/apache2 stop or sudo /etc/init.d/apache2 stop

如看到这样的情况,说明配置成功。此时就可以在本地使用svn客户端了。

二、SVNManager安装配置 

1、安装mysql

  1. apt-get install mysql-server mysql-client

2、创建SVNManager数据库

  1. mysql -u root -p
  2. mysql> CREATE DATABASE svnmanager;
  3. mysql> GRANT all privileges on svnmanager.* to 'svnmanager'@'localhost' identified by '123456';
  4. mysql> FLUSH PRIVILEGES;
  5. mysql> exit

  可能出现的异常情况:

  1. 有的帖子说,缺省SVNManager使用的MySQLroot密码是root1234,但是我这里有错,错误如下:
  2. mysql -u root -proot1234
  3. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  4. 可以以管理员进去,再修改密码:
  5. mysql -u root -p
  6. mysql> update user set password=PASSWORD('新密码') where User='root';
  7. mysql> flush privileges;
  8. mysql> quit

3、安装PHP_5

  1. apt-get install php5 php5-mysql php5-sqlite php-pear

4、安装Pear模块:VersionControl_SVN 

  1. pear install VersionControl_SVN-0.3.4

  若不指定版本安装:pear install -f -o VersionControl_SVN,在页面进行赋权操作的时候有问题,可能是软件bug。

5、下载SVNManager

  1. wget http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.09.tar.gz

  将文件解压至/var/www/html下,并加个快捷方式,网上好多贴子是直接把SVNManager解压到/var/www下,我曾经也试着解压到这里,但是不知道哪里配置不对,最后在访问svnmanager的时候报404,其实很早之前应该进行测试:http://IP/index.html,可以打开,则项目应该放在html下。

  1. tar zxvf svnmanager-1.09.tar.gz -C /var/www/html
  2. ln -s /var/www/html/svnmanager-1.09 /var/www/html/svnmanager
  3. mkdir -p /srv/svn/svnconfig
  4. chown -R www-data:subversion /srv/svn
  5. chmod -R g+rws /srv/svn

6、配置SVNManager

  1. cp /var/www/html/svnmanager/config.php.linux /var/www/html/svnmanager/config.php
  2. vi /var/www/htmlsvnmanager/config.php
  3.  
  4. <?php
  5. $lang = "en_US.UTF-8";
  6. //Shell command's
  7. $htpassword_cmd = "/usr/bin/htpasswd";
  8. $svn_cmd = "/usr/bin/svn";
  9. $svnadmin_cmd = "/usr/bin/svnadmin --config-dir /tmp";
  10.  
  11. //Subversion locations
  12. $svn_config_dir = "/tmp";
  13. $svn_repos_loc = "/srv/svn/";
  14. $svn_passwd_file = "/srv/svn/passwd";
  15. $svn_access_file = "/srv/svn/authz";
  16.  
  17. $svn_trash_loc = "";
  18. $svnserve_user_file = "";
  19. $smtp_server = "smtp.163.com";
  20. $dsn = "mysqli://svnmanager:123456@localhost/svnmanager";
  21. $admin_name = "admin";
  22. $admin_temp_password = "admin";
  23. ?>

7、使SVNManager的web页面支持中文路径

  1. vi /usr/share/php/VersionControl/SVN.php
  2. 将下行
  3. exec("{$this->prepend_cmd}$cmd 2>&1", $out, $ret_var);
  4. 改为:
  5. exec("LANG=zh_CN.UTF-8; {$this->prepend_cmd}$cmd 2>&1", $out, $ret_var);

8、SVNManager配置完毕,重启服务

  1. sudo /etc/init.d/apache2 restart

 至此,就配置完成了。进行一次访问:http://svn-ip/svnmanager/ ,会提示创建SVNManager数据表,刷新页面,出现登录页面,如下图所示。

  1. SVNManager初始管理员帐号和密码:admin/admin(创建一个管理员账户后该帐号失效)。
  2. 首次在创建管理员的时候,即新增用户的时候,底下的绿色密码也是admin,管理员增加后,用管理员新增用户,则该密码是管理员的密码。

  svnmanager具体使用手册,网上有很多。这么多配置,其实主要修改两个配置文件,/etc/apache2/mods-available/dav_svn.conf和/var/www/html/svnmanager/config.php这两个文件。前者主要配置svn项目库地址,权限文件地址,用户密码文件。后者主要管理svn配置信息以及配置访问路径。

  当初配置的时候遇到的问题挺多的,配好之后却想不起来有哪些了,奇怪了,先写到这了,想起来再补吧。

  

ubuntu-14.04服务器版下搭建apache2+svn+svnmanager服务的更多相关文章

  1. 【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅1】

    鸡冻人心的2016,微软高产年. build 2016后 各种干货层出不穷. 1 Win10 集成了bash  ,实现了纳德拉的成诺,Microsoft Love Linux!!! 2 跨平台  ,收 ...

  2. 在 Ubuntu 14.04 服务器上部署 Hexo 博客

    版权声明:本文由宋秉金 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/241080001487926962 来源:腾云阁  ...

  3. 从Ubuntu 14.04 LTS版升级到Ubuntu 16.04 LTS

      Ubuntu 16.04 (Xerial Xerus) Long Term Support版于最近发布了.要想了解它的新功能和新特性,就必须升级或安装这个新系统. 本文讲述怎样一步步从Ubuntu ...

  4. ubuntu 14.04 桌面版关闭图形界面

    ubuntu 14.04 桌面版关闭图形界面 问题: 怎样将ubuntu14.04设置为文本模式启动? 解决方式: 改动改GRUB 的配置文件(不建议直接改 grub.conf) $sudo vim ...

  5. 【DDD/CQRS/微服务架构案例】在Ubuntu 14.04.4 LTS中运行WeText项目的服务端

    在<WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例>文章中,我介绍了自己用Visual Studio 2015(C# 6.0 with .NET Frame ...

  6. Ubuntu 14.04 (32位)上搭建Hadoop 2.5.1单机和伪分布式环境

    引言 一直用的Ubuntu 32位系统(准备下次用Fedora,Ubuntu越来越不适合学习了),今天准备学习一下Hadoop,结果下载Apache官网上发布的最新的封装好的2.5.1版,配置完了根本 ...

  7. Ubuntu 14.04 正式版 12.4

    安装Ubuntu 14.04后要做的5件事情 4月17日,开源免费系统Ubuntu官方正式宣布发布Ubuntu 14.04 LTS(代号Trusty Tahr)正式版.官方声称该版本主打云计算,在云平 ...

  8. ubuntu 14.04服务器上使用nginx搭建wordpress博客详解

    过程详解 1.更新apt-get sudo apt-get update 2.安装nginx sudo apt-get install nginx 3.启动nginx sudo service ngi ...

  9. ubuntu 14.04 64位 下 编译安装MySQL 5.7.11

    步骤一: 先去mysql的官方网站 去down 编译源码包 mysql 网址:www.mysql.com downloads  (MySQL Community Server) 下载版本选择  sou ...

随机推荐

  1. Leetcode: Surrounded regions

    Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is captured ...

  2. LeetCode——Balanced Binary Tree(判断是否平衡二叉树)

    问题: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...

  3. 自动生成V字型

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  4. 用 TWebBrowser 查找网页上的按钮,编辑框,

    Form1.wb1.Navigate(Aurl); <table> <tr> <td style="text-align:right;">< ...

  5. Eclipse中快速删除空行

    1.在要编辑的文档中 "Ctrl"+"F",弹出搜索框: 2.在Find文本框中输入正则表达式:^\s*\n 3.勾选正则表达式选项: 4.Find和替换所有.

  6. blur和click事件的先后顺序问题

    这两个同时用会有冲突.懒得翻译了,需要的自己看哈. 以下摘自stackoverflow. I have an input field, where I try to make autocomplete ...

  7. log4php的配置

    网上关于log4php配置的文章很多,下面是我的配置,跟网上部分略有不同 (1)添加日志     1.下载log4php,到官网就可以下载到,下载后解压     我的版本是log4php_2.3.0 ...

  8. 使用TFHelp解析Html

    似乎是第一次使用TFHelp解析Html,也是第一次解析Html遇到挺多的难题,现在这里简单的总结一下,慢慢补充TFHelp的使用! https://github.com/topfunky/hpple ...

  9. Java Interview Test

    Java基础:1.例举Java中的不可变类? 所有数据类型的包装器类和java.lang.String也是不可变类,虽然他不是基本类型.2.==和.equals的区别和结果? 基本数据类型的比较只能用 ...

  10. 封装ajax

    function ajaxRequest(method,url,sync,param,responseFun){ //创建对象 var httpRequest; if(window.XMLHttpRe ...