linux下apache+svn搭建

介绍

subversion服务器是不需要apache的,但是可以使用apache,视具体情况来选择。
1、如果只要通过file://或svn://来访问,则不需要apache,只安装svn即可,使用svnserve来作为服务。
2、如果你要建立一个可以通过http://或https://来访问的版本库服务器,则你需要使用apache。
3、SVN 依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。 由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的。(这里指定为开始安装的apr目录),这一点知识非常重要!

准备

安装之前要准备好相关的安装包,我这里的安装包如下:
httpd-2.2.22.tar.gz 下载地址:http://httpd.apache.org/download.cgi#apache22
subversion-1.6.17.tar.gz 下载地址:http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz
subversion-deps-1.6.6.tar.bz2 下载地址:http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.bz2
下载完后,将subversion-deps-1.6.6里的文件剪贴到subversion-1.6.17,并删掉里的的apr、apr-util两个文件夹,重新打包为subversion-1.6.tar.gz

安装

1、安装apr
# tar –zvxf httpd-2.2.22.tar.gz
# cd httpd-2.2.22/srclib/apr
# ./configure –prefix=/usr/local/apr
# make && make install
2、安装apr-util
# cd httpd-2.2.22/srclib/apr-util
# ./configure -–prefix=/usr/local/apr-util/ –with-apr=/usr/local/apr/
# make && make install
3、安装apache
# cd httpd-2.2.22
# ./configure –prefix=/usr/local/apache –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util/ –enable-dav –enable-so
# make && make install
4、安装sqlite
# tar –zvxf subversion-1.6.tar.gz
# cd subversion-1.6/sqlite-amalgamation
# ./configure –prefix=/usr/local/sqlite
# make && make install
5、安装zlib
# cd subversion-1.6/zlib
# ./configure –shared
# make
6、安装subversion
# cd subversion-1.6
# ./configure –with-apxs=/usr/local/apache/bin/apxs –prefix=/usr/local/svn/ –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util/ –with-ssl –with-zlib=/usr/local/subversion-1.6/zlib/ –enable-maintainer-mode
************
如果是64位机,在./configure后增加一步
# cd subversion-1.6/neon
vim Makefile
找到CFLAGS= -g -O2 -prefer-pic 在等号右边添加参数CFLAGS= -fPIC -g -O2 -prefer-pic
***********
# make && make install

确定一下svn有没有安装成功
# cd /usr/local/svn/bin/svnserve
会看到相关版本信息!
完了再看看apache 的相关模块有没有加载!如下!
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
到此如果一直都顺利的话就基本没什么问题!继续往下!
创建svn版本库

# /usr/local/svn/bin/svnadmin create /opt/svn/svnweb
进入svnweb 看看有没有多一些文件,如果是,则证明创建成功了,然后开始修改配置信息
cd svnweb/conf
配置文件
编辑svnserve.conf
anon-access = none
auth-access = write

password-db = passwd
authz-db = authz
realm = svnweb
编辑passwd
[users]
sxm = 123456 //可添加多个,一行一个
编辑authz
[groups]
grounp1 = sxm
[/]
@group1 = rw
[svnweb:/web]
@group1 = rw
到这里,svn用户便已经创建好了

# ps -ef|grep svn //查看svn是否启动
# kill -9 9865
# /usr/local/svn/bin/svnserve -d -r /opt/svn/ 启动svn
到这可以建立文件测试一下
# mkdir /opt/data 假设这里是服务器访问的项目目录
# cd /opt/data
# /usr/local/svn/bin/svn co svn://192.168.1.217/svnweb 或者 (svn checkout svn://192.168.1.217/svnweb)
# cd svnweb
# touch index.php
# /usr/local/svn/bin/svn add index.php
# /usr/local/svn/bin/svn ci -m ”
项目目录(要想项目目录与svn同步需写脚本)
脚本目录 svnweb/hooks/post-commit
脚本内容
#!/bin/sh
export LANG=”en_US.UTF-8″
SVN=/usr/local/svn/bin/svn
WEB=/opt/data/svnweb
$SVN update $WEB

配置apache支持svn

#vi /usr/local/apache/conf/httpd.conf
在文件末尾添加
DAV svn
SVNParentPath /svn/project (此处配置你的版本库根目录) –注意这里不要是svnpath
AuthType Basic (连接类型设置 基本验证)
AuthName “Hello welcome to here” (此处字符串内容修改为提示对话框标题)
AuthUserFile /svn/passwd (此处修改为访问版本库用户的文件,
用apache 的htpasswd命令生成)
AuthzSVNAccessFile /svn/auth.conf (此处修改为访问版本库权限的文件)
Require valid-user (”Require valid-user”告诉apache在authfile中所有的用户都可以访问。
如果没有它,则只能第一个用户可以访问新建库)
保存文件退出!
重新启动apache
# /usr/local/apache/bin/apachectl –k restart

先使用浏览器检测一下
打开浏览器访问http://192.168.0.1/svn/svnweb 会提示输入用户名密码
等到完成下面步骤就可以进去访问了,进去后如果有东西显示就说明成功。

posted @ 2013-12-17 13:26  樰梅  阅读(344)  评论(0编辑  收藏  举报