linux下svn服务器搭建(摸索出的经验)

来源:互联网 发布:s7-200plc编程手册 编辑:程序博客网 时间:2024/05/01 18:02

 

linux  svn服务器搭建

 

自己摸索了几天,今天终于小有成就!从零基础逐渐壮大,收获还是颇丰的!

 

系统环境:

 

   虚拟机中Red Hat Enterprise Linux 4

   客户端windows TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi

需要的软件包:

   subversion-1.6.5.tar.bz2

   apr-1.3.8.tar.gz  apr-util-1.3.9.tar.gz

   sqlite-amalgamation-3.6.13.tar.gz

 

   httpd-2.2.4(不需要支持http访问的可以不安装)

 

文章将阐述全过程,不需要支持http的可以不配置appche

接下来的安装都是在root身份下

 

安装apache

#tar -zxvf httpd-2.2.4.tar.gz

#cd httpd-2.2.4.tar.gz

#./configure --prefix=/usr/local/apache  此处将会在后面的make时创建

--enable-dav --enable-so --enable-modules=most

注:--enbalce-dav选项一定要加上

 

启动apache

#/usr/local/apache/bin/apachectl start

 

打开浏览器http://192.168.58.xxx 如果有显示"It works!"则证明已经安装成功

 

注:其中IP为安装apache机器的IP也就是svn服务器的IP

 

#make

#make install

 

安装apr  apr-util

#tar -zxvf apr-1.3.8.tar.gz

注:解压时也可在此指定解压路径 当然了安装时要进入其中

#cd apr-1.3.8

#./configure --prefix=/usr/local/apr此路径为最终安装路径  留个印象后面能用到

 

#make

#make install

 

#tar -zxvf apr-util-1.3.9.tar.gz

#cd apr-util-1.3.9.tar.gz

#./configure=/usr/local/apr-util --with-apr=/usr/local/apr 提供apr支持 =后面为apr安装路径

#make

#make install

 

安装 sqlite

#tar -zxvf sqlite-amalgamation-3.6.13.tar.gz

#cd sqlite-3.6.13

#./configure --prefix=/usr/local/sqlite

#make

#make install

 

安装svn

#tar -zxvf subversion-1.6.5.tar.bz2

#cd subversion-1.6.5

#./configure --prefix=/usr/local/svn

--with-paxs=/usr/local/apache/bin/apxs

--with-apr=/usr/local/apr

--with-apr-util=/usr/local/apr-util 

--with-sqlite=/usr/local/sqlite

--with-zlib=/usr/local/zlib 此处地址不定 看看你zlib的安装路径在哪 把它写在这 没有的话 自己装一个 路径写这

--with-ssl 

--enable-maintainer-mode

#make

#make install

 

注:--with-zlib=/...后面不写路径会报错

 

svn服务器安装结束

 

安装svn客户端

 

windows下安装TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi常用软件安装方法

 

 

 

 

SVN配置

建立版本库

#mkdir -p /opt/svn

#/usr/bin svnadmin create /opt/svn/repository

#ls -l /opt/svn/repository

有内容显示说明版本库建立成功

 

#vi /opt/svn/repository/conf/svnserve.conf

修改如下内容:并把每行的#去掉

[general]

anon-access = none

auth-access = write

password-db = /opt/svn/repository/conf/passwd此为系统自动生成文件,但要修改过之后才能生效

authz-db = /opt/svn/authz.conf此文件还没有创建 但系统已经为此自动生成了一个文件,路径同上我用我自己创建的

realm = repository

 

创建svn用户 此用户也就是客户端的登陆用户

#htpasswd -c /opt/svn/htpasswd admin

 

之后体统会提示输入密码 、 校验密码

 

注:第一次创建svn用户时要加 -c意思是:如果htpasswd存在将覆盖写入

往后再创建svn用户时 也是执行此命令 不过不用加 -c

admin为用户名 标识登陆用户

 

例:新增加用户user

#htpasswd /opt/svn/htpasswd user

 

用户配置文件

#vi /opt/svn/repository/conf/passwd

在最下面添加两行代码

 

格式为:

用户名 =密码

 

admin = admin前不要加# 、留空格

user = user

 

权限配置文件

#vi /opt/svn/authz.conf

写入如下代码

 

[groups]

admin = admin,user

 

[/]

@admin = rw 代表admin的所有组员有读写权限

 

注:admin组里面有adminuser组员 其中有一个以上的组员时要用逗号隔开

这一部分自己可以找资料看看设计内容很多,我只建了一个版本库,还有多个版本库的设置,版本库下的具体目录权限设置

 

启动svn服务

#svnserver -d --listen-port 9999 -r /opt/svn/repository

 

注:启动时也是有名堂的可以找资料看看

-d后台运行

9999是要监听的端口

-r后面的是版本库路径

 

#ps -ef | grep svnserve查看svn有没有启动成功

成功显示

root    5088     1  0 Jul05 ?       00:00:00 svnserve -d --listen-port 9999 -r /opt/svn/repository

 

 

客户端登陆

右键单击某个文件夹 点击check out

输入URL:svn://192.168.58.XXX:9999/opt/svn/repository

其中IP为启动svn服务的机器的IP

 

不用支持http的下面范围内可以不用理会

/***********************************/

配置apache

 

#vi /usr/local/apache/conf/httpd.conf

 

做如下修改:

listen 80如果是以root用户启动apache此处不用修改

其他用户启动的要修改大于1024的 否则报错

 

# Example:

# LoadModule foo_module modules/mod_foo.so

 

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

 

注:此段代码我的没有我自己添加的 因为后面启动apache时 报:Invalid command 'DAV', perhaps mis-spelled or defined by a module not included in the server configuration

别光添加代码 还要确保 此文件上级目录下的 modules里面有 相应的模块 没有的话 另外下载其他的 httpd-xxx-xxx 解压安装 把其中的相应模块拷贝过来

 

User svn

Group svn

 

ServerName 192.168.58.xxx  IP设置svn服务器的IP

 

DocumentRoot "/usr/local/apache/htdocs"

改为

DocumentRoot "/opt/svn/repository"

 

<Directory "/usr/local/apache/htdocs">

改为

<Directory "/opt/svn/repository">

 

另外在最下面添加:

 

<Location /opt/svn>

DAV svn              如果没有Loadmodules xxx_dav xxx.so  此处会报错

SVNParentPath /opt/svn        svn设置

AuthType Basic     连接类型设置

AuthName "Subversion Authorization"连接框提示

AuthzSVNAccessFile /opt/svn/authz.conf权限配置文件   此文件中有 [group]

AuthUserFile /opt/svn/htpasswd此文件中存的是用 htpasswd 创建的

Require valid-user采用何种认证

</Location>

 

重启apache验证配置

   

/usr/local/apache/bin/apachectl restart如果没有启动 用start

 

打开浏览器访问http://192.168.58.xxx/opt/svn/repository --》 弹出登陆框

 

如果不弹出登陆框则 配置失败

 

/***********************************/

 

最后:

我安装过程中错误千奇百怪的,一点一点上网搜资料,慢慢的就完善了!也预祝你们顺利!