Ubuntu环境下布署SVN服务器

由于不同的Linux版本服务器布署方案不尽相同,本文不保证对Ubuntu之外的环境有效,事实上,由于Apache服务模块实现和使用不同,本文的方案仅适用于Ubuntu,如果在其它环境下,建议参考其它文章。

1. 安装Apache + MySQL

我所使用的服务器版本为(使用$ uname -a 查看服务器版本)
$ sudo apt-get install apache2 mysql-server
如果在启动Apache时遇到端口冲突,可能是已安装的其它Web服务器(如NGINX)占用80端口引起的,可以修改相应配置文件,换用其它端口,如8080。如果出现下面的提示:
apache2: Could not reliably determine the server's fully qualified domain
         name, using 127.0.1.1 for ServerName
        
需要往httpd.conf(默认为空)文件中添加一行:
$ sudo vim /etc/apache2/httpd.conf
ServerName localhost

2. 安装subversion
安装subversion及对应Apache的服务器模块和MySQL用户认证管理模块,如果使用基本认证,则不必安装libapache2-mod-auth-mysql,考虑到用户信息是很多服务的一个基本要素,使用数据库进行管理是必要的。
$ sudo apt-get install subversion libapache2-svn libapache2-mod-auth-mysql
$ sudo a2enmod auth_mysql
3. 创建subversion项目
   创建项目目录
$ sudo mkdir /var/www/svn
$ cd /var/www/svn
$ sudo mkdir repos


  创建SVN文件仓库(选择一个合适的目录),修改用户以便可以通过HTTP访问:Berkeley DB版本库是缺省类型,但是一个FSFS版本库也是可以创建,使用--fs-type选项:
  我们已FSFS版本库建2个仓库
$ sudo svnadmin create /var/www/svn/repos --fs-type fsfs
$ groupadd subversion
$ cd /var/www/svn/
$ sudo chown -R www-data:subversion /var/www/svn/repos
  sudo chmod -R g+rws /var/www/svn/repos
  sudo vi /etc/group   将自己、www-data也加入到subversion组,重启动
  导入工程到版本库中,添加新的项目(import new project)subversion的手册推荐的项目目录结构,
  svn import 导入文件PATH  版本库PATH [参数],通过import命令,将本地未版本化的工程导入到版本库中。
  导入完成后,svn会为导入的文件设定版本号。

cd ~/ 
  mkdir -p project/{trunk,branches,tags}
  搭建项目目录结构 
project/
+ branches/
+ tags/
+ trunk/

svn import ~/project file:///var/www/svn/repos/project -m "start project comment" 
报不能打开文件“/var/www/svn/repos/db/txn-current-lock”: 权限不够,需要将自己加入到subversion组重起
 
4. 创建用户验证数据库
$ mysql -u root -p
mysql> CREATE DATEBASE svn;
mysql> USE svn;
mysql> CREATE TABLE user (
name char(30) NOT NULL COMMENT '用户名',
passwd char(32) NOT NULL COMMENT '密码',
PRIMARY KEY (name) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> INSERT INTO user VALUE ('admin', MD5('admin'));

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

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

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