Ubuntu架设HTTP方式访问的SVN服务器以及war文件上传

本文的svn服务器部署主要参考了  ,对其中不甚清晰之处做了一些注解,并且主要是实现了设置多个版本库,且每个版本库需进行用户验证,每个程序一个版本库。

本文详细讲述了在Ubuntu上通过SVN进行业务部署。由于使用Apache服务模块的的实现和使用不同,本文的方案仅适用于ubuntu,如在其他环境下,请酌情部署。

本文介绍在代码提交时通过http访问SVN服务器,使用Mysql进行用户验证,并在提交完成后自动部署至服务器中。

主要步骤如下:

1、  安装Apache和Mysql:

执行

$ sudo apt-get install apache2 mysql-server  

执行

$ sudo /etc/init.d/apache2 start  

访问,测试apache是否安装成功。如遇到端口冲突,可能是由于安装了其他的web服务器(如Nginx)占用了80端口所引起的,可以修改相应配置文件,换用其它端口。   

2、  安装subversion及对应Apache的服务器模块和MySQL用户认证管理模块:

$ sudo apt-get install subversion libapache2-svnlibapache2-mod-auth-mysql   $ sudo a2enmod auth_mysql  

3、  创建subversion项目和版本库

可以将所有的版本库放置在一个目录下,如/var/www/svn,可以自定义。

$ sudo mkdir /var/www/svn  

然后可以创建两个版本库,如/var/www/svn/repos、/var/www/svn/repos1。

先创建两个文件夹

$ sudo mkdir /var/www/svn/repos   $ sudo mkdir /var/www/svn/repos1  

然后再执行svnadmin命令创建两个仓库,注意使用--fs-type来指定创建fsfs版本库,默认情况下是创建Berkeley DB版本库

$ sudo svnadmin create /var/www/svn/repos --fs-type fsfs   $ sudo svnadmin create /var/www/svn/repos1 --fs-type fsfs  

最后赋予www-data用户这些版本库的读写权限,因为通过apache服务器部署时需要读写该文件夹

$ sudo chown -Rwww-data /home/www/svn/repos   $ sudo chown -Rwww-data /home/www/svn/repos1  

4、   创建用户验证数据库

创建进行用户验证的数据库

$ mysql -u root -p   #创建一个数据库,用于进行用户验证    mysql> CREATE DATEBASE svn;         #使用该数据库    mysql> USE svn;   #创建一个用户表,包含name,password和groups这三列,且名字为主键    mysql> CREATE TABLE user (   name char(30) NOT NULL COMMENT '用户名',   passwd char(32) NOT NULL COMMENT '密码',   groups varchar(32) NOT NULL COMMENT ‘群组’,   PRIMARY KEY (name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;       mysql> INSERT INTO user VALUE ('admin', MD5('admin'),’admin’);   mysql> INSERT INTO user VALUE ('test', MD5('test'),’test’);  

需注意以下几点:

密码域一定要足够宽,本文将使用MD5密码(32字节),如果使用SHA1,则需要40字节。

必须设置groups字段,可以默认为其用户名,这样可以保证当使用mysql进行用户验证时,可以在apache的配置文件中指定群组,只有特定群组的人才能够访问该代码库,防止其他用户访问。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/8c05e71afc3c3298a762c1a7e5349feb.html