您的位置:首页 > 运维架构 > Apache

linux下apache+svn搭建

2013-12-17 13:26 267 查看

介绍

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 会提示输入用户名密码

等到完成下面步骤就可以进去访问了,进去后如果有东西显示就说明成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: