Ubuntu14.04 Server Apache2+subversion环境搭建

自从工作后,发现之前的代码开发太随便啦,于是经过不到两年的工作积累,打算在自己开发软件的过程中好好管理自己的项目。于是打算搭建自己的项目服务器,去年搭建过一次,但是由于没有记录,现在需要再来一遍,好多步骤忘记,同时又遇到了些新问题,在网上搜集很多资料,现在一步一步记录下搭建的过程,都是自己验证OK,需要的可以参考参考。

一 安装环境准备

1. 安装以下用户包:

$ sudo apt-get install subversion apache2 libapache-svn

(注意:如果不安装libapache-svn, 在配置apache2时,DAV svn会出现错误,提示没有dav模块)

完成以上安装后,可以直接访问apache的主页,在浏览器地址中输入:http://服务器IP/, 即可看到“It Works”界面,说明安装正常。

二 配置svn

1. 创建版本库

$sudo mkdir /home/svn

$sudo chmod 770 /home/svn

$sudo chown lxm:subversion –R /home/svn

$sudo chmod –R g+rws /home/svn

$svnadmin create /home/svn/repos

此时可看到/home/svn/repos目录下svn版本库所有文件夹及配置文件:

创建subversion用户组,并把apache运行用户www-data和自己的用户加入到subversion用户组中

$sudo addgroup subversion

$sudo usermod –G subversion –a www-data lxm

接下来导入项目文件:

进入你的项目源文件根目录下,如我的,/home/lxm/test

导入项目到版本库:

$svn import /home/lxm/test file:///home/svn/repos/test –m “inital import”

2. 配置权限访问等

1)添加svn 用户

$htpasswd -c /home/svn/repos/conf/passwd lxm  //然后会提示你输入密码,当然第一次创建svn用户,需要通过参数-c,然后第二次创建svn用户就不需要,这里要注意。

(可选)$htpasswd /home/svn/repos/conf/passwd test2  //创建第二个svn用户

这时看到/repos/conf目录下的passwd文件变成加密的内容

2)用户权限配置

由于我是配置为自己用,权限都配置为我自己访问:

$ vim /home/svn/repos/authz

Code[group]

admin = admin

develop = lxm

[/]

@admin = rw

@develop = rw

$vim /home/svn/repos/svnserve.conf

将以下代码前面的#去掉(注意代码前面没有空格额)

auth-access = write 设置有权限用户得权限

password-db = passwd 指定查找用户名和密码得文件,这样设置即为本目录下得passwd

authz-db = authz 制定各用户具体权限得文件,这样设置即为本目录下得authz

三 apech2配置

$sudo vim /etc/apache2/mods-enabled/dav_svn.conf

修改以下内容:

Code<Location /svn>
DAV svn
SVNPath /home/svn/repos
AuthzSVNAccessFile /home/svn/repos/conf/authz
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svn/repos/conf/passwd
Require valid-user
</Location>

备注:此配置文件是告诉apache关于svn的访问路径已经相关配置文件,这里注意f访问的根目录

重启apache服务器:

$sudo /etc/init.d/apache2 restart

四 功能测试

到此,所有配置完成,下面一步一步验证:

1. apache访问验证

在浏览器地址栏中输入:http://服务器IP/svn/

即可看到访问到svn版本的根目录,下面有你之前导入的项目文件夹,说明apache配置完成并正常工作

2. svn验证

在自己pc或其他pc中导出svn测试,前提是其他pc也要能访问服务器额

我在windows下安装tortoiseSVN客户端,导出svn版本库正常,在导出地址填:http://服务器IP/svn/,需要填写账号和密码,即之前添加的账号和密码。

导出完毕后,修改项目中某个文件,检查提交有没有问题,我测试过一切正常。

上一篇:python正则表达式Re模块备忘录


下一篇:详解AsyncTask的使用